1

簡単な認証があります。login.php ページにログインすると、home.php ページにリダイレクトされます。

これは login.php のコードです:

if(pg_num_rows($rs) == 0){ //I search in db for a row with username and password
        $errMess = "error";
        pg_close($conn); 
    }else{
        $row = pg_fetch_row($rs);
        session_start(); 
        $_SESSION['username']=$_POST["nick"];
        $_SESSION['admin'] = $row[0];
        pg_close($conn); 
        header("Location: /home.php");
    }

今家では、この方法でヘッダーを作成しています:

<?php require_once("scripts/functions.php"); 
      require_once("scripts/config.php");
      session_start(); 
?>
 <div id="siteHeader" class="headersLeft"><?php echo WELCOME;?></div>
        <div id="userContainer" class="headersRight"> 

            Logged as: <?php echo getDisplayName(); ?>
            <?php if(isset($_SESSION['username'])) {?>
                <button class="button" onclick="location.href='/logout.php';">logout</button>
            <?php }else{ ?>
                <button class="button" onclick="location.href='/login.php';">login</button>
            <?php }
            ?>
        </div>

機能しません: データが正しい場合でも、「ゲスト」が表示されます。セッション変数はヘッダーのパッセージで失われます..どうしてですか?

4

4 に答える 4

0

これは私のために働く:

session_save_path ( "" ) ;  
session_start();
于 2014-09-14T15:52:35.343 に答える
0

session_start(); を書きます。すべての上に(直後に

<?php 
session_start(); 
require_once("scripts/functions.php"); 
require_once("scripts/config.php");
?>

または、それでもうまくいかない場合は、次のようにコードを記述します。

<?php 
ob_start();
session_start(); 
require_once("scripts/functions.php"); 
require_once("scripts/config.php");
?>

また、これらの 2 行を login.php ページの上部に置くことを忘れないでください。それが役に立てば幸い :)

于 2013-11-02T19:50:54.430 に答える