2017-02-17 2 views
0

Я не могу понять, что я делаю неправильно - мне нужно дезинфицировать входные данные. Я применил все, что могу найти, чтобы удалить одинарные кавычки или апострофы. Это работает в других обстоятельствах, но не здесь. Он возвращает строку, в которой одиночные кавычки или апострофы заменяются обратными косыми чертами. (?? !!)Функция PHP str_replace не работает только с одной формой POST

функция:

function sanitize($data) 
{ 

    return strtolower(str_replace(['’',';',"'",':',"'","’",''','"',' ','`','delete','update','drop','create'], '', htmlspecialchars($data))); 

} 

Итак, если я представить в одну форму сказать, "Закусочная Джо", я получаю "Джо \ sdiner" вернулся. Мне нужно «joesdiner».

Я действительно не программист, поэтому прошу прощения, если это очевидно.

Редактировать:

Возможно, он находится на странице?

<form action="/test-breeding/" method="post"> 
First: <input type="text" name="first"> 
Second: <input type="text" name="second"> 
<input type="submit" name="submit" value="submit"/> 

</form> 
<br><br> 

<?php 

if(isset($_POST['submit'])) 
{ 
$first  = sanitize($_POST['first']);  
$second  = sanitize($_POST['second']); 
} 
+1

[Сочинения для меня] (https://3v4l.org/o1K3b) –

+0

Попробуйте добавить мета кодовую в документ '' – Cyclonecode

+0

Вы пытаетесь дезинформировать для вставки SQL? Если это так, есть лучшие способы сделать это. Посмотрите руководство по MySQL для подготовленных операторов: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – garrettmurray

ответ

0

Может быть, это что-то с волшебными кавычками, попробуйте добавить stripslashes, как это:

$first = sanitize(stripslashes($_POST['first'])); 
+0

Спасибо. Я добавил, что после sanitize(). Простое исправление. Но я обещаю, что скоро буду использовать подготовленные заявления! Спасибо за вашу помощь всем. – ngtess

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