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

Форум PHP

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

 

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

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

тема: как проверять строки
 
 автор: RV   (02.06.2006 в 18:29)   письмо автору
 
 

Есть форум. на форуме есть профиль пользователей. В профиле есть поля Откуда, подпись, интересы, род занятий. Как и на что лучше их проверять перед добавлением в базу? Потом естественно эти поля надо отображать без вреда для конечного пользователя.

   
 
 автор: skor   (02.06.2006 в 18:41)   письмо автору
 
   для: RV   (02.06.2006 в 18:29)
 

перед добавлением в базу убрать пробелы, вырезать теги, проверить нет ли < и >
и прочих ненужных символов..
короче выполнить примерно такую чистку ))


$text=htmlspecialchars(stripslashes(trim(mysql_escape_string($text))));

   
 
 автор: Trianon   (02.06.2006 в 18:48)   письмо автору
 
   для: skor   (02.06.2006 в 18:41)
 

>$text=htmlspecialchars(stripslashes(trim(mysql_escape_string($text))));

не надо нести бред.

   
 
 автор: Trianon   (02.06.2006 в 18:47)   письмо автору
 
   для: RV   (02.06.2006 в 18:29)
 

Перед добавлением их не надо проверять ни на что. Надо их лишь корректно в базу поместить, т.е. соблюсти синтаксис языка SQL.
А вот после вытаскивания из базы, перед отображением в браузере, следует корректно преобразовывать символы в сущности html (с помощью htmlspecialchars)

   
 
 автор: skor   (02.06.2006 в 18:53)   письмо автору
 
   для: Trianon   (02.06.2006 в 18:47)
 

ну а если пользователи начнут всякую фигню там писать? что тогда?

   
 
 автор: Trianon   (02.06.2006 в 18:55)   письмо автору
 
   для: skor   (02.06.2006 в 18:53)
 

То в базе начнет храниться всякая фигня.
БАза умеет хранить всякую фигню. Ей, откровенно говоря, вообще безразлично, что хранить.
Она, к примеру, даже фотографии и прочие двоичного рода файлы хранить может, и ничего, не ломается.

   
 
 автор: skor   (02.06.2006 в 18:57)   письмо автору
 
   для: Trianon   (02.06.2006 в 18:55)
 

по моему разумнее сразу заносить в базу чистый результат а потом брать его и выдовать пользователю, чем потом вычищать ее перед выводом!

   
 
 автор: skor   (02.06.2006 в 19:00)   письмо автору
 
   для: skor   (02.06.2006 в 18:57)
 

http://www.softtime.ru/info/task.php?id_article=81

   
 
 автор: Artem S.   (02.06.2006 в 19:01)   письмо автору
 
   для: skor   (02.06.2006 в 18:57)
 

Trianon прав. Желательно по минимому изменять информацию, на случай если ее нужно будет править.

   
 
 автор: Trianon   (02.06.2006 в 19:15)   письмо автору
 
   для: Artem S.   (02.06.2006 в 19:01)
 

>....Желательно по минимому изменять информацию, на случай если ее нужно будет править.

....или даже просто искать.
Попытка провести в базе поиск чего-то вроде

M&M's  
будет обречена на провал.
И вы никогда не объясните пользователю, что ему следует искать

M&M\'s

   
 
 автор: skor   (02.06.2006 в 20:38)   письмо автору
 
   для: Trianon   (02.06.2006 в 19:15)
 

лан сдаюсь ))

   
 
 автор: valenok   (02.06.2006 в 20:51)   письмо автору
 
   для: skor   (02.06.2006 в 20:38)
 

Trianon
как грамотно вписать всё в базу?

Вот тебе фигня пользователя:
' AND 'password'='hello' WHERE 'id'=14;""#$%^&*()! Маме привет
Как правильно вписать это в базу по твоему?

   
 
 автор: Trianon   (02.06.2006 в 21:05)   письмо автору
 
   для: valenok   (02.06.2006 в 20:51)
 

очень просто:
$param = "'".mysql_real_escape_string($value). "'";
$sql = "INSERT into tab (str) VALUES ($param)";

   
 
 автор: valenok   (02.06.2006 в 21:06)   письмо автору
 
   для: Trianon   (02.06.2006 в 21:05)
 

а на выводе?
порсто htmlspecialchars ?
Хватит по твоему?

   
 
 автор: Trianon   (02.06.2006 в 21:08)   письмо автору
 
   для: valenok   (02.06.2006 в 21:06)
 

Если просто в html - хватит.
Если внутрь строки JS-фрагмента html, то там совсем другой коленкор. Там прямых стандартных функций вообще не хватит. Придется писать свою.

   
 
 автор: valenok   (02.06.2006 в 21:12)   письмо автору
 
   для: Trianon   (02.06.2006 в 21:08)
 

Что значит ява скрипт?
Пользователь написал: <script>alert("hello mama");</script>
Мне надо чтоб на выходе это и был результат. без исполнения конечно. Просто надпись
" <script>alert("hello mama");</script> "

   
 
 автор: Trianon   (03.06.2006 в 00:03)   письмо автору
 
   для: valenok   (02.06.2006 в 21:12)
 

Так и выйдет. Если без исполнения, то никакой это не скрипт, а обычный html.
Просто иногда из PHP данные надо передать в JS для последующей обработки. Вот тогда придется повозиться.

   
Rambler's Top100
вверх

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