Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: str_replace для всех форм
 
 автор: Caman   (13.06.2007 в 07:58)   письмо автору
 
 

Подскажите, у меня имена переменных форм разные и для каждого прописывать str_replace будет накладно, т.к. форм много! Как сделать так, чтобы один раз где-нить написать str_replace и уже не заморачиваться над этим?

   
 
 автор: Trianon   (13.06.2007 в 09:42)   письмо автору
 
   для: Caman   (13.06.2007 в 07:58)
 

зачем?

Зачем делать str_replace над _всеми_ полями форм?

   
 
 автор: cheops   (13.06.2007 в 10:44)   письмо автору
 
   для: Caman   (13.06.2007 в 07:58)
 

Под формой что имеется в виду?

   
 
 автор: Caman   (13.06.2007 в 12:29)   письмо автору
 
   для: cheops   (13.06.2007 в 10:44)
 


echo "
    <form action=\"index.php?do=login\" method=\"post\">
    Логин:<br /><input type=\"text\" name=\"username\" size=\"30\" maxlength=\"30\" /><br />
    Пароль:<br /><input type=\"password\" name=\"password\" size=\"30\" maxlength=\"10\" /><br />
    <input type=\"submit\" name=\"submit\" value=\"Войти\" />
    </form><br><br>";


Это форма авторизации.

Перед тем, как сверять с БД...

$username = str_replace("\t","<br>",$username);
    $username = str_replace("<","&#60;",$username);
    $username = str_replace(">","&#62;",$username);


Таких форм у меня куча, добавления комментариев, новостей, личная информация и т.д...
Не хочу каждый раз вписывать

$username = str_replace("\t","<br>",$username);
$news = str_replace("\t","<br>",$news);
$info = str_replace("\t","<br>",$info);
$title = str_replace("\t","<br>",$title);
 и т.д.


Один раз написать и всё... для любых полей, для любых форм будет действовать одно правило... замена спецсимволов...

Как это можно реализовать?

   
 
 автор: Trianon   (13.06.2007 в 13:25)   письмо автору
 
   для: Caman   (13.06.2007 в 12:29)
 

функцией array_map()


function user_replace($x) 
{
    return is_array($x)? $x : str_replace(array("\t","<", ">"), array("<br>", "&#60;", "&#62;"), $x);
}
$_POST = array_map('user_replace', $_POST);


только все равно это фу.

   
 
 автор: Caman   (13.06.2007 в 14:33)   письмо автору
 
   для: Trianon   (13.06.2007 в 13:25)
 

Если фу... то как посоветуете?

   
 
 автор: Trianon   (13.06.2007 в 14:43)   письмо автору
 
   для: Caman   (13.06.2007 в 14:33)
 

посоветую применять htmlspecialchars и nl2br при выводе контента


Но опять же... нравится - делайте.
Если потом когда-нибудь у кого-нибудь с символами < или > возникнет проблема - матюги (или проклятья - это уж у кого как получается) будут складывать на Вас.


Кстати, зачем Вы меняете символы табуляции на брейклайны, я так и не понял.
Решил, что опечатка.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования