glaberzu, не пойму вот этого?
mysql_real_escape_string функция ведь для экранирования в запросе, но данные в базу то заносятся исходными - без экранирования...
соответственно stripslashes надо обязательно использовать... или нет?Функция addslashes() часто применяется при записи в базу данных. Заметьте, что сам символ \ в базу данных записан не будет, он используется только для корректной передачи данных в базу. аналогично и mysql_real_escape_string
- 26.12.2011 14:56
Последний раз редактировалось cOAPerator; 26.12.2011 в 15:04.
- 26.12.2011 15:25
В базу заносится как раз с экранированием, которое mysql_real_escape_string экранирует все спецсимволы, включая кавычки. =) addslashes() экранирует исключительно кавычки, без спецсимволов.
А вот stripslashes() действительно лучше использовать всегда - потому что экранировать запрос на стороне сервера внутренними средставми php - не проблема (mgc - это экранирование на уровне apache), а поведение magic quotes неадекватно и при записи может вызвать много проблем.
Если на него полагаться, например, и не экранировать запросы - то при переносе на другой хост, где mgc отключено, вы получите фатальные ошибки.
В общем, результируя (это только для примера!):
<?php
// избавляемся от mgc, если включено
foreach($_POST as $k=>$v) $_POST[$k] = stripslashes($v);
// при записи
$_POST['nick'] = addslashes($_POST['nick']);Последний раз редактировалось glaberzu; 26.12.2011 в 15:28.
- 26.12.2011 15:33
Последний раз редактировалось cOAPerator; 26.12.2011 в 15:36.
- 26.12.2011 17:13
Раз написано значит так и есть - извините голова уже не варит. Что бы голова не болела каждый раз о magic quotes gpc - можно использовать такой участок из моих скриптов. Устраняет лишнее экранирование только если magic quotes gpc включены.
if(get_magic_quotes_gpc())
{
foreach($_POST as $k=>$v)
{
$_POST[$k] = stripslashes($v);
}
} - 27.12.2011 06:02
glaberzu,
вот источник так что это врят-ли поможет исходя из документации по php. или по краней мере это неэффектино как написано в той же документации.Директиву magic_quotes_gpc можно отключить только на системном уровне и нельзя во время выполениня.Последний раз редактировалось cOAPerator; 27.12.2011 в 06:07.
- 27.12.2011 09:59
Да при чем тут документация, я вам не предлагаю отключить magic quotes, вы что не видите - это пре-обработка POST массива в самом скрипте =) Вобщем-то руководствуйтесь документацией - только не трактуйте ее неправильно.
"Нельзя отключить", например, не тождественно "невозможно обойти".
Тэги топика:
- author,
- date,
- description,
- echo,
- isset,
- meta_description,
- _post,
- код,
- пожалуйста,
- помочь
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Помогите пожалуйста :( экзамен | Оффтоп и свободные темы | 0 | 16.06.2011 11:52 |
Помогите пожалуйста с версткой | Web программирование | 1 | 27.04.2011 18:03 |
Помогите по верстке пожалуйста! | Web программирование | 1 | 30.01.2011 14:49 |
Помогите с кодом, выровнять футер в wp | Web программирование | 2 | 02.12.2010 00:47 |