За последние 24 часа нас посетили 18834 программиста и 1573 робота. Сейчас ищет 1891 программист ...

Проблема с повторной авторизацией

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

  1. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Здравствуйте! Имеется авторизация на сайте, где данные записываются в сессию. Дальше стоит проверка, если есть сессия, то вход выполнен. Данные записываются, сессия отображается, но при переходе на другую страницу все слетает. А при повторной авторизации все работает как надо. Подскажите, в чем может быть причина. Просто нужно что бы авторизация проходила с первого раза. Спасибо!

    index.php:
    PHP:
    1. <?
    2.             session_start();
    3.             $mysqli = new mysqli ("...", "...", "...", "...") or die(mysqli_error());
    4.                 if(isset($_POST['enrbtn'])){
    5.                     if(empty($_POST['login'])){
    6.                         echo '<script>alert("Поле логин не заполненно");</script>';
    7.                     }elseif(empty($_POST['password'])){
    8.                         echo '<script>alert("Поле пароль не заполненно");</script>';
    9.                     }
    10.                     else{
    11.                     $login=$_POST['login'];
    12.                     $password=$_POST['password'];
    13.                     $query=mysqli_query($mysqli, "SELECT `id`, `fio`, `inn`, `phone`, `email` FROM `users` WHERE `Email` = '$login' AND `Password` = '$password'");
    14.                     $result = mysqli_fetch_array($query);  // Формируем переменную с исполнением запроса к БД
    15.              
    16.                 if(empty($result['id'])){
    17.                     echo '<script>alert("Неверные Логин или Пароль");</script>';
    18.                 }else{
    19.                     $_SESSION['password'] = $password;
    20.                     $_SESSION['login'] = $login;
    21.                     $_SESSION['id'] = $result['id'];
    22.                     $_SESSION['fio'] = $result['fio'];
    23.                     $_SESSION['inn'] = $result['inn'];
    24.                     $_SESSION['phone'] = $result['phone'];
    25.                     $_SESSION['email'] = $result['email'];
    26.                  
    27.                 }
    28.                 }
    29.             }
    30.  
    31.             if (isset($_SESSION['login']) && isset($_SESSION['id'])){  //Таким же образом проверяется сессия на других страницах
    32.                          
    33.                 echo '<div class="logindex2" align="center" style="display: none;"><a href="index.php?exit">Выход</a></div>';?>
    34.                 <script>
    35.                     document.getElementById('entline').innerHTML = '<div style="margin-left: 10px;" class="logindex"><?echo $_SESSION['fio'];?></div>';
    36.                     $(".logindex").on("click", function() {
    37.                         $(".logindex2").toggle();
    38.                     });
    39.                     document.getElementById('reg-form').style.display = 'none';
    40.                 </script>
    41.             <?
    42.             }
     
  2. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Скинь часть кода, как у тебя идет проверка сессий на других страницах?
    session_start(); есть на всех страницах?
     
  3. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Да, на всех страницах. Стоит такая же проверка, как здесь:

    PHP:
    1. <?php
    2.         session_start();
    3.         if (isset($_SESSION['login']) && isset($_SESSION['id'])){
    4.             echo $_SESSION['fio'];
    5.         ?>
    То есть ошибки видимо не должно быть, авторизируется все же в конечном итоге. Может с куками что то...