2
SwiftのPHPファイルに情報を投稿しようとしています。 私のPHPファイルは実行されましたが、投稿された変数はPHPファイルには届きません。私は間違って何をしていますか?SwiftのPHPメソッドへのPOSTデータ
スウィフトコード:
@IBAction func buttonPress(sender: AnyObject) {
let request = NSMutableURLRequest(URL: NSURL(string: "http://www.domain.com/php_swift_test/insert.php")!)
request.HTTPMethod = "POST"
let postString = "a=test&b=bla"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
print("response = \(response)")
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
}
PHPコード:
<?php
@session_start();
@ob_start();
$host='localhost';
$user='test';
$password='Passw0rd99';
$db_name="mysql_test";
$connection = mysql_connect($host,$user,$password);
$a = $_POST['a'];
$b = $_POST['b'];
if(!$connection){
die('Connection Failed');
}
else{
$dbconnect = @mysql_select_db($db_name, $connection);
if(!$dbconnect){
die('Could not connect to Database');
}
else{
$query = "INSERT INTO res_club (FirstName, LastName) VALUES ('$a','$b')";
mysql_query($query, $connection) or die(mysql_error());
echo 'Successfully added.';
echo $query;
echo $a.$b;
}
}
?>
空行がないファーストネームとラストネームと、データベースに追加されます。 PHPファイルには$_Post['a']
がありません。
echo文echo $a.$b
も空白のままです。エラーは表示されません。
あなたはエラーを取得していますか?もしそうなら、エラーが何であったか、そして/または 'responseString'が何であったかを教えてください。それは基本的な問題の診断に役立ちます。おそらくPHPコードを共有することができます。問題はそこに残ります(たとえば、実際には 'application/x-www-formurlencoded'要求を探しています)。ところで、 'NSAppTransportSecurity'を' info.plist'に設定しましたか? http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a-cleartext-http/31254874#31254874 'Content-Type'ヘッダーを設定することもできますが、これは一般に厳密には要求されていません。 – Rob
エラーは表示されません。私は上の私のPHPコードを追加.... into.plistとコンテンツの種類。私はXcodeでこれらのことをしますか?またはサーバー上で? –
しかし、あなたは "responseString"メッセージを見るでしょう。おそらく "Successfully added"メッセージとあなたの '$ query'を表示していますか?また、 'response'を印刷すると、ステータスコード200が表示されますか? Re 'info.plist'が変更されたので、iOS 9で' http:// 'スキームを使った場合、' 'https://'があれば、それはまったくうんざりします。しかし、エラーメッセージが表示されるため、問題になることはありません。 – Rob