固定ページに$_SESSION['url'] = "http://example.com" . $_SERVER['REQUEST_URI'];
を設定しています。私の目標は、ログインに成功するとこのページにリダイレクトすることです。セッション変数をログインページに渡すとセッション変数が返されない
マイログインページ:
if($user->access_level=='Admin'){
if(isset($_SESSION['url'])) {
$myurl = $_SESSION['url'];
}
else{
$myurl = $home_url . "admin/index.php?action=login_success";
}
header("Location: {$myurl}");
}
else{
header("Location: {$home_url}index.php?action=login_success");
}
$_SESSION['url']
は、ログインページには存在しません - var_dump($_SESSION);
で検証私はしかし、ログインページとディレクトリで、次の.htaccessファイルを使用しています静的ページはログインディレクトリの2レベル上にあります。
.htaccessファイル:あなたは( にsession_startを持っていないよう
#Fix Rewrite
Options -Multiviews
# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /www/projects/php-login-system/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# used for php pages such as "yoursite.com/login.php" will become "yoursite.com/login/"
RewriteRule ^([a-z_]+)\/?$ $1.php [NC]
ページ上部に「session_start()」がありますか? –
セッションでこれを行わないでください。ユーザーが異なるタブでサイトの複数の異なるページを開くと、それらのページのほとんどではそれ以上は機能しなくなる可能性があります。情報を隠しフォームフィールドに入れます。つまり、ユーザーが送信するフォームに関係なく、リダイレクト先の_correct_アドレスがあります。または、フォームを現在のページのURLに直接送信するだけで簡単です。各ページの上部にログインデータがPOST経由で送信されたかどうかをチェックするスクリプトを含めると、処理が簡単で、そうであれば必要なチェックをすぐに実行できます。 – CBroe
session_start()はセッションの前に別のインクルードファイルにあります。 - 私はあなたの推薦に同意していませんが、私もそれを見ていますが、セッション変数が別のページに渡されない理由を解決する必要がありますか? – BarclayVision