Ich versuche, einige Informationen in meine PHP-Datei von Swift zu posten. Meine PHP-Datei wird ausgeführt, aber die geposteten Variablen gelangen einfach nicht zur PHP-Datei. Was mache ich falsch?POST-Daten zu einer PHP-Methode von Swift
Swift Code:
@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-Code:
<?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;
}
}
?>
Eine leere Zeile wird in die Datenbank aufgenommen, ohne Vornamen und Nachnamen. Die PHP-Datei erhält nicht die $_Post['a']
und b
Die Echo-Anweisung, echo $a.$b
bleibt auch leer. Es werden keine Fehler angezeigt.
Erhalten Sie einen Fehler entdeckt? Wenn ja, zeigen Sie uns, was der Fehler war und/oder was der 'responseString' war. Das wird helfen, grundlegende Probleme zu diagnostizieren. Vielleicht können Sie den PHP-Code teilen, da das Problem dort liegen kann (z. B. sucht er wirklich nach einer Anfrage "application/x-www-formurlencoded"). BTW, hast du die 'NSAppTransportSecurity' in deiner' info.plist' gesetzt? http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a-cleartext-http/31254874#31254874. Sie können auch den Header "Content-Type" festlegen, obwohl dies normalerweise nicht unbedingt erforderlich ist. – Rob
Keine Fehler angezeigt. Ich habe meinen PHP-Code oben ... in.plist und Inhaltstyp hinzugefügt. Sind das Dinge, die ich in Xcode machen würde? oder auf dem Server? –
Aber Sie sehen die "responseString" Nachricht, die vermutlich "Nachricht erfolgreich hinzugefügt" und Ihre "$ query" zeigt? Wenn Sie "Antwort" drucken, sehen Sie dann einen Statuscode von 200? Re 'info.plist' Änderung, ich bin überrascht, dass es überhaupt funktioniert, wenn Sie' http: // '-Schema auf iOS 9 verwendet haben (wenn Sie' https: // 'haben, obwohl es nicht benötigt wird). Aber das kann nicht das Problem sein, denn das hätte zu einer Fehlermeldung geführt. – Rob