2012-01-22 2 views
0

Ok Я потянув меня за волосы над этим, Там нет никакой помощи на Google вообще для этого,INSERT INTO SQL Variable с Whitspaces

if (isset ($_GET['comment'])) 

    $commentEntered = $_GET['comment']; 

else 

    $commentEntered = "refuse"; 

Выше я получаю переменную Тогда я передать его в базу данных с код ниже, Да, я знаю, что он находится под угрозой инъекции.

$sql = "insert into $DB_Table (comment) values('$commentEntered');"; 

$res = mysql_query($sql,$con) or die(mysql_error()); 

mysql_close($con); 

if ($res) { 

    echo "success"; 

}else{ 

    echo "faild"; 
} 

Поэтому, когда я ввожу предложение в текстовое поле, он передает его в этот файл php. Метод GET получает введенный комментарий и сохраняет его в $ commentEntered

Теперь, когда я ввожу одно слово в текстовое поле, комментарий не сохраняется. Но когда я ввожу несколько слов, разделенных пробелом, это не сработает.

Любые идеи?

+2

Пожалуйста, определите, что «не будет работать». Что происходит? –

+0

В базе данных нет комментариев – Devster101

+0

Вы проверили содержимое параметра, например. через 'var_dump ($ _ GET ['comment']);'? – VolkerK

ответ

0

Узнайте, что происходит до того, как он обратится к запросу.

var_dump($commentEntered) 

Моя ставка является URL содержит пробел, а не 20%, таким образом, $ commentEntered это все до первого появления пространства. Узнайте об отладке. Единственный способ исправить это - избежать символов до того, как он попадет в скрипт.

+0

Как я уже сказал, я получаю доступ к этому через объективную программу на iPhone, это затрудняет получение от него какого-либо сообщения об ошибке. Когда я распечатываю $ commentEntered, он будет возвращать его ТОЛЬКО, если нет пробела. Вы правы, говоря, что он читает все перед пробелами, хотя я не могу понять, почему – Devster101

+0

Символы должны быть экранированы, пространство означает, что это конец URL-адреса, вам нужно избегать символов, чтобы сделать его URL-адресом до того, как он попадет в скрипт. Например ... http://myscript.com/index.php?q=PASS ME NOW index.php распознает только PASS http://myscript.com/index.php?q=PASS%20ME% 20NOW index.php распознает всю вещь –

+0

a VarDump of $ commentEntered возвращает строку (0) "", когда я не вводил текст, когда я вхожу в "OK", он возвращает строку (2) "OK", а когда я вхожу в "Thats ok "ничего не возвращает? – Devster101