Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
会话变量在php中不起作用_Php_Session_Session Variables - Fatal编程技术网

会话变量在php中不起作用

会话变量在php中不起作用,php,session,session-variables,Php,Session,Session Variables,下面是我的登录页面的代码,其中登录脚本检查用户的真实性,然后使用header函数重定向到收件箱页面 <?php session_start(); include_once('config.php'); $user=htmlentities(stripslashes($_POST['username'])); $password=htmlentities(stripslashes($_POST['password'])); // Some query processing on datab

下面是我的登录页面的代码,其中登录脚本检查用户的真实性,然后使用header函数重定向到收件箱页面

<?php
session_start();

include_once('config.php');
$user=htmlentities(stripslashes($_POST['username']));
$password=htmlentities(stripslashes($_POST['password']));
// Some query processing on database    

if(($id_user_fetched<=$id_max_fetched) && ($id_user_fetched!=0)){
$_SESSION['loggedIn'] = 'yes';
    header("Location:http://xyz/inbox.php?u=$id_user_fetched");
    //echo 'Login Successful';
    }else{
        echo 'Invalid Login';
        echo'<br /> <a href="index.html">Click here to try again</a>';
        }
}else{
    echo mysqli_error("Login Credentials Incorrect!");
    }
?>

inbox.php页面如下所示:

<?php
session_start(); 
echo 'SESSION ='.$_SESSION['loggedIn'];
if($_SESSION['loggedIn'] != 'yes'){
echo $message = 'you must log in to see this page.';
//header('location:login.php');
}
 //REST OF THE CODE

?>

现在,使用上述代码,inbox.php始终显示输出: 会话=您必须登录才能查看此页面。 这意味着没有设置会话变量,或者inbox.php无法检索会话变量。我哪里做错了


  • 确保
    session_start()。因此,一个安全的选择是将其放在页面的开头,在打开
    之后,就立即与托管服务进行对话,这是他们最后的一个问题。
    他说:“由于出现问题,您的帐户会话.save_路径没有设置。我现在为您设置了它。”


    在那之后,它工作得很好:)

    我有一段时间遇到了同样的问题,很难弄明白。我的问题是,我让网站运行了一段时间,会话正常,然后突然一切都坏了

    显然,您的会话_save_path(),对我来说是/var/lib/php5/,需要具有正确的权限(运行php的用户,例如www data,需要对目录进行写访问)。我不小心改变了它,完全破坏了会话


    运行
    sudo chmod-R 700/var/lib/php5/
    ,然后运行
    sudo chown-R www-data/var/lib/php5/
    ,以便php用户可以访问该文件夹。

    如果使用连接脚本,不要忘记使用
    会话启动()
    在连接时也出现了一些问题,但在注意到该问题之前出现了一些问题。

    我也遇到了类似的问题,并且与cookie域有关:

        ini_set('session.cookie_domain', '.domain.com');
    

    域设置错误,因此忽略了所有会话,因为用户cookie从未设置正确。希望这能帮助他人。

    如果会话路径工作不正常,您可以尝试
    session.save\u path(path/to/any文件夹)用作替代路径。如果可行,您可以向主机提供商询问默认路径问题。

    我今天遇到了这个问题。这个问题与$config['base_url']有关。我注意到htpp://www.domain.com 这就是问题所在。要修复此问题,请始终将基本url设置为

    会话无法工作的另一个重要原因是使用会话cookie设置,例如,由于简单错误或其他开发人员的原因,将会话cookie生存期设置为0或其他较低的值

    session_set_cookie_params(0)
    

    我也面临着同样的问题,我采取了以下步骤来解决这个问题

  • 我编辑了文件/etc/php.ini并搜索了session.save_path=“/var/lib/php/session”您必须提供会话信息
  • 2之后,刚刚更改了下面给出的权限*chown root.apache/var/lib/php/session*
    就这样。以上这些步骤解决了我的问题

    也许它能帮助别人,帮助我自己

    session_regenerate_id(false);
    
    我把它拿走了,一切都好


    登录后是确定的。。。哎哟

    应该是
    echo“登录凭据不正确!”
    回显mysqli_错误(“登录凭据不正确!”)
    您能否调试以确认
    if
    语句的条件计算结果为
    true
    ?(即,在true和false块中回显一条语句,以查看哪一条正在发射)1。您是否从同一个域调用这两个脚本?2.您是否使用任何类型的会话名称、会话id、会话集cookie?3.session_start返回值,您检查了吗?@cracketastic是的,我可以向您保证它们的计算结果为true。多次检查这是一个
    的两个
    else
    语句如果
    可能是服务器错误吗?我尝试了以下最基本的测试示例:session.php session2.php:我也有同样的问题。原因:没有可用磁盘空间!我也有同样的问题。我尝试使用google cloud print打印页面,但会话已关闭/清除。如何修复关于#4的问题:这个特性从PHP5.3.0开始就被弃用,从PHP5.4.0开始就被删除了#7是关键,登录www,然后在没有www的url上测试会使会话消失!777是会话保存文件夹的错误权限集。你需要更改文件夹的所有权,以允许web服务器写入该文件夹并阻止所有其他访问。胡说八道,伙计,祝你一切顺利,我哭了,因为我无法将会话转到下一页。