$ _SESSION не запускается

0

Когда пользователь вошел в систему, ничего не отображается на экране (появляется сообщение об ошибке).
Это похоже на $_SESSION это не так?

<?php

 include_once('../includes/connection.php');


 if (isset($_SESSION['logged_in'])) {
 ?>
<html>
 <head>
 <title>wa</title>
 <link rel="stylesheet" type="text/css" href="../assets/stylesheet.css">
 </head>

 <body>
 <div class="container">
 <a href="index.php" id="logo">CMS</a>

 <br />
 <ol>

 <li><a href="add.php">Add Article</a></li>
 <li><a href="delete.php">Delete Article</a></li>
 <li><a href="logout.php">Logout</a></li>

</ol>       
</div>
</body>

</html>



<?php

 } else {

 if (isset($_POST['username'], $_POST['password'])) {
 $username = $_POST['username'];
 $password = md5($_POST['password']);


 if (empty($username) or empty($password)) {
 $error = 'All fields are required!';
 }else {

$query = $pdo->prepare("SELECT * FROM users WHERE user_name = ? AND user_password = 
         ?");

$query->bindValue(1, $username);
$query->bindValue(2, $password);

$query->execute();
$num = $query->rowCount();

 if ($num == 1) {
 $_SESSION['logged_in'] = true;

 header('Location: index.php');
 exit();

} else{

 $error = 'Incorrect details!';
}
}


}

  ?>
<html>
<head>
 <title>Visuality dashboard</title>
<link rel="stylesheet" type="text/css" href="../assets/stylesheet.css">
</head>

<body>
<div class="container">
<a href="index.php" id="logo">CMS</a>

 <br /><br />

 <?php if (isset($error)) { ?>
 <small style="color:#aa0000;"><?php echo $error; ?>
 <br /><br />
<?php } ?>





<form action="index.php" method="post" autocomplete="off">
<input type="text" name="username" placeholder="något">
<input type="password" name="password" placeholder="något">
<input type="submit" value="Login" />



</div>
</body>

<footer>
</footer>
 </html>

<?php
}






?>
  • 1
    session_start (); ? В конце концов, как вы храните данные внутри $ _SESSION?
  • 1
    Я думаю, что вы просто забыли "session_start ();". просто поместите это в вашей первой строке или где-нибудь поверх вашего кода.
Теги:
cmd
session

3 ответа

1
Лучший ответ

Вам нужно вызвать session_start(); в начале вашего файла PHP. Если у вас несколько файлов, то добавление их один раз в файл подключения будет работать для всех из них.

Подробнее о сессиях в PHP здесь

  • 0
    О, я забыл это, но большое спасибо! @KyleT
  • 0
    @Tobias Нет проблем. Если это решит вашу проблему, можете ли вы нажать кнопку принятого ответа? :)
0

Каждый php файл с переменной $ _SESSION должен включать session_start(); в верхней части страницы.

Когда страница получает белый экран после загрузки, вы должны увидеть php_error_log для возможных синтаксических ошибок (может отсутствовать ";"). Просмотрите свой код. Надеюсь, это поможет вам.

0

На строке 39 md5$_POST['password']); ты пропустил "("

md5($_POST['password']);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню