代码之家  ›  专栏  ›  技术社区  ›  JJarava

使用NSURLRequest向服务器发送数据时出现问题

  •  32
  • JJarava  · 技术社区  · 17 年前

    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];
    

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

    3 回复  |  直到 15 年前
        1
  •  53
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

    & 在里面 myRequestString content-type

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

    你也不应该通过 nil 如果有错误,你就可以看到客户的想法。

    不相关,但您的PHP代码对 SQL injection attacks .

        2
  •  7
  •   Stefan Arentz    14 年前

    应该指出的是。。。

    NSData *data = [NSData dataWithBytes: [myRequestString UTF8String]
                                  length: [myRequestString length]];
    

    因此,您只需使用:

    NSData *data = [myRequestString dataUsingEncoding: NSUTF8StringEncoding];
    
        3
  •  0
  •   Spire    14 年前

    NSString *name = [[NSString alloc]initWith String: @"Hello World"];     
    NSString *email = [[NSString alloc]initWith String: @"Ohai2u"];     
    NSString *urlString = [NSString stringWithFormat:@"http://somedomain.com/sendMail.php?name=%@&email=%@", 
                               [name stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                               [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    
        NSURL *url = [[NSURL alloc] initWithString:urlString];
    
        NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    
        NSData *urlData;
        NSURLResponse *response;
        urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
        [url release];
    

    释放 弦乐器