iOSアプリケーションでログイン/登録をしようとしています。 Swift 2.0のほかにmySQLとPHPを使用しています。何らかの理由でPHPスクリプトにHTTP POSTを送信しようとするとエラーが発生し続けます:"正しい形式でないため、データを読み取れませんでした。"Swift 2.0 HTML POST(形式が正しくない)
私は、mySQLサーバーにMAMPを使用しています。
let request = NSMutableURLRequest(URL: NSURL.fileURLWithPath("/Users/robin/Programming/xcode/Projects/Quix/php_scripts/userRegister.php"))
request.HTTPMethod = "POST"
let postString = "email=\(userEmail)&password=\(userPassword)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
print(postString)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
if (error != nil) {
print("error=\(error)")
}
do {
if let parseJSON = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
let resultValue = parseJSON["status"] as? String
print("result: \(resultValue)")
var isUserRegistered:Bool = false
if (resultValue == "Success") { isUserRegistered = true }
var messageToDisplay:String = parseJSON["message"] as! String!
if (!isUserRegistered) {
messageToDisplay = parseJSON["message"] as! String!
}
dispatch_async(dispatch_get_main_queue(), {
let myAlert = UIAlertController(title: "Alert", message: messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { action in
self.dismissViewControllerAnimated(true, completion: nil)
}
myAlert.addAction(okAction)
self.presentViewController(myAlert, animated: true, completion: nil)
});
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
task.resume()
私のデータベースには、テーブル「ユーザー」とパラメータid(auto_increment)、電子メールとパスワードがあります。私はポートを使用しています:3306もmySQLのために。 MAMPの標準IPは127.0.0.1です。私はIP:127.0.0.1またはlocalhost:3306を使用する必要がありますか?
どこにこのエラーがありますか?あなたはコードと可能であれば行を表示できますか? –
無関係な観察: 'userEmail'または' userPassword'がオプションである場合、必ずそれらをアンラップしてください。安全であるためには、実際にそれらをパーセントでエスケープする必要があります。パスワードに予約文字(たとえば '+'または '&')が含まれていると、リクエストをパーセントエスケープしない限り正しく送信されないため、http://stackoverflow.com/a/25154803/1271826にアクセスしてください。 – Rob