0

セッションが保存されていないようです。ユーザーIDをセッションとして保存するログインページがあります。しかし、ページを離れて別のページをクリックすると、セッションが保存されません。

これが私のコードです。次のようなindex .php というメイン ページがあります。

<?php
if(!isset($_SESSION)){
       session_start();
}
?>

<!DOCTYPE html> <HTML> <HEAD> </HEAD> <BODY>

<?php
$page_content = 'startpage.php';

if (isset($_GET['link']) && !empty($_GET['link']) ) {
    $page_content = $_GET['link'];
}

include "$page_content";
include 'menu.php'; 
include 'footer.php';  
?>

ログインするには、このadmin.phpというページを使用します。このページには、正常に機能するログイン コードがあります。ユーザーが正しいユーザー名とパスワードを書き込んだ場合、次のことが起こります。

$_SESSION['user_id'] = $user_id;            
print_r($_SESSION);

上記のコードは、現在のセッション変数を示しています。しかし、別のページを 1 回クリックするとすぐに、変数は空のままになります。

index.php の下部には、含まれているfooter.phpページがあり、次のようになります。

<?php
if(!isset($_SESSION['user_id']) ){        
    echo "The sessions are not initiated. ";        
} 

if (empty ($_SESSION['user_id']) ) {
    echo "The sessions are empty. ";
}

echo "<a href='index.php?link=admin.php'>Administration</a>";
?>

このフッターには、セッションをチェックするために 2 つの if の質問を入れました。ログインに成功して別のページをクリックした後、セッションが空で開始されていないことが質問で検出された場合。

セッションを機能させるにはどうすればよいですか?

おそらく、MySql を使用するレント データベースを使用していることを付け加えておく必要があります。

4

1 に答える 1

1

使用する前に$_SESSION、常に次のように開始する必要があります。

session_start()

また、session_start()ページに何かを出力する前に常に呼び出す必要があります。そうしないと、正しく機能しません

于 2012-06-17T14:42:19.637 に答える