За последние 24 часа нас посетил 65761 программист и 5380 роботов. Сейчас ищут 1514 программистов ...

session_start();

Тема в разделе "PHP для новичков", создана пользователем Million, 11 сен 2016.

  1. Million

    Million Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    Доброе утро, помогите пожалуйста! как в php через session_start(); организовать:пользователь только один раз попадал на сайт. То есть пользователь заходит его сессия сохранилась. Он перешел по внешней ссылке. Когда он обратно заходит идет проверка по сессиям, что такой пользователь уже посещал сайт. И его перенаправляет по ссылке.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    сессия существует до закрытия браузера. как долго ты хочешь помнить данного пользователя?
     
  3. Million

    Million Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    Я знаю что 24 минуты - время жизни сессии по умолчанию или по закрытию браузера. Мне все подходит ;)
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    и в чём проблема?
     
  5. Million

    Million Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    PHP:
    1. //в самом начале кода, до любого вывода в браузер
    2. if($_SESSION['done']) {
    3.     header('location: url');
    4.     exit;
    5. }
    6. if(expert) {
    7.     //не знаю как проверить, существует ли такая сессия
    8.     $_SESSION['done'] = 1;  
    9. }
     
    #5 Million, 11 сен 2016
    Последнее редактирование модератором: 11 сен 2016
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    PHP:
    1. if ( !isset ( $_SESSION['done'] ) )
    2. {
    3.  
    4. }
    --- Добавлено ---
    но если на значение, а не на существование
    PHP:
    1. //место
    2. !isset ()
    3. //прописать
     
  7. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    Может ты хочешь что-то типа этого?
    Код (PHP):
    1. if(isset($_SESSION['done'] )){
    2. if($_SESSION['done'] == 1){
    3. //Код, если done = 1
    4. } else {
    5. //Другой код
    6. }
    7. }
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    В чем логика написанного кода если твое условие будет перекрывать банальный exit;
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    да ты уже проверил существование парой строчек выше. только ты копируешь не анализируя, не извлекая урок — в этом проблема.
     
    Million нравится это.
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    порой достаточно else вписать
     
  11. Million

    Million Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    • Оформляй код, кнопка </> в редакторе, потом выпадающий список и выбирай тип кода: php, javascript, html и т. д.
    решил сделать через куки подумал так лучше будет
    <?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
    спасайте!
     
  12. Million

    Million Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    все решен вопрос кодировку в UTF 8 перевел
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    переводя на русский: заработало когда от BOM избавился. ок.

    кстати, раз ветка "то" завершается exit, необязательно писать else вообще. код после ифа какбы и так только в случае "иначе" выполняется.
    лишняя вложенность блоков ухудшает читабельность.
     
    MouseZver нравится это.