未保存PHP会话变量

未保存PHP会话变量,php,mysql,session,login,Php,Mysql,Session,Login,因此,在'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

因此,在'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'];
?>

听起来像是在使用一个向自身提交的脚本

添加条件以确保表单处理逻辑仅在get/post提交时运行:

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'];
}
或:


您是否有会话_start();您的home.php中也有语句-还是缺少该语句?

index.php
有什么关系?
index.php
是否包括
home.php
?如果没有:是否有
会话_start()
home.php
?请发布home.php的相关代码。很可能,它缺少
session\u start()
,必须在访问会话的每个脚本上调用它(并且在生成任何输出之前)。是的,这是我的问题,但我现在已经解决了。谢谢
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'];
}