|
|
|
| Прочитал в мануале по PHP такую вещь:
Замечание: Если magic_quotes_gpc включены,
то сначала данные следует обработать
функцией stripslashes(). Если
mysql_real_escape_string() применяется к
данным, которые уже были прослешены, то в
результате слеши в данных будут
удваиваться.
|
т.е. , необходимо так понимать:
<?php
if (get_magic_quotes_gpc())
{
$query = stripslashes($query);
}
$query = mysql_real_escape_string($query, $conn_handle);
?>
|
Верно ли? | |
|
|
|
|
|
|
|
для: TXC
(03.07.2007 в 18:07)
| | Да, верно. | |
|
|
|
|
|
|
|
для: TXC
(03.07.2007 в 18:07)
| | Так.
Только первые две строки относятся к любым входным параметрам скрипта.
А последняя - к любым текстовым параметрам SQL-запроса.
И в общем случае - эти фрагменты кода никак не связаны. | |
|
|
|
|
|
|
|
для: Trianon
(03.07.2007 в 19:32)
| | А как же быть с руководством по PHP? | |
|
|
|
|
|
|
|
для: TXC
(04.07.2007 в 10:26)
| | А что написано в руководстве по PHP?
И какой документ Вы так называете? | |
|
|
|
|
|
|
|
для: Trianon
(04.07.2007 в 15:37)
| | > И какой документ Вы так называете?
Ну как какой, разумеется официальный мануал (руководство по PHP):
http://ru.php.net/manual/en/function.mysql-real-escape-string.php
http://ru.php.net/manual/ru/function.mysql-real-escape-string.php
Там в одном замечании есть такие строки, как я привел в первом посте. Соответственно по ним и составил конструкцию, которая также содержится в первом посте.
Официальном руководстве это приведено как лучший вариант составления запроса:
<?
// Функция экранирования переменных
function quote_smart($value)
{
// если magic_quotes_gpc включена - используем stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Если переменная - число, то экранировать её не нужно
// если нет - то окружем её кавычками, и экранируем
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
?>
|
| |
|
|
|
|
|
|
|
для: TXC
(04.07.2007 в 17:35)
| | Вы комментарии пользователей оффициальным руководством называете? :) | |
|
|
|
|
|
|
|
для: Unkind
(04.07.2007 в 18:40)
| | А что Вы можете назвать официальным руководством по PHP, как не руководство на их сайте? К тому же в нем так и написано, что "руководство", так что это не мое название.
Или Вы предлагаете другой перевод и/или определение термину 'manual' разработчикам PHP? Или Вы знаете "более официальное" руководство? ;) | |
|
|
|
|
|
|
|
для: TXC
(04.07.2007 в 18:59)
| | А что Вы можете назвать официальным руководством по PHP
http://php.net/
тому же в нем так и написано, что "руководство", так что это не мое название.
Раз Вы умеете читать, то почему слова "User Contributed Notes" Вы проигнорировали? :)
К Вашему сведению, Вы приняли пост от "php(at)iain.nl" 12-Mar-2006 12:59 "оффициальным руководством". | |
|
|
|
|
|
|
|
для: Unkind
(04.07.2007 в 19:29)
| | > то почему слова "User Contributed Notes" Вы проигнорировали?
Потому что этого нет в chm-версии оффлайн руководства. Да, конечно же там говорится о том, что это составлено пользователями и потому могут содержаться ошибки, вот за тем я и обратился на форум, а не за тем чтоб разводить тут демагогию на философские темы. Потому как можно еще углубиться в историю создания PHP, провести тестирование авторов PHP на профпригодность и т.д. Вообщем для стеба еще много можно придумать (голь на выдумки хитра), т.к. это проще, чем помочь разобраться в самом вопросе.
А если пост Вами упомянутого php(at)iain.nl" 12-Mar-2006 12:59 добавили в офлайн-версию руководства, то значит, что не за просто так. Или по Вашему только заголовки содержания руководства можна назвать официальным руководством, а дальше все неофициальное? :)
Два человека мне дали абсолютно разные ответы, вот я и пытаюсь выяснить, кто же ближе к истине, а не кто официальнее. | |
|
|
|
|
|
|
|
для: TXC
(04.07.2007 в 19:47)
| | Я так понимаю, истину Вы уже выяснили.... И что теперь?
И еще... мне крайне интересно, что вытер модератор в этой теме....
Если кто-нибудь успел перехватить контент до чистки, я был бы весьма признателен, если он отправит его мне личным сообщением. | |
|
|
|
|
|
|
|
для: Trianon
(05.07.2007 в 09:54)
| | Да, выяснил. Для этого мне было достаточно Вашего поста и поста cheops-a. Стоило мне не до конца вникнуть в последнюю строчку и задать вопрос, как меня стали "объяснять" материал, который темы не касается.
Немного поразмыслив и перечитав Ваш пост еще раз, я разобрался, что Вы уточняли к слова cheops-a. А я сперва их понял не так. | |
|
|
|
|
|
|
|
для: TXC
(03.07.2007 в 18:07)
| | А что в $query? Если SQL-запрос, то неверно. | |
|
|
|
|
|
|
|
для: Unkind
(03.07.2007 в 21:27)
| | Ну если SQL-запрос, то я уже понял, что неверно, т.к. он мне повозвращает всякие там \r\n
В даном случае под $query имелась в виду переменная, полученная от пользователя, о чем я забыл написать. | |
|
|
|