0

我正在使用一个$_SESSION['loggedIn']= true似乎没有被保存的。我session_start()在保存之前使用它。我可以直接回显变量并设置,但是,一旦我更改页面,变量就消失了。session_start()我在另一页阅读之前也使用过...

现在,我有一个这样的 .htaccess 文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$  index.php?v=$1 [QSA,L]

好的..所以这是 index.php

@session_start();

define("x_app", "1");

define('X_BASE', dirname(__FILE__));

require_once X_BASE.'/config/config.php';

include "classes/browser.php";

$browser = new Browser();

$browser->setBrowserCookie();

$_SESSION['browser'] = $browser;

$_SESSION['language'] = "english";

//Getting View

$v = explode('/', $_GET['v']);

$view = $v[0];



After this I load the view..
In this case Login, which is loaded by a require function




defined('x_app') or die;

require('helper.php');

$email = $_POST['email'];

$password = $_POST['password'];



if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == true){

    //Redirect to my portfolio landing page

}

else{ //Not Logged In


    //Process Form
    if(isset($_POST['email']) && isset($_POST['password'])){

        $xLogin = new X_Login();

        if($xLogin->login($email, $password) == true){

            echo 'User is logged In';

            //@session_start() ---> should I put this here again? Don't think so...
            // ! This is the variable that I can't save 
            $_SESSION['loggedIn'] = true;

                    // ! I have an echo here but if change the page, it gets lost
            echo 'session->'.$_SESSION['loggedIn'];

        }else{

            echo 'User is not logged in';

        }

    }
    //Error in Form

    elseif(!isset($_POST['email']) || !isset($_POST['password'])){

        $error = "Login Error";

        include('views/default.php');

    }


}

这是cookie功能

公共函数 setBrowserCookie(){

if(empty($_COOKIE['verifyUser'])){  

$ip = $_SERVER['REMOTE_ADDR'];

$ub = $this->getBrowser(); 

@setcookie("verifyUser", $ip.$ub, time()+31536000);

}

}

这会影响保存会话变量的路径吗?如果是这样,我该如何解决?

提前致谢...

4

2 回答 2

0

您的重写规则不会影响保存变量的路径,因为保存这些变量的路径不是由 Web 服务器处理,而是由操作系统处理。很难说问题的原因是什么,因为您没有提供有关程序代码的太多信息。我的猜测是,会话 ID 如何从一个请求传递到下一个请求存在问题(实际上会话 ID 丢失的方式有很多种,包括混合使用 cookie 和基于 url 的会话 ID 的情况,或在表单中混合 POST 和 GET 变量,并与 SID 参数混合——这些甚至可以是特定于浏览器的)。

发布一些有关您传递会话 ID 方式的更多信息,以便我们可以在那里找到问题。

于 2012-04-27T16:33:59.567 回答
-1

检查网站的磁盘空间。自从我为我的客户建立他的网站以来,我的客户就一直在上传照片,而当托管空间用完时,他就无法再登录了。原来会话因此无法存储。

于 2012-10-14T11:19:53.623 回答