突然機能しなくなったユーザーログインに問題があります。私は session_start(); を持っています。それを必要とするすべてのページの上部にありますが、私が宣言したセッション変数は、ログインページへの持ち越しを停止したようです.
ログイン ページでリダイレクトと print_r($_SESSION) を無効にすることもできます。これにより、適切な変数が出力されます。
ログインページのコードは次のとおりです。
<? session_start(); ?>
<?php include($_SERVER["DOCUMENT_ROOT"]."/_/includes/head.php"); ?>
<?php
if (isset($_POST['submitted'])){
$username = $_POST['username'];
$password = $_POST['password'];
function enc($string){
$salt = "2@xp";
$hash = sha1(md5($salt.$string)).md5($string).sha1(md5(md5($string)));
return $hash;
}
$pass = enc($password);
if($username&&$password){
$query=mysql_query("SELECT * FROM `users` WHERE `username`='$username'");
$numrows = mysql_num_rows($query);
if ($numrows!=0){
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
//check to see if they match
if ($username==$dbusername&&$pass==$dbpassword){
echo ("You're in! <a href='index.php'>Home</a>");
$_SESSION['username'] = $dbusername;
session_register("username");
header("Location: index.php");
}
else echo ("Incorrect Password");
}
}
else header("Location: login.php");
}
else echo ('Login Failed');
}
?>
ログイン時にリダイレクトされるページのコードは次のとおりです。
<?php
session_start();
if ($_SESSION['username']){
echo "<section id='login'><a href='logout.php'>Logout</a></section>";
$user = $_SESSION['username'];
}
else header("Location: login.php");
?>
毎回ログインページに戻されます。どんな助けでも素晴らしいでしょう。ありがとう!