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');

    }


}

これがクッキー機能です

パブリック関数 setBrowserCookie(){

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

$ip = $_SERVER['REMOTE_ADDR'];

$ub = $this->getBrowser(); 

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

}

}

これは、セッション変数が保存されるパスに影響を与える可能性がありますか? もしそうなら、どうすれば修正できますか?

前もって感謝します...

4

2 に答える 2

0

変数を保存するためのパスは Web サーバーではなく、オペレーティング システムによって処理されるため、書き換えルールは変数が保存されるパスに影響を与えることはできません。プログラムコードに関する情報があまり提供されていないため、問題の原因を特定するのは困難です。私の推測では、あるリクエストから次のリクエストにセッション ID が渡される方法に問題があると思います (Cookie と URL ベースのセッション ID が混在している場合など、セッション ID が失われる方法は実際にはたくさんあります)。 、またはフォーム内の POST 変数と GET 変数の混合、SID パラメーターとの混合 - これらはブラウザー固有のものでさえあります)。

セッション ID を渡す方法についてさらに情報を投稿してください。問題が見つかる可能性があります。

于 2012-04-27T16:33:59.567 に答える
-1

Webサイトのディスクスペースを確認してください。私が彼のウェブサイトを構築して以来、私のクライアントは写真をアップロードしていて、ホスティングスペースがなくなった瞬間、彼はもうログインできませんでした。そのため、セッションを保存できなかったことが判明しました。

于 2012-10-14T11:19:53.623 に答える