2013-12-17 4 views
6

У меня есть одно текстовое поле. Я посылаю значение текстовой областиОтправка данных после ее получения

<textarea class="php" name="codeguru"></textarea></div> 
<div class="hint">This code is editable. Click Run to execute.</div> 
<input type="submit" value="Run" /> 

через $ методом АЯКС

$.ajax({ 
    type: 'GET', 
    url: 'exec.php', 
    dataType: 'JSONP', 
    data: { 
     code: code 
    }, 
    success: function (data) {}, 
    jsonpCallback: 'mycallback', 
    error: function (xhr, ajaxOptions, thrownError, err, textStatus) { 

    } 
}); 

Проблема: Когда я отправить данные, такие как эхо «Санджая»; преобразуется в эхо санджай.

У меня такой же реализованный он на localhost и на cpanel. Это отлично работает на localhost, но не отлично на cpanel. Любые предложения или идеи будут оценены.

+1

У вас есть 'magic_quotes_gpc' включен в вашем' php.ini'? http://www.php.net/magic_quotes – SamV

+0

попробуйте var_dump (get_magic_quotes_gpc()), если вы получили ture, то проблема magic_quotes_gpc. – Andrew

+0

'magic_quotes_gpc' удаляется с php 5.4.0, поэтому, если вы выше этого, вам не нужно проверять. Источник: http://www.php.net/magic_quotes –

ответ

0

Вы должны URL-адрес Кодировать его перед AJAX и декодировать его на стороне сервера. Это происходит много мне с конкретными символов в строках JSON, я обычно URL закодировать это:

Значение:

$.ajax({ 
    type: 'GET', 
    url: 'exec.php', 
    dataType: 'JSONP', 
    data: { 
     code: encodeURIComponent(code) 
    }, 
    success: function (data) {}, 
    jsonpCallback: 'mycallback', 
    error: function (xhr, ajaxOptions, thrownError, err, textStatus) { 

    } 
}); 

И в стороне сервера:

$code = urldecode($_POST['code']); // or rwaurldecode, not sure 

Попробуйте отправить код с / и " и посмотреть, как он реагирует, потому что у меня были проблемы с ними, если он пытается добавить косые черты в кавычки и т. Д. Я использую следующую функцию, но вы можете изменить ее в соответствии с вашими потребностями:

function addslashes(str) { 
    return (str + '').replace(/[\\"]/g, '\\$&').replace(/\u0000/g, '\\0'); 
} 
+0

Я пробовал ваш код, но не работал. Если мне нужно изменить свой код после получения, то что у меня есть tod, как я получаю этот код echo sanjay теперь я хочу изменить на echo 'sanjay', так что я должен делать? –

+0

Вы не должны получать эхо-санджай, если вы его кодируете перед отправкой и выполняете проверку магических кавычек. –

3

Я получил мой ответ

$code = stripslashes($code); 

Из этого кода я могу удалить blackslashes

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