ASIFormDataRequest POST错误 - iOS 6

时间:2012-12-09 05:20:21

标签: iphone ios xcode asihttprequest

我有以下代码链接到PHP文件,目的是发布一些字符串并在PHP文件中检索,所有的东西都工作正常,但我的代码有问题,请参阅下面的内容:

iOS应用代码

    NSString *urlString = @"http://www.myurl.com/path/ios.st.addquestion.php?";
    NSURL *uploadURL = [NSURL URLWithString:urlString];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:uploadURL];

    [request setPostValue:askerUsername forKey:@"username"];
    [request setPostValue:@"1" forKey:@"questiontype"];
    [request setPostValue:title forKey:@"title"];
    [request setPostValue:hasAditional forKey:@"hasaditional"];
    [request setPostValue:aditional forKey:@"aditional"];
    [request setPostValue:hasLocation forKey:@"haslocation"];
    [request setPostValue:location forKey:@"location"];
    [request setPostValue:latitude forKey:@"latitude"];
    [request setPostValue:longitude forKey:@"longitude"];
    [request setPostValue:category forKey:@"category"];
    [request setPostValue:hasImage forKey:@"hasimage"];
    [request startAsynchronous];

PHP文件

    $questiontype = mysql_real_escape_string($_GET['questiontype']);

    $username_PRO = mysql_real_escape_string($_GET['username']);

    $title_PRO = mysql_real_escape_string($_GET['title']);
    $hasAditional = mysql_real_escape_string($_GET['hasaditional']);
    $aditional_PRO = mysql_real_escape_string($_GET['aditional']);

    $hasLocation = mysql_real_escape_string($_GET['haslocation']);
    $location_PRO = mysql_real_escape_string($_GET['location']);
    $latitude_PRO = mysql_real_escape_string($_GET['latitude']);
    $longitude_PRO = mysql_real_escape_string($_GET['longitude']);

    $category = mysql_real_escape_string($_GET['category']);

    echo "$username_PRO";

当我运行应用程序并将字符串POST到PHP文件时,没有任何反应,就像PHP收到一个空值,我无法弄清楚我的代码有什么问题,有人知道吗?程序是这样的这样:

应用程序=> ASIFormDataRequest(帖子值)=> PHP文件接收请求并在MYSQL数据库上插入字符串(问题在这里)。

我已经在网上和ASI网站上搜索过,但似乎没有任何效果。

2 个答案:

答案 0 :(得分:2)

我认为代码是正确的, 但是,你发布到PHP,你在PHP中使用$ _GET可能是问题。

尝试使用$ _POST获取POST值,或者您可以转储$ _REQUEST以查看您发送到php的内容。

答案 1 :(得分:1)

您正在setPostValue使用正在查找PHP-script变量的GET。您可以为所有变量更改PHPcode$username_PRO = mysql_real_escape_string($_POST['username']),或将GET值作为http://url?name=value&name2=value2发送给... {/ p>