JQuery сохранение специальных символов в MySQL, PHP - PullRequest
0 голосов
/ 08 октября 2009

Я пытаюсь сохранить номер мобильного телефона в таблице MYSQL в следующем формате «+1234987 ....», но при сохранении номера знак «+» заменяется пробелом.

Я использую следующий код:

var mobile     = $('#mobile').attr('value');
$.ajax({
type: "POST",
url: "save_process.php",
data: "mobile="+ escape(mobile) ,
//data: "mobile="+ mobile ,
success: function(html){
if (html==1){
$('div.saving').hide();
$('div.success').fadeIn();
}

Я пробовал как с, так и без escape() - один и тот же результат. Как я могу сохранить его со знаком «+»?

Спасибо

1 Ответ

2 голосов
/ 08 октября 2009

"mobile =" + escape (mobile)

escape - неправильная функция, используемая для кодирования параметров URI. Это специальная схема кодирования только для JavaScript, которая похожа на URL-кодировку, но это не так, как любой другой веб-стандарт. Он отличается обработкой не-ASCII символов и, как вы уже догадались, знаком плюс.

Фактически, это почти всегда неправильная функция, которую нужно использовать для чего-либо, и вы должны быть немедленно подозрительны в любое время, когда увидите это. Раньше он использовался для кодирования URL еще во времена Netscape, до изобретения encodeURIComponent, но даже тогда он был полностью сломан.

"mobile="+ encodeURIComponent(mobile)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...