RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 496
от 23.10.2006, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 378, Экспертов: 54
В номере:Вопросов: 2, Ответов: 6


Вопрос № 59273: если, я не ошибаюсь чистый код html опасно добавлять в бд без всяких обработок нужными функциями... что мне делать в моем случае? если я хочу добавить текст, который помимо всего включает в себя ссылки такого рода, да и вообще сам хтмл код &l...
Вопрос № 59325: Уважаемые Эксперты! Я делаю скрипт каталога ссылок. Заказчик хочет, чтобы скрипт работал не совсем обычно. У меня один скрипт, которому параметром передаю нужный ID раздела и если нужно номер страниц, в таком виде: http://www.sk.telecom....

Вопрос № 59.273
если, я не ошибаюсь чистый код html опасно добавлять в бд без всяких обработок нужными функциями... что мне делать в моем случае?
если я хочу добавить текст, который помимо всего включает в себя ссылки такого рода, да и вообще сам хтмл код
<a href="http://ya.ru">Yandex</a>

то есть под Yandex скрывается ссылка....

Приложение:

Отправлен: 17.10.2006, 20:10
Вопрос задала: MadeInUSSR (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Загиров Рустам
Здравствуйте, MadeInUSSR!
Давайте по данному коду?
Функция mysql_escape_string не изменяет исходную строку. Изменяем на:
$new_text=mysql_escape_string($news_text);
Не совсем понятно, зачем разбивать тескт на слова..

А теперь по существу вопроса:
Для удаления тэгов из теста существует функция: strip_tags($str[,$allow_tags]). Из строки $str будут удалены все тэги, за исключение перечисленных в строке $allow_tags. Например, $allow_tags='<a>', значит после вызова функции остануться только ссылки.
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 17.10.2006, 20:32

Отвечает: PVS
Здравствуйте, MadeInUSSR!
Зависит от того что Вы подразумеваете говоря "опасно". Для самой базы данных никакой опасности нет, но вот если какой "доброжелатель" впишет туда JavaScript c бесконечным циклом, то внешний вид Вашей страницы пострадает. Если хотите использовать форматирование и ссылки обратите внимание на bbcode (или еще что-то похожее). Идея такая: вводится свой набор тэгов, который при выводе информации заменяется на html, а если встречается чистый html, то он отображается как текст (обработка функцией htmlspecialchars)
Ответ отправил: PVS (статус: Практикант)
Ответ отправлен: 18.10.2006, 10:31

Отвечает: grim
Здравствуйте, MadeInUSSR!
Всё зависит от того, кто может повлиять на этот код. Если только Вы сами - то ничего страшного html Вам не сделает. Другое дело, если код поступает от пользователя. Тут имеет смысл перед помещением в бд, например, заменить все < на [, а > на ] (Пример 1 в приложении). А при выводе страницы производить замену только для разрешённых тегов (Пример 2). Хотя из соображений безопасности, я бы вообще не стал бы использовать пользовательские ссылки без премодерации. А вот тег <b> вряд ли сможет кому-то навредить

Приложение:

Ответ отправил: grim (статус: 1-ый класс)
Ответ отправлен: 18.10.2006, 19:25
Оценка за ответ: 5


Вопрос № 59.325
Уважаемые Эксперты!

Я делаю скрипт каталога ссылок. Заказчик хочет, чтобы скрипт работал не совсем обычно. У меня один скрипт, которому параметром передаю нужный ID раздела и если нужно номер страниц, в таком виде:
http://www.sk.telecom.kz/tmp/olt/catalog.php?id=23&page=1
Требуется чтобы ссылки были псевдостатичными, то есть вместо передачи параметров было бы примерно следующее:
http://www.sk.telecom.kz/tmp/olt/informacija_spravki/telefonnie_spravochniki/1.php
для облегчения индексирования поисковиками.
Как такое можно сделать, не создавая кучу каталогов и скриптов в них соответственно ?
Отправлен: 18.10.2006, 10:31
Вопрос задал: Mrx (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Straight
Здравствуйте, Mrx!
Вам поможет mod_rewrite
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 18.10.2006, 10:44
Оценка за ответ: 4
Комментарий оценки:
А если на хостинге стоит не Apach, то что делать ?

Отвечает: PVS
Здравствуйте, Mrx!
Очень даже обычно должен работать Ваш скрипт. Реализуется такая вещь в файле .htaccess (настройка Apache). Вот пример который все обращения к картинкам отправляет на другой порт.

RewriteEngine on
RewriteRule ^(.*.gif$) {http://www.domain.ru}:81/$1 [R]
RewriteRule ^(.*.jpg$) {http://www.domain.ru}:81/$1 [R]
RewriteRule ^(.*.bmp$) {http://www.domain.ru}:81/$1 [R]
RewriteRule ^(.*.png$) {http://www.domain.ru}:81/$1 [R]

Подробнее о синтаксисе здесь:
http://sitemaker.ru/technologies/webserver/mod_rewrite/
http://sitemaker.ru/technologies/webserver/mod_rewrite2/
http://sitemaker.ru/technologies/webserver/mod_rewrite3/
http://sitemaker.ru/technologies/webserver/mod_rewrite4/
и здесь:
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
Ответ отправил: PVS (статус: Практикант)
Ответ отправлен: 18.10.2006, 10:58
Оценка за ответ: 4
Комментарий оценки:
А если на хостинге стоит не Апач, как тогда быть ?

Отвечает: Скип Кудета
Здравствуйте, Mrx!

Для работы под Apache следует использовать mod_rewrite.
Простите, что я не описываю это с подробностями и примерами, но, искренне полагаю, вы всегда сможете найти примеры по сей теме в любом поисковике, это действительно несложно.

А вот под IIS такой фичи нэма. Что делать.
Думаю, делаем так: пишем хитрый скрипт, который делает вот что. Для начала, на этот скрипт пусть перенаправляются все ошибки 404 (не найдено). Так как ссылки ножки-огуречик, тьхе, то есть вида домен/папка/папка/N.php - явно будут относиться к ненайденным, сервер кидает человечка к этому скрипту, и он
1. Смотрит - откуда на него перекинули? (Переменная HTTP_REFERRER)
2. Обрабатывает ее в меру сил. На части режет, параметры смотрит, мало ли как
3. Выдает результат.

Воот... правда, думаю - а поисковики это будут индексировать? Ну, и главное - а будет ли это работать? :-) По идее должно.
Ответ отправил: Скип Кудета (статус: 1-ый класс)
Ответ отправлен: 18.10.2006, 12:26


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное