Мне нужна помощь, пытаясь понять, почему мое приложение для 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 скажет «ОК», но это пустое, что, я считаю, означает, что оно не связано с моим 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]; }