За последние 24 часа нас посетили 19082 программиста и 1625 роботов. Сейчас ищут 732 программиста ...

Проблема с проверкой в функции..

Тема в разделе "PHP для новичков", создана пользователем HolodZhe, 22 апр 2017.

  1. HolodZhe

    HolodZhe Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    57
    Симпатии:
    1
    Всем привет. Создал функцию, для проверки, авторизован ли пользователь или нет..

    PHP:
    1. function isAuth()
    2. {
    3.     if($_SESSION["hash"] === getUserHash() and $_SESSION["name"] === getUserName() and $_SESSION["auth"] === true) return 1;
    4.     else return 0;
    5. }
    6.  
    7. function getUserHash()
    8. {
    9.     global $mysqli;
    10.     $result = $mysqli->query("SELECT ucp_hash FROM admin WHERE name = 'Steven_Hamilton'");
    11.     $row = $result->fetch_assoc();
    12.     return $row['ucp_hash'];
    13. }
    14. function getUserName()
    15. {
    16.     global $mysqli;
    17.     $result = $mysqli->query("SELECT name FROM admin WHERE name = 'Steven_Hamilton'");
    18.     $row = $result->fetch_assoc();
    19.     return $row['name'];
    20. }
    В другом файле, я вывожу некий дебаг:
    PHP:
    1. echo "Проверка:<br>";
    2. printf("isAuth - %d<br>", isAuth());
    3. printf("auth - %d<br>", $_SESSION["auth"]);
    4. printf("session name - %s | base name - %s<br>", $_SESSION["name"], getUserName());
    5. printf("session hash - %s | base hash - %s<br>", $_SESSION["hash"], getUserHash());
    В итоге на страницу выводит что isAuth = 0, а все ниже проверки равняются тому, чему надо (т.е. функция должна была возвратить 1, но возвратила 0)
    HTML:
    1. Проверка:
    2. isAuth - 0
    3. auth - 1
    4. session name - Steven_Hamilton | base name - Steven_Hamilton
    5. session hash - d06956832c968f931c37b69c7c52b2d7 | base hash - d06956832c968f931c37b69c7c52b2d7
     
    #1 HolodZhe, 22 апр 2017
    Последнее редактирование: 22 апр 2017
  2. servitpol

    servitpol Новичок

    С нами с:
    17 авг 2016
    Сообщения:
    63
    Симпатии:
    3
    А у Вас точно уcловие
    PHP:
    1. $_SESSION["auth"] === true
    возвращает true?
     
  3. HolodZhe

    HolodZhe Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    57
    Симпатии:
    1
    Проблема решена.
     
    denis01 нравится это.