セッションが保存されていないようです。ユーザー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 を使用するレント データベースを使用していることを付け加えておく必要があります。