2013-12-08 1 views
1

Я использую этот метод для отправки почтового запроса на свой сервер и сохранения данных в базу данных sql , но у меня есть проблема, я пропустил какой-либо символ, когда данные, сохраненные в базе данных , например, у меня есть эта строка "пример сообщения ++ запрос ++" при приеме на базы данных строк изменений "пример сообщения запроса" недостающими + Plus знаки вот мой кодОшибка возникает при отправке запроса на отправку по почте

Xcode

NSString *STR = @"mystring=example post ++ request ++"; 
NSData *PostData = [STR dataUsingEncoding:NSUTF8StringEncoding]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://MySiteUrl.com/example.php"]]; 

    [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:PostData]; 
    [request setHTTPMethod:@"POST"]; 

    NSError *error = nil; 
    NSURLResponse *response = nil; 
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

PHP код

$STR = $_POST['mystring']; 

      header ('Content-Type: text/html; charset=UTF-8'); 
$con = mysql_connect("localhost","xxxxxx","xxxx"); 
      mysql_select_db("xxxxxxx", $con); 
      mysql_query("SET NAMES utf8"); 

$STR = trim($STR); 

mysql_query("INSERT INTO `xxxxxxx`.`table` (`id`, `mystring`) VALUES (NULL, '$STR');"); 
+1

** Предупреждение: ** вы используете [API ** устаревшей ** базы данных API] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -functions-in-php) и должен использовать [современную замену] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/ how-can-i-prevent-sql-injection-in-php). –

ответ

1

Запомнить +, в URL-адрес, означает пробел. Если вы хотите передать символ +, но тогда вам нужно его закодировать, и я думаю, что ваш xcode делает это через формат UTF8. В POST параметры запроса берутся как строка запроса в теле запроса. Поэтому отлаживайте свой PHP-код и удостоверяйтесь, как только ваш PHP получит эти данные, а затем сохранит его в UTF8. Если это не так, просто используйте urlencode (string $ str) в php для его преобразования. Я думаю, что ваша проблема связана с кодировкой, и вам нужно отлаживать код, чтобы точно определить, какая часть не правильно кодируется. Хороший вопрос и удача

 Смежные вопросы

  • Нет связанных вопросов^_^