twofolls95
@twofolls95

Почему не работает сессия?

Есть форма с авторизацией:

<form method="post">
            <div class="form-group" style="margin-bottom:5px;">
              <input type="text" class="form-control" placeholder="Логин:" name="login" required><br>
              <input type="password" class="form-control" placeholder="Пароль:" name="password" required><br>
              <button type="submit"  class="btn btn-primary" name="submit"  style="float:right;">Войти</button>
            </div>
          </form>


А также два файла, admin.php(админка сайта), и header.php (шапка сайта, где лежит ссылка на всплывающую форму авторизации).

Это файл с админкой, где идёт проверка на админа (admin.php):
session_start();
if(!$_SESSION['admin']){
  header("Location: /");
  exit;
}


А это создание админа в header.php
session_start();
$admin = 'admin';
$password = 'telegram';

if($_POST['submit']){
  if($admin == $_POST['login'] && $password == $_POST['password']){
    $_SESSION['admin'] = $admin;
    header("Location: modules/admin/admin.php");
    exit;
  }
}


При вводе данных страница обновляется и я по-прежнему остаюсь на главной странице. А мне надо, чтобы при вводе данных перекидывало на admin.php
В чём проблема?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
Все нормально с сессией, проблема в $_POST['submit'], у тебя не задано для него никакого значения, то есть в var_dump($_POST['submit']); выводится как пустая строка (string '' (length=0)). Ты же его проверяешь просто if($_POST['submit']), в этом случае выражение $_POST['submit'] вычисляется как Boolean значение, значит что и пустая строка и null и 0 считаются как FALSE, подробнее --> тут <--. Чтобы все заработало надо либо задать value для button submit с некоторым значение не равным нулю, либо проверять на стороне PHP другим способом, например:
if(isset($_POST['submit'])){

}
//или просто 
if($_POST){

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы