我创建了一个NSURLRequest,将我在iPhone应用程序中的数据发布到服务器上以继续执行PHP脚本。我的PHP脚本如下所示。

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];

    $link = mysql_connect("localhost", "fffasfdas","Nfdsafafs") or die ("Unable to connect to database.");
    mysql_select_db("muradsbi_mydatabase") or die ("Unable to select database.");

    $sqlstatement= "INSERT INTO dbname (name,email) VALUES ('$name','$email')";
    $newquery = mysql_query($sqlstatement, $link);
    echo 'thanks for your register';
?>

和我的NSURLRequst如下创建。
NSString *myRequestString = @"&name=Hello%20World&email=Ohai2u";
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"http://www.google.com/"]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: myRequestData];
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];

但是,该站点无法从该应用程序获取数据并将其保存到数据库,但是我知道它已成功连接,因为我的应用程序能够从服务器获取响应数据。我不知道我的变量名是用错误的方式声明还是其他问题。我该如何解决?

最佳答案

您应该删除&中的前导myRequestString,这可能是因为未发送正确的content-type header 。尝试将通话添加到

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];

您也不应传递nil来获取错误,以便您可以查看客户端的想法。

无关,但是您的PHP代码已向SQL injection attacks打开。

10-01 08:58
查看更多