|
|
|
| Правильно ли так писать? Первая строка кода
if(isset($_POST["city_d"]))
{
$city_d = substr($_POST["city_d"],0,70);
$city_d = mysql_escape_string(stripslashes($city_d));
$city_d = strtolower($city_d);
$city_d = ucwords($city_d);
$city = $city_d;
} | |
|
|
|
|
|
|
|
для: tavila2009
(11.03.2010 в 23:28)
| | правильно будет после проверки на существование обработать trim'ом, затем проверить еще на не пустое значение, а только потом обрезать. | |
|
|
|
|
|
|
|
для: tavila2009
(11.03.2010 в 23:28)
| | и в запрос обычно экранируют кавычки, а не наоборот. | |
|
|
|
|
|
|
|
для: tavila2009
(11.03.2010 в 23:28)
| | Нет | |
|
|
|
|
|
|
|
для: tavila2009
(11.03.2010 в 23:28)
| | $city_d = mysql_escape_string(stripslashes($city_d));
Вот эта строка однозначно показывает, что Вы не понимаете, и не хотите понимать, что делают и зачем предназначены эти две функции. | |
|
|
|
|
|
|
|
для: Trianon
(12.03.2010 в 01:41)
| | Наверно вот так достаточно
$city_d = substr($_POST["city_d"],0,32);
$city_d = mysql_escape_string($city_d); | |
|
|
|
|
|
|
|
для: Trianon
(12.03.2010 в 01:41)
| | Да всё правильно Вы говорите. Вот нашла и прочитала. Аостараюсь запомнить навсгда! Спасибо Вам. Очень полезное замечание!
Удаление HTML - тегов и обратных слешей
Как уже говорилось, вводимый пользователем текст необходимо обработать функциями удаления HTML-тегов (для исключения возможности написания скриптов на JavaScript и Visual Basic) и обратных слешей (для исключения возможности написания скриптов на Perl). К примеру, если переменная $name содержит текст с именем пользователя, то обработка этого текста выглядит так:
<?
$name = substr($_POST["name"],0,32);
$name = htmlspecialchars(stripslashes($name));
?> | |
|
|
|
|
|
|
|
для: tavila2009
(12.03.2010 в 15:28)
| | > .. Вот нашла и прочитала. Аостараюсь запомнить навсгда! ...
Где Вы это нашли?
Забудьте навсгда! | |
|
|
|
|
|
|
|
для: root
(12.03.2010 в 15:35)
| | Да вы что! Это учебник Кузнецова! http://softtime.ru/bookphp/gl10_1.php#3
А как надо?
Хотя мне один знающий товарищ рекомендовал делать так:
$about = substr($_POST["about"],0,300);
$about = mysql_escape_string($about);
Народ, как правильно? | |
|
|
|
|
|
|
|
для: tavila2009
(12.03.2010 в 15:36)
| | Вы сначала выясните, что делает каждая из ниже перечисленных функций:
get_magic_quotes_gpc
stripslashes
mysql_real_escape_string
htmlspecialchars
На этом форуме достаточно тем в которых описывается когда какую применять.
P.S.
а учебник явно устарел.. | |
|
|
|
|
|
|
|
для: tavila2009
(12.03.2010 в 15:36)
| | Интересно, что в прошлогм году Вы уже создавали похожую тему, где Вам растолковали, когда и что.. | |
|
|
|
|
|
|
|
для: root
(12.03.2010 в 15:54)
| | так то оно так. Но в этой теме я спрашивала изначально верно ли так записать
if(isset($_POST["city_d"]))
А из той темы я вынесла для себя что
- из базы htmlspecialchars
- в базу mysql_escape_string(stripslashes())
Оказывается не правильно? | |
|
|
|
|
|
|
|
для: tavila2009
(12.03.2010 в 16:09)
| | >Оказывается не правильно?
Правильно, только stripslashes при условии get_magic_quotes_gpc.
if(isset($_POST["city_d"])) верно, если Вы согласны смириться с тем что $_POST["city_d"] может не быть. | |
|
|
|
|
|
|
|
для: root
(12.03.2010 в 16:14)
| | Трианон однако по этому поводу имеет такое мнение:
Trianon (12.03.2010 в 01:41)
$city_d = mysql_escape_string(stripslashes($city_d));
Вот эта строка однозначно показывает, что Вы не понимаете, и не хотите понимать, что делают и зачем предназначены эти две функции. | |
|
|
|
|
|
|
|
для: tavila2009
(12.03.2010 в 16:20)
| | значит почитайте еще раз Вашу прошлогоднюю тему, в частности то, что писал Вам Trianon.
UPD.
Первым делом, следует проверить включены ли магические кавычки (get_magic_quotes_gpc), и если да, убрать проставленные слеши (stripslashes).
Приблизительно так:
function rec_stripslashes($mixed)
{
return is_array($mixed) ? array_map('rec_stripslashes', $mixed) : stripslashes($mixed);
}
if( get_magic_quotes_gpc() )
{
$_GET = rec_stripslashes( $_GET );
$_POST = rec_stripslashes( $_POST );
}
| © Trianon
Непосредственно перед занесением данных в базу, строковые значения обрабатываются - mysql_real_escape_string.
htmlspecialchars используется непосредственно перед выводм текста в браузер. | |
|
|
|