Php $会话[';用户';]不工作

Php $会话[';用户';]不工作,php,session-variables,Php,Session Variables,这是记录和设置的代码 <?php session_start(); $_SESSION['user'] = "kjkj"; $_SESSION['pass'] = ""; $error = $user = $pass = ""; if (isset($_POST['user'])) { $user = sanitizeString($_POST['user']); $pass = sanitizeString(

这是记录和设置的代码

<?php 
    session_start();
    $_SESSION['user'] = "kjkj";
    $_SESSION['pass'] = "";  
    $error = $user = $pass = "";

    if (isset($_POST['user'])) {
        $user = sanitizeString($_POST['user']);
        $pass = sanitizeString($_POST['pass']);

     if ($user == "" || $pass == "") {
            $error = "Not all fields were entered<br />";
     } else {
            $query = "SELECT store,c_pass FROM store
                    WHERE store='$user' AND c_pass='$pass'";

            if (mysql_num_rows(queryMysql($query)) == 0) {
                $error = "Username/Password invalid<br />";
            } else {
            $_SESSION['user'] = $user;
                $_SESSION['pass'] = $pass;
            $str = $_SESSION['user'] . ", You are now logged in. Please 
                       <a href='scheduler.php'>click here</a>.";

                die($str);
            }
        }
    } ?>

它会在查询之后打印出正确的存储名称。但是当我尝试在另一个类似这样的php文件中使用它时

if (!isset($_SESSION['user']) ) {
    die("<p><h1>Please Login</h1></p>");
} else {
    echo "<p><form id ='addemp' method=\"post\" action=\"addUser.php\">
          Name<input type=\"text\" name=\"emp\" />
      \"". $_SESSION['user'] . "\">
      <input type=\"submit\" value=\"AddUser\" />
    </form></p>";
}
if(!isset($\u会话['user'])){
死亡(“请登录”

”; }否则{ 回声“ 名称 \“.$”会话['user']。“\”>

”; }
这是一个空字符串。不是null,只是空字符串。我尝试了在互联网上找到的所有解决方案,但没有一个奏效。我不知道为什么这不起作用。
非常感谢您的帮助。

在使用
$\u会话之前,您需要先调用
会话\u start()
。还请注意,在会话中保留密码是一种非常糟糕的做法,也是一个很大的安全漏洞。

在使用
$\u会话之前,需要调用
会话\u start()
。还要注意的是,在会话中保留密码是一种非常糟糕的做法,也是一个很大的安全漏洞。

可能有很多问题。首先,会话在其他时间有效吗? 我认为你没有提供足够的信息让我们帮助你。这可能是apache/php设置的问题,而不仅仅是您的代码。以前我在Windows上开发WAMP时遇到过这种情况,并且临时文件夹没有正确的权限。正如我所说,可能有许多问题会导致您的会话行为不端

  • 当你做一个计数器和刷新 佩奇:它有号码吗
  • 每次使用您需要的会话的开始时间 调用了session_start()方法。 重要提示:之前不能有任何回声或指纹等 会话启动()。
  • 将变量转储($user)
放在会话['user']=$user之前
并在保存$user之前检查其内容。可能是您的消毒功能工作不正常。在第一个脚本的末尾也执行此操作,以查看
$\u会话的内容
,确保变量正确保存
    可能有很多原因。首先,会话在其他时间有效吗? 我认为你没有提供足够的信息让我们帮助你。这可能是apache/php设置的问题,而不仅仅是您的代码。以前我在Windows上开发WAMP时遇到过这种情况,并且临时文件夹没有正确的权限。正如我所说,可能有许多问题会导致您的会话行为不端

    • 当你做一个计数器和刷新 佩奇:它有号码吗
    • 每次使用您需要的会话的开始时间 调用了session_start()方法。 重要提示:之前不能有任何回声或指纹等 会话启动()。
    • 将变量转储($user)放在会话['user']=$user之前并在保存$user之前检查其内容。可能是您的消毒功能工作不正常。在第一个脚本的末尾也执行此操作,以查看
      $\u会话的内容
      ,确保变量正确保存

    如果您声称在该页面中也插入了session_start(),请做两件事:

    1) 更正你的html,这一行

    echo "<p><form id ='addemp' method=\"post\" action=\"addUser.php\">
              Name<input type=\"text\" name=\"emp\" />
          \"". $_SESSION['user'] . "\">
    
    2) var\u转储$\u会话['user'],查看它是否真的是空字符串。

    if (!isset($_SESSION['user']) ) {
        die("<p><h1>Please Login</h1></p>");
    } else {
        var_dump($_SESSION['user']);
    }
    
    if(!isset($\u会话['user'])){
    死亡(“请登录”

    ”; }否则{ 变量转储($_会话['user']); }
    如果您声称在该页面中也插入了session_start(),请做两件事:

    1) 更正你的html,这一行

    echo "<p><form id ='addemp' method=\"post\" action=\"addUser.php\">
              Name<input type=\"text\" name=\"emp\" />
          \"". $_SESSION['user'] . "\">
    
    2) var\u转储$\u会话['user'],查看它是否真的是空字符串。

    if (!isset($_SESSION['user']) ) {
        die("<p><h1>Please Login</h1></p>");
    } else {
        var_dump($_SESSION['user']);
    }
    
    if(!isset($\u会话['user'])){
    死亡(“请登录”

    ”; }否则{ 变量转储($_会话['user']); }
    这听起来像是OP在register\u globals上有问题

    在php.ini中设置
    register\u globals=Off
    ,然后重试该代码

    我遇到了完全相同的问题-我在会话中有一个用户变量,然后设置
    $user=array()
    并发现
    $user
    变量正在覆盖
    $\u会话['user']
    变量。禁用register\u globals修复了它


    或者,您可以将$user变量更改为$myUser之类的变量,但最好还是禁用register\u globals。

    这听起来好像OP对register\u globals有问题

    在php.ini中设置
    register\u globals=Off
    ,然后重试该代码

    我遇到了完全相同的问题-我在会话中有一个用户变量,然后设置
    $user=array()
    并发现
    $user
    变量正在覆盖
    $\u会话['user']
    变量。禁用register\u globals修复了它


    或者您可以将$user变量更改为$myUser之类的变量,但最好还是禁用register\u globals。

    基于@kpaulsen answer

    我在他身上也遇到了同样的情况,$variable覆盖了$_SESSION['variable'],所以我遵循了他的建议,但对我来说效果不好,然后我找到了另一种设置register\u globals=Off的方法

    在.htaccess上添加此行

    php_flag register_globals off
    

    根据@kpaulsen的回答

    我在他身上也遇到了同样的情况,$variable覆盖了$_SESSION['variable'],所以我遵循了他的建议,但对我来说效果不好,然后我找到了另一种设置register\u globals=Off的方法

    在.htaccess上添加此行

    php_flag register_globals off
    

    也许这是我不久前遇到的一个问题,使所有代码都完美无瑕,但忘记插入
    session_start()
    在连接脚本中,witch接收登录
    $\u POST['somevariable']
    以与数据库进行验证


    在恢复时,不要忘记在您的连接上启动会话。

    也许这是我不久前遇到的问题,使所有代码都完美无瑕,但忘记插入
    会话_start()
    在连接脚本中,witch接收登录
    $\u POST['somevariable']
    以与数据库进行验证

    关于re