За последние 24 часа нас посетили 16038 программистов и 1574 робота. Сейчас ищут 647 программистов ...

Функция проверки авторизации

Тема в разделе "Решения, алгоритмы", создана пользователем jammeal, 13 июн 2016.

  1. jammeal

    jammeal Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Пишу функцию, которая должна проверять, есть ли cookies у клиента и есть ли сессия в базе данных. Если нет, должна отправлять на страницу авторизации. При использовании на страницах в любом случае отправляет на страницу авторизации. Помогите, пожалуйста?!
    PHP:
    1. function auth()
    2. {
    3. if(!isset($_COOKIE['s'])){goto_page("authorization.php");}  //функция goto_page написана, работает нормально
    4.   else
    5.   {
    6.       $cook=$_COOKIE['s'];
    7.       $q=mysqli_query($link, "SELECT COUNT(*) FROM sess WHERE key='".$cook."'");
    8.       $res=mysqli_fetch_assoc($q);
    9.       $ac=$res['COUNT(*)'];
    10.       if($ac==0){goto_page("authorization.php");}
    11.       else
    12.       {
    13.          $date=date("Y-m-d H:i:s");
    14.          mysqli_query($link, "UPDATE sess SET date ='".$date."' WHERE key='".$cook."');
    15.      }
    16.     }
    17. }
     
    #1 jammeal, 13 июн 2016
    Последнее редактирование модератором: 13 июн 2016
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Включи вывод сообщений на экран или изучи журнал ошибок веб-сервера. Вангую, что дело в том, что переменная $link, в которой типа экземпляр класса mysqli хранится, недоступна в функции auth(). То есть её нужно забрать из глобального окружения, если она там есть, или объявить локально.
     
  3. jammeal

    jammeal Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    А как выводить сообщения? Или где этот журнал взять?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    https://php.ru/manual/errorfunc.configuration.html
    https://php.ru/manual/security.errors.html

    А это уже зависит от твоего окружения. Мне отсюда не видно, какие программы у тебя установлены и как настроены.
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  6. Junior)

    Junior) Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    41
    Симпатии:
    5
    Адрес:
    Златоуст
    Я может глупость скажу потому что сам новичок, но вы же сначала проверяете !isset, то есть если она существует и отправляете на авторизацию, а если нет то присваиваете. Если нужно проверить на отсутствие, нужно писать просто isset, без ! .

    UPD. Глупость, да)
     
    #6 Junior), 18 июл 2016
    Последнее редактирование: 18 июл 2016
  7. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    @Junior)
    Глупость, да. Почитай документацию ещё, чтобы в будущем не путаться