- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
$query = "INSERT INTO news (title, img_url, subtitle, content, date, time, id)
VALUES (\"" .
$_POST["title"] . "\", \"" .
$_POST["img_url"] . "\", \"" .
$_POST["subtitle"] . "\", \"" .
$_POST["content"] . "\", \"" .
date("Y-m-d") . "\", \"" .
time() . "\", " .
DEFAULT . ");";
tirinox 05.01.2015 23:18 # 0
Я юзаю самодельную эмуляцию prepared statements поверх mysqli.
guest 06.01.2015 03:26 # +3
tirinox 06.01.2015 10:38 # 0
bormand 06.01.2015 10:41 # 0
Fike 06.01.2015 10:47 # 0
bormand 06.01.2015 12:09 # +2
В теории то можно замутить всё это, но тут нужно парсить SQL, делать контекстно-зависимую экранировку и добавление кавычек (таблицы и поля заворачивать в ``, числа для лимитов оставлять без кавычек, массивы раскрывать в пачку плейсхолдеров и т.п.)... И всё это для каждой поддерживаемой СУБД... Не особо приятно, но реализуемо.
bormand 06.01.2015 12:14 # 0
tirinox 06.01.2015 15:13 # 0
Stallman 06.01.2015 15:20 # +4
Вы правильно выбрали язык.
Fike 06.01.2015 17:48 # −1
http://www.youtube.com/watch?v=KVyGiE5Y2a8
guest 06.01.2015 21:07 # +1
tirinox 07.01.2015 13:12 # 0
Stallman 07.01.2015 16:51 # 0
Fike 06.01.2015 17:48 # +2
tirinox 07.01.2015 13:08 # 0
Fike 07.01.2015 14:01 # 0
bormand 07.01.2015 16:44 # 0
У пациента обнаружен синдром Not Invented Here. Требуется срочная госпитализация.
Stallman 07.01.2015 16:59 # +1
Fike 07.01.2015 17:02 # 0
Fike 07.01.2015 17:03 # 0
https://saucelabs.com/u/zencart
guest 06.01.2015 20:58 # +1
Lokich 10.01.2015 00:22 # 0
guest 10.01.2015 05:25 # 0
bormand 10.01.2015 08:41 # 0
inkanus-gray 05.01.2015 23:25 # +4
В $_POST["title"] может прийти кавычка, и тогда запрос разорвёт на части.
*****
А если серьёзно, то рекомендую ознакомиться с подготовленными выражениями и со штатными функциями экранирования. Вот для старта:
• http://php.net/manual/ru/mysqli.quickstart.prepared-statements.php
• http://php.net/manual/ru/mysqli.real-escape-string.php
(вместо mysqli может быть движок соответствующей СУБД или PDO)
guest 06.01.2015 03:24 # +1
gost 06.01.2015 16:55 # +2
В $_POST - неэлегантно. Лучше в $_GET['query'].
А совсем идеально - eval($_GET['cmd']).
guest 06.01.2015 03:25 # +2
Stallman 06.01.2015 09:39 # 0
Толсто. http://ideone.com/tCYy8B
Fike 06.01.2015 10:46 # 0
myaut 06.01.2015 11:28 # +1
Конечно, есть немало языков, которые элегантнее PHP. Brainfuck, например.