私の iPhone アプリが PHP と通信していない理由を突き止めようとする助けが必要です。ユーザーがメッセージを入力できるテキスト フィールドがあり、テキストが入力され、mySQL データベースに投稿する必要があるときにアプリに通知するボタンがあります。
PHP と iOS のコードを以下に貼り付けますが、ここにはいくつかのデバッグ ステートメントも含めました。
行に区切りを入れるif([serverOutput...)
と、その時点で次のようになります。
alertsuccess UIAlertView * 0x00000000 dataURL NSData * 0x00000000 messageString __NSCFString * 0x0685e7a0 @"こんにちは" serverOutput __NSCFConstantString * 0x00b75a7c url NSURL * 0x06869540 @"http://www.mysite.com/connect.php?message=hi"
デバッグ ブレークポイントから、serverOutput が "OK" と表示されることを期待しますが、空白です。これは、PHP に接続されていないことを意味すると考えられます。これを修正する方法について、ご協力をお願いいたします。
<?php
// Connecting, selecting database
$link = mysql_connect("localhost", "user", "password")
or die('Could not connect: ' . mysql_error());
mysql_select_db("mydb") or die('Could not select database');
// Performing SQL query
$query = "INSERT INTO messages (message,date) VALUES ('$_GET["message"]',NOW())";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
echo "OK";
// Free resultset
mysql_free_result($result);
// Closing connection
mysql_close($link);
?>
iPhoneコード
- (IBAction)postmessage:(id)sender {
self.message = self.messageField.text;
NSString *messageString = self.message;
UIAlertView *alertsuccess;
//construct an URL for your script, containing the encoded text for parameter value
NSURL* url = [NSURL URLWithString:
[NSString stringWithFormat:
@"http://www.mysite.com/connect.php?message=%@",messageString]];
NSData *dataURL = [NSData dataWithContentsOfURL:url];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
if([serverOutput isEqualToString:@"OK"]) {
alertsuccess = [[UIAlertView alloc] initWithTitle:@"Posted" message:@"Done"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
} else {
alertsuccess = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Done"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
}
[alertsuccess show];
}