送信されたデータを処理した後、私の署名スクリプトは、ユーザーをインデックスページにリダイレクトします。問題は、インデックスページで、ユーザーがサインインしたかどうかを確認できないことです。私は挿入しました:サインインページに問題がある
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 DBテーブルもチェックされています。それはctimeとckeyを設定します。 signinの部分は動作します(私は思う)。フィルタ機能はcommon.php
です(投稿データを消毒するため)
からsession auto start directiveセットを持っていない限り、あなたはセッションデータを必要とする各ページにセッションを開始する必要が'最初のチェックの前にそこに任意の '$場合_SESSION'変数が設定されていますか? – Artyom
あなたはsession_start()を持っていますか?あなたのインデックスページにも? – realshadow
はい私はページの始めにある –