Доброе утро, помогите пожалуйста! как в php через session_start(); организовать:пользователь только один раз попадал на сайт. То есть пользователь заходит его сессия сохранилась. Он перешел по внешней ссылке. Когда он обратно заходит идет проверка по сессиям, что такой пользователь уже посещал сайт. И его перенаправляет по ссылке.
PHP: //в самом начале кода, до любого вывода в браузер session_start(); if($_SESSION['done']) { header('location: url'); exit; } if(expert) { //не знаю как проверить, существует ли такая сессия $_SESSION['done'] = 1; }
PHP: if ( !isset ( $_SESSION['done'] ) ) { } --- Добавлено --- но если на значение, а не на существование PHP: //место !isset () //прописать empty ()
Может ты хочешь что-то типа этого? Код (PHP): if(isset($_SESSION['done'] )){ if($_SESSION['done'] == 1){ //Код, если done = 1 } else { //Другой код } }
да ты уже проверил существование парой строчек выше. только ты копируешь не анализируя, не извлекая урок — в этом проблема.
решил сделать через куки подумал так лучше будет <?php if(isset($_COOKIE['user'])){ header('Location : https://www.youtube.com'); exit(); } else { setcookie("user", true); } ?> но все равно не работает вставляю над и под <!DOCTYPE html>, в <head> пробовал.... все время выдает ошибку Warning: Cannot modify header information - headers already sent by (output started at /home/bh60965/public_html/index.php:8) in /home/bh60965/public_html/index.php on line 15 спасайте!
переводя на русский: заработало когда от BOM избавился. ок. кстати, раз ветка "то" завершается exit, необязательно писать else вообще. код после ифа какбы и так только в случае "иначе" выполняется. лишняя вложенность блоков ухудшает читабельность.