оригинально ! и справедливо. я бы ещё добавил что форум это ещё и место где тебе постоянно тыкают ссылками. значит помогать не будите.
Вот мне в голову лезла идея как всегда сумашедшая: Решил сделать так, если пользователь имеет куки с моего сайта (живут которые 3 дня - 259200 секунд) пришёл на сайт пока куки живы - то на странице приветствия (а он именно туды и попадёт), кроме приветствия по имени ему будет показаано сколько ему осталось (до смерти куки). Скорее всего алгоритм будет такой: После передачи переменных с формы ренистрации также и передаём и время регистрации - и запишеться в куки. время жизни куки мы знаем время регистрации мы знаем видим мы и время прихода пользователя на страницу приветствия $time_reg - время регистрации пользователя $coocie_live - время жизни куки $present_time - время появления юзера на странице приветствия Нужно как то найти разницу $time_minus=$present_time - $time_reg сравнить if ($time_minus > $cookie_live){отправить юзера опять региться} else $user_live = $time_minus - $cookie_live - показать в формате часы минуты секунды Причём если учесть что время - это время и дата и нужно всё это перевести в цифры чтобы проводить арифмитические операции, а потом показать остаток (часы минуты секунды) От сюда вывод. заниматся этим не нужно -т.к. люди в белых халатах всегда на чеку!
В своё оправдание скажу вот к этому я пришёл сам (http://php.ru/manual -разумеется домашняя страница в браузере) Есть 3 страницы dostup.php - форма с регистрацией и ввода пароля с смс (пароль валиден 3 дня) access.php - приветствия юзера (после успешной регистрации и проверки валидности пароля) secret_place.php - страница куда может зайти тольго зарегинный пользователь (и то только след 3 дня) Работа В dostup.php PHP: <?php if (!isset($_COOKIE['mycook_ip'])) //если куки отсутствуют { выводим форму регистрации } else //если куки обнаружены { //отправляем узнанного юзера на страницу приветствия } session_start(); //считаю необходимым как для узнанного юзера (передовать переменные) так и незнакомца //если переменная пуста (переменаяя преобретает значение при регистрации) - ни чё не делаем if (empty($name)){echo"";} // если значение переменной присвоено (а значит прошла регистрация т.к. форма post/php_self) // открываем сессию и регистрируем данные переданные через форму else{ session_start(); $sms=$_POST['key']; $username=$_POST['name']; $ip=$_SERVER['REMOTE_ADDR']; session_register("sms"); session_register("username"); session_register("ip");} //и сразу отправляем на страницу приветствия echo " <script language=javascript> location.href='access.php'; </script> "; ?> access.php PHP: <?php session_start(); setcookie('mycook',$username,time()+259200); //запоминаем имя юзера (выдергивая их из сессии) setcookie('mycook_ip',$ip,time()+259200); //запоминаем ip юзера (выдергивая их из сессии) - пригодится ?> хотел сделать это на dostup.php - header отправлялись пучками - пришлось сделать так и теперь secret_place.php PHP: if (!isset($_COOKIE['mycook_ip'])) // взял эти (можно и mycook) - проверили куки { // не пустили юзера и отправим регистрироваться } else { // покажем страницу целиком } по моему всё описал. Сессии использовал для узнования зарегенного юзера (чтоб не выводить для него снова форму регистрации) Cookie - для того чтобы помнить его 3 дня Если юзер отключил куки - он казёл, так как стока сил вложил в этот код. Скрипт работает. Ну а теперь можно ваше мнение послушать, я адекватно воспринимаю критики и похвалу.
Букв много, но рекомендую ознакомиться: Краткая информация о cookie P.S. Советую уделить особое внимание безопасности
так побегал немного глазками. Ты про что хотел сказать ? Про уезвимость ? А мне ро барабану эти дыры.
Господа.... Вот и проблемка Вроде всё хорошо - но (раньше меня это не беспокоило) если у пользователя отключены куку - то это не хорошо. Я нашёл как проверить PHP: <?php if(!$cookie){ // посылаем заголовок переадресации на страницу, // с которой будет предпринята попытка установить cookie header("Location: $PHP_SELF?cookie=1"); // устанавливаем cookie с именем "test" setcookie("test","1"); } else { if(!$test) { echo("Для корректной работы приложения необходимо включить cookies"); } else { // cookie включены, тихо про себя радуемся ! } } ?> И вот - для проверки cookie - этот код посылает header - вот это то и плохо т.к. мне нужно чтобы стартовала сессия. И как быть ? Проверить то нужно.
как вариант: использовать Java script , тем более что проблем с передачей переменных не будет, но java script nj; может быть отключён - а мы не ищем простых путей!
Зачем пытаться ставить куки, если они не работают? :-D А чтобы стартовала сессия, надо session_start ставить перед header'ом.