这是我的第一个问题,我希望能得到一些帮助:iPhone - PHP POST请求
我用几种方法(并与不同的HTTP传输框架试过),使在后的行动PHP脚本localhost没有好的结果。我不知道还有什么要寻找。我一直坚持这个至少6或7小时,终于到这一点:
目标C代码:
if (name != nil && message != nil) {
NSMutableString *postString = [NSMutableString stringWithString:TFPostURL];
[postString appendString:[NSString stringWithFormat:@"%@=%@",TFName,name]];
[postString appendString:[NSString stringWithFormat:@"%@=%@",TFMessage,message]];
[postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
TFPostURL,TFName,TFMessage,姓名和消息常量由我定义。
我使用的数据库只是为了检查传输已经成功完成:
PHP脚本
<?php
$username = "root";
$database = "db";
mysql_connect(localhost, $username);
@mysql_select_db($database) or die("Unable to find database");
$name = $_POST["name"];
$message = $_POST["message"];
$query = "INSERT INTO test VALUES ('', '$name', '$message')";
mysql_query($query) or die(mysql_error("error"));
mysql_close();
?>
任何想法,什么是错误的?
我一直在localhost试过,仍然需要在另一台mac上试试这个。 我正在上传我的php文件到公共领域,并检查它是否在我自己的计算机中。
编辑:
我已经改变了PHP POST操作就搞定了,获得惊人的效果;现在它工作!
<?php
$username = "root";
$database = "db";
mysql_connect(localhost, $username);
@mysql_select_db($database) or die("Unable to find database");
$name = $_GET["name"];
$message = $_GET["message"];
$query = "INSERT INTO test VALUES ('', '$name', '$message')";
mysql_query($query) or die(mysql_error("error"));
mysql_close();
?>
只要你知道,模拟器上的localhost应该可以工作 - 模拟器上的Safari能够访问我的mac的http服务器。尝试在iOS模拟器的Safari浏览器中打开您的php脚本,看看数据库条目是否弹出。如果是这样,那么你可以肯定它是导致问题的应用程序代码,而不是php。 – Tim
欢迎来到SO,Fernando! – rdlowrey
谢谢你们!我已经解决了我的问题......真的,我从来没有看到过这种方式。检查编辑! –