【问题标题】:NSURLMutableRequest with POST method and PHP [closed]带有 POST 方法和 PHP 的 NSURLMutableRequest [关闭]
【发布时间】:2013-02-05 22:19:03
【问题描述】:

因此,我使用有效的新代码修复了问题代码,并更改了问题的标题以供其他人协助。

我的问题是我在POST 方法中使用的应用程序内部,但在PHP 方面,我在GET 方法中使用。只需将其更改为POST,它就可以完美运行。

享受吧。


我的服务器不断收到用户名错误的错误消息,我在这里做错了什么?

感谢您的帮助。

- (void)addNewUser:(NSString *)username andDate:(NSDate *)date
{
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    NSString * urlString = [NSString stringWithFormat:@"http://www.myurl.com/url/insert.php"];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
    NSString *strDate = [dateFormatter stringFromDate:date];

    NSString *paramDataString = [NSString stringWithFormat:@"username=%@&date=%@",[username stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                                 [strDate stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    [request setHTTPBody:[paramDataString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];

    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                               NSString *requestData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                           }];
}

在服务器端我有这个:(PHP)

<?php
   header("Content-type: text/html; charset=utf8");

   $connection = mysql_connect("localhost","myusername","mypassword");
   if(!$connection)
   {
       die("database connection failed:" . mysql_error());       
   }

   $db = mysql_select_db("db_users",$connection);
   if(!db)
   {
       die("database connection failed:" . mysql_error());
   }

   mysql_query("SET NAMES 'utf8'",$connection);
?>

<?php 
    $varGet1 = $_POST['username'];
    $varGet2 = $_POST['date'];

    if (!$varGet1) {
        $message = "no username";
    } else if (!$varGet2) {
        $message = "no date";
    } else {
        $query = "INSERT INTO `Users` (username, date, first) VALUES('{$varGet1}','{$varGet2}','0')";

        $query = mysql_query($query,$connection);

        if($query) {
            $message = "Added";
        } else {
            $message = "Error";
        }
    }

    echo($message);

    mysql_close($connection);
?>

【问题讨论】:

  • 一件事是你GET在你的php上,而POST来自objective-c ...
  • 另外,打印出您的 PHP 脚本获取的用户名或 print_r($_GET),但我怀疑 @Alladinian 是正确的。
  • 听着,我对PHP了解不多,这是我第一次使用PHP,所以我有一些问题,我想很多人都可以使用这个问题来获得帮助POST 和 PHP,因为我没有找到可以使用的正常东西。这很简单。 @Alladinian 你是对的,我已将其更改为 POST 并且效果很好。谢谢!
  • @YossiTsafar 不客气。我也将其添加为答案。如果您愿意,请随时接受。

标签: php ios objective-c http-post nsurlrequest


【解决方案1】:

没有什么是真的错了。你只是来自你的php的GET,而来自objective-c的POSTing。切换到$_POST,一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多