這是我的第一個問題,我希望能得到一些幫助: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
謝謝你們!我已經解決了我的問題......真的,我從來沒有看到過這種方式。檢查編輯! –