После обработки отправленных данных мой сценарий подписи перенаправляет пользователя обратно на страницу индекса. Проблема в том, что на моей странице индекса я не могу проверить, вошел ли пользователь в систему или нет. Я вставил:
if (isset($_SESSION['id']))
{echo $_SESSION['id']; die();}
в начале страницы индекса для проверки. Но это ничего не отражает.
Мой скрипт входа выглядит так:
<?php
include '../includes/common.php';
$page='signin';
$err = array();
foreach($_GET as $key => $value) {
$get[$key] = filter($value);
}
if ($_POST['dologin']=='Daxil ol') {
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
$login = $data['login'];
$pass = $data['pwd'];
if (strpos($login,'@') === false) {
$user_cond = "login='$login'";
} else {
$user_cond="email='$login'";
}
$result = $db->query("SELECT `id`,`pwd`,`fname`,`lname`,`approved`,`type`,`level` FROM users WHERE $user_cond AND `ban` = '0'") or die($db->error());
$num = $result->num_rows;
if ($num > 0 ) {
list($id,$pwd,$fname,$lname,$approved, $type, $level) = $result->fetch_row();
if (!$approved) {
$err[] = 6;
}
if ($pwd === PwdHash($pass,substr($pwd,0,9))) {
if (empty($err)) {
session_start();
session_regenerate_id(true);
$_SESSION['id']= $id;
$_SESSION['fname'] = $fname;
$_SESSION['lname'] = $lname;
$_SESSION['type'] = $type;
$_SESSION['level'] = $level;
$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
$stamp = time();
$ckey = GenKey();
$db->query("update users set `ctime`='$stamp', `ckey` = '$ckey' where id='$id'") or die($db->error());
//set a cookie
if (isset($_POST['remember'])) {
setcookie("id", $_SESSION['id'], time()+60*60*24*COOKIE_TIME_OUT, "/");
setcookie("key", sha1($ckey), time()+60*60*24*COOKIE_TIME_OUT, "/");
setcookie("fname",$_SESSION['fname'], time()+60*60*24*COOKIE_TIME_OUT, "/");
}
header("Location: ../../../index.php");
}
} else {
$err[] = 7;
}
} else {
$err[] = 8;
}
if (!empty($err)) {
include "../includes/error.php";
}
}
?>
Проверен лог ошибок php. Нет ошибок. Также проверил таблицы БД MySql. Устанавливает ctime и ckey. Входная часть работает (я думаю). Функция фильтра от common.php
(для очистки данных поста)