ユーザーがユーザー名とパスワードを入力するログインページがあります。成功した場合は、セッションを開始する index.php に彼をリダイレクトします。
session_start();
index.php から別のページ ("p1.php") に移動でき、"p1.php" の上に次のチェックがあります。
<?php
if(!isset($_SESSION))
{
exit;
}
?>
これはローカル サーバーでは機能しますが、これをリモート サーバーに展開すると!isset($_SESSION)
常に true が返されます。
ここで何が起こっているのでしょうか?
編集:ホスティングプロバイダー側で、これをphp.iniに追加するリクエストを見つけました:
session_save_path("your home directory path"/phpsessions);
そして、パスに phpsessions フォルダーを作成します。
私はしましたが、それは役に立ちませんでした。
私もこれをやろうとしました:
index.php で:
session_start();
if(isset($_REQUEST['lecturer_id']))
{
echo "lecturer_id set";
$_SESSION['lecturer_id'] = $_REQUEST['lecturer_id']; // store session data
}
および p1.php では: session_start(); if(!isset($_SESSION['lecturer_id'])) { exit; }
そして、ページは常に終了します。つまり、セッション変数は定義されていません