所以在"index.php"中,用户将他们的用户名和密码放入HTML输入中,并将它们保存到"$username"和"$password"。然后PHP说:
<?php
$loginquery = mysqli_query($connection,"SELECT * FROM users WHERE username = '$username' AND password = '$password'");
$user = mysqli_fetch_array($loginquery);
session_start();
$_SESSION['username'] = $user['username'];
echo $_SESSION['username'];
?>
它回显出"$_SESSION['用户名']",但是如果我然后去"主页.php它实际上并没有保存变量,它说"注意:未定义的变量:_SESSION在/Applications/XAMPP/xamppfiles/htdocs/tobyscott/home.php 第 24 行"
这真的困扰着我!谢谢:)
你家里也有session_start()语句吗.php或者那里缺少它?
听起来你正在使用一个提交给自己的脚本。
添加条件以确保表单处理逻辑仅在获取/发布提交时运行:
if( !empty( $_POST[ 'varname' ] ) )
{
// Logic
$loginquery = mysqli_query($connection,"SELECT * FROM users WHERE username = '$username' AND password = '$password'");
$user = mysqli_fetch_array($loginquery);
session_start();
$_SESSION['username'] = $user['username'];
echo $_SESSION['username'];
}
或:
if( !empty( $_GET[ 'varname' ] ) )
{
// Logic
$loginquery = mysqli_query($connection,"SELECT * FROM users WHERE username = '$username' AND password = '$password'");
$user = mysqli_fetch_array($loginquery);
session_start();
$_SESSION['username'] = $user['username'];
echo $_SESSION['username'];
}