Консультация № 41909
02.05.2006, 21:08
0.00 руб.
0 2 2
Здравствуйте, коллеги!
У меня к Вам сразу несколько вопросов:
1. Допустим, имеется страница с формой, в которой надо ввести имя и email.
Корректность ввода в эти поля проверяется с помощью регулярных выражений.
Нужно проверить, если ввод корректен, то вывести страницу, оформленную также как и др. страницы сайта, с сообщением: "Здравствуйте, $name! Дополнительная информация выслана на ваш электронный адрес: $email".
Если же введённая информация в каком-то из полей не верна, то вывести заново страницу с формой и вверху вывести соответствующее предупреждение (неверное имя или email, соответственно). При этом все заполненные поля не должны очищаться, чтобы юзер не вводил их заново.
Как лучше всего это реализовать? Желательно с примером, т.к я только начинаю осваивать php.
2. В приложении приведена часть статьи. Вопрос: в чём заключается опасность такого метода и, главное, как защититься?
3. Подскажите пожалуйста скрипт, выполняющий такой подсчёт: "Эта страница была просмотрена: xxx раз(а). Сегодня: yyy. Уникальных посетителей за сегодня: zzz"
Спасибо.


Приложение:
"<html>:начало файла :<?php$add = $QUERY_STRING;if ($add == "") { $add = "main.phtml"; }INCLUDE ($url);?>: конец файла :</html>Сразу хочу предостеречь Вас, что этот метод открывает путь к получению информации о сервере, где расположен сайт с такой организацией структуры. Злоумышленник, или просто любопытный человек, при наличии определенных обстоятельств и знаний сможет много узнать о Вашем сервере, а это открывает прямой путь к взлому. Так что будьте осторожны и не станьте причиной больших неприятностей. Защититься от подобных проблем можно, но это уже совсем другая история."

Обсуждение

Неизвестный
02.05.2006, 21:15
общий
это ответ
Здравствуйте, Москвин Роман Валерьевич!

Опасность в том, что будет запускаться скрипт, адресс которого передан в параметре $url... Можно проверить адресс на наличие символов ".." (parent-dirs), чтобы разрешить открытие файлов только в текущей...
Неизвестный
02.05.2006, 21:56
общий
это ответ
Здравствуйте, Москвин Роман Валерьевич!

1) Смотри приложение
Допущения следующие: кнопка отпправления мыла submit_email
скрипт где выводится что допущен access_allow.php
скрипт где вводятся параметры mail_form.php. Где то так. Если нет желания использовать _GET можно по сабмиту подгружать наоборот файл allow_access.php там делать проверку и если не правильно возвращаться на mail_form.php с помощью того же Header. Для того чтобы открыть по сабмиту другой файл в
<form action=‘allow_access.php‘ .... >

2) Не понятно что за переменные, откуда берутся, и куда деваются. Если только исходить из смысла названия - то подгружать любой урл как инклюд - минимум глупо.

3) Куча счетчиков
http://www.phpclub.ru/?m=app&s=48

Приложение:
<?php$show_error = "";if($_POST[‘submit_email‘]){ /* Проверяешь валидность адреса и имени и если ок присваеваешь переменной $res=true иначе $res=false */ if($res) Header("Location: access_allow.php?name=...&email=..."); else $show_error = "Wrong email format!";}....Вывод Вашей формы для ввода мылагде то перед основными полями проверьте и покажите если не пустое, содержимое $show_error.....?>
Форма ответа