Сесси в PHP не сохраняются
Знаю, на StackOverflow полно ответов и на русском, и на английском, но сколько бы тем я не смотрел, я так и не понял, как я могу решить свою проблему. Извините.
<?php if ( ! isset($_POST['login'], $_POST['password'])): ?>
<html>
<head>
<title id='login-title'></title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="styles\standart.css">
<script type="text/javascript" src='sm.js'></script>
</head>
<body>
<div id='body'>
<?php include "header.html"; ?>
<div id='content'>
<div class='form'>
<center>
<h2><string id='login-form-title'></string></h2>
</center>
<form action="login.php" method="post">
<table>
<tr>
<td>
<label><string id='name'></string>:</label>
</td>
<td>
<input name="login" type="text" size="15" maxlength="15">
</td>
</tr>
<tr>
<td>
<label><string id='password'></string>:</label>
</td>
<td>
<input name="password" type="password" size="15" maxlength="15">
</td>
</tr>
<tr>
<td colspan='2'>
<center>
<input id="login-button" type="submit" name="submit">
</center>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
<?php include "footer.html"; ?>
</body>
</html>
<?php else: ?>
<html>
<head>
<title id="index-title"></title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="styles\standart.css">
<script type="text/javascript" src='sm.js'></script>
</head>
<body>
<div id='body'>
<?php include "title.html"; ?>
<div id='alertcontent'>
<?php
session_start();
if (isset($_POST['login'])) {
$login = $_POST['login'];
if ($login == '') {
unset($login);
}
}
if (isset($_POST['password'])) {
$password=$_POST['password'];
if ($password =='') {
unset($password);
}
}
if (empty($login) or empty($password)) {
echo "Заполните все поля!";
}
else {
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
$db = mysqli_connect("host","user","password", "db");
$result = mysqli_query($db, "SELECT * FROM users WHERE login='$login'");
$myrow = mysqli_fetch_array($result);
if (empty($myrow['password'])) {
echo "Извините, введённый вами login или пароль неверный.";
}
else {
if ($myrow['password']==$password) {
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
echo session_id();
echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
}
else {
echo "Извините, введённый вами login или пароль неверный.";
}
}
}
?>
</div>
</div>
<?php include "footer.html"; ?>
</body>
</html>
<?php endif; ?>
У меня при переходе на главную страницу не сохраняются сессии. Весь гугл облазил, ничего понятного не нашёл. session_id() не меняется. Что делать? Как исправить эту проблему? Или может что-то другое использовать вместо сессий. Помогите, пожалуйста! Заранее спасибо!
Вот скриншоты информации о session:

Ответы (2 шт):
Извините, оказывается сессии на хостинге работают, это я криворукий программист. Но я так и непонял, почему на index.php я не могу прочесть $_SESSION. index.php "инклудит" is_logged_in.php с таким кодом:
<?php
$loggedin = !(empty($_SESSION['login']) or empty($_SESSION['id']));
$login = $_SESSION['login'];
$id = $_SESSION['id'];
?>
Попробуйте так:
if(!empty($_SESSION['login'] && !empty($_SESSION['id'])){
$login = $_SESSION['login'];
$id = $_SESSION['id'];
}