генерация запросов с использование переданных переменных

Frutik

1024-й
генерация запросов с использование переданных переменных

нужно зачищать переменный для использования в построении запросов
пришло в голову такое:
PHP:
$var = addslashes(trim(striptags(htmlentities($var))))
что из этого возможно лишнее или чего не хватает?
 

RomikChef

Guest
а можно спросить, какой мыслительный процесс привел тебя вот к htmlentities?
Да и striptags зачем - можешь объяснить? (пишется, кстати, по-другому)
 

Frutik

1024-й
Автор оригинала: RomikChef
а можно спросить, какой мыслительный процесс привел тебя вот к htmlentities?
Да и striptags зачем - можешь объяснить? (пишется, кстати, по-другому)
возможно плохой английский :)

на сколько я понял мануал htmlentities преврати например &lt; в < (тоесть я так понимаю замаскированные теги в нормальные) а потом strip_tags уберет все теги
 

Frutik

1024-й
а вообще я буду только благодарен если кто напишет как чистит он

а то не хочется чтобы в один прекрасный день кто-то через кривой сгенерированный запрос дропнул таблицу в базе
 

trent

Developer
кстати не советую делать strip_tags(), если в тексте будет два знака в начале < в конце > он весь текст между этими знаками повырезает :)
 

Frutik

1024-й
гм, по одной поотбраковывали все мои мысли...
получается что вообще ничего проверять не надо?
 

trent

Developer
еще можно сделать так
PHP:
$content = ereg_replace("[ ]{2,}", " ", $content);
, чтобы не хранить "лишнии" пробелы, при выводе в html два и более пробелов отображаются, как один
 

Frutik

1024-й
а как побороть такое? script.php?table=name;drop table tablename

query = "select * from $table;";
 

RomikChef

Guest
Трент, а теперь ответь мне , подалуйста ,какое имеют все эти телодвижения к ЗАПРОСАМ?

Фрутик, тебя тоже касается?
каким боком теги прислонились к базе данных?
 

trent

Developer
Автор оригинала: Frutik
а как побороть такое? script.php?table=name;drop table tablename

query = "select * from $table;";
это неправильно, что у тебя в скрипт по параметру передаются имя таблицы, не вставляй напрямую в запрос имя таблицы
можно так:
if ($table == 1)
$name = "tablename1";
else
$name = "tablename2";
 
Сверху