0

ユーザー名とパスワードをデータベースに投稿したいと思います。次のコードでは、2 つの textField であるユーザー インターフェイスから userName とパスワードを取得し、ログイン ボタンをクリックすると、URL を呼び出すと想定しています。しかし、どういうわけかSQLに投稿していません。反対に、ユーザー名とパスワードを使用してブラウザーに URL をコピー アンド ペーストするだけで、受け入れられてデータベースに投稿されます。私は自分の問題を見つけることができませんでした。

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize userName;
@synthesize password;
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)loginClick:(id)sender {


    NSString *post = [NSString stringWithFormat:@"&userName=%@&Password=%@",userName.text,password.text];

    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    NSString *str=[NSString stringWithFormat:@"1sikayet.com/getsettt.php?%@", post];
    NSURL *urlbody=[NSURL URLWithString:str];

    NSLog(@"%@",str);

    [request setURL:urlbody];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
    [request setHTTPBody:postData];


    NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
    if(conn)
    {
        NSLog(@"Connection Successful");
    }
    else
    {
        NSLog(@"Connection could not be made");
    }
}

-(BOOL)textFieldShouldReturn:(UITextField *)theTextField
{
    if(theTextField==self.userName)
    {
        [theTextField resignFirstResponder];
    }
    if(theTextField==self.password)
    {
        [theTextField resignFirstResponder];
    }
    return YES;
}
@end

getsettt.php

        $hostname = "sikayet.db.XXXX.com";
        $username = "sikayet";
        $dbname = "sikayet";

        //These variable values need to be changed by you before deploying
        $password = "Hidden"
        $usertable = "sikayetUp";
         ?>

        //Connecting to your database
        mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
        connect to database! Please try again later.");
        mysql_select_db($dbname);

        //Fetching from your database table.
        $query = "INSERT into $usertable values('null','".$userName."','".$login."')";
        $result = mysql_query($query);
        echo $userName.",".$login;
         ?>
4

3 に答える 3

1

サーバーにデータを投稿するのに役立つ次のコードを使用してください

  NSString *postString = [NSString stringWithFormat:@"http://www.1sikayet.com/getsettt.php?&userName=%@&Password=%@",userName.text,password.text];
               NSURL* url = [NSURL URLWithString:postString];
                NSMutableURLRequest* request = [[NSMutableURLRequest alloc]initWithURL:url];

                NSURLConnection* connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
    if(connection)
        {
            NSLog(@"Connection Successful");
        }
        else
        {
            NSLog(@"Connection could not be made");
        }
于 2013-07-03T04:32:22.090 に答える
1

ブラウザの URL を介してデータを送信できる場合は、メソッド get を使用しており、html の本文はこれに似たものになります。

<body>
<form action="<?php $_PHP_SELF ?>" method="GET">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

ただし、IOSコードで使用している投稿方法については、Webサイトはこれに似たものに従う必要があります

<body>
<form action="<?php $_PHP_SELF ?>" method="POST">

Name: <input type="text" name="name" />
Age: <input type="text" name="age" />

<input type="submit" />
</form>

これらの例はhttp://www.tutorialspoint.com/php/php_get_post.htmから取得したもので、"post" と "get" の違いを示しています。ログインと安全な情報には "post" を使用する必要がありますが、 iosコードを今すぐ機能させるには、リクエストで始まるコード行を削除すると、単にURLに接続する/データを送信するだけのように見えます.

$_REQUEST を使用すると、サーバー側で post メソッドと get メソッドを受け取ることもできます。

PHP の $_REQUEST 変数には、$_GET、$_POST、および $_COOKIE の両方の内容が含まれます。

于 2013-07-02T21:53:30.897 に答える
0

次のコードは完全に機能します。最初に「http://」を入れるのを忘れていました

- (IBAction)loginClick:(id)sender {
        // Create the request.


        NSString *post = [NSString stringWithFormat:@"userName=%@&Password=%@",userName.text,password.text];

        NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

        NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];

        //NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        NSString *str=[NSString stringWithFormat:@"http://1sikayet.com/getsettt.php?%@", post];
        NSURL *urlbody=[NSURL URLWithString:str];

        NSLog(@"%@",str);

        NSURLRequest *request = [NSURLRequest requestWithURL:urlbody];


        NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
        if(conn)
        {
            NSLog(@"Connection Successful");
        }
        else
        {
            NSLog(@"Connection could not be made");
        }


    }
于 2013-07-02T22:29:09.993 に答える