0

私はこれに長い間苦労しており、それに関連する何十もの投稿を読みましたが、これを解決するのに役立つものは何もありません.

チェックを設定しているので、サイトにログインしていない場合は、ログインが$_GET成功した後にリダイレクトする必要がある情報を含む変数を含むログイン ページに送信されます。

checklogin.phpサインイン ページで、ユーザー名とパスワードがデータベースと一致する場合にユーザーをログインさせるために、HTML フォームを " " ファイルに送信します (今回$_GETはリダイレクトの元の変数を変数として渡し、'$_POSTパン粉の接続)。ログイン情報が一致する場合は、セッションを開始し、ユーザーに関する情報をセッション変数に割り当てます。

ページの下部で、ログインに成功した後、以前の場所に戻るために次のようにします。

$go = "http://something/page.php?id=".$_POST['breadcrumb'];
header($go);

これは機能します...最初は(セッション変数が正常に渡されますpage.php)。しかし、ユーザーが次のページをクリックして移動すると、セッションが終了し、ログインしていません。

とてもイライラします!session_start()、すべてのページの上部にあります。また、ユーザーが動的ヘッダー リダイレクトなしで ( $_POST['breadcrumb'].

さまざまな解決策を試しましたが、この問題を解決するものは何もありません。

4

2 に答える 2

0

すべてのコードをチェックして、どこかにセッションが破棄されていないことを確認しましたか? $_SERVER['REQUEST_URI']; を使用することもできます。リダイレクト URL を取得するには、それをヘッダー コードに挿入するだけです。

header("location: <breadcrumb>);
于 2013-02-23T21:08:49.327 に答える
0

問題は、サイト全体で URL リダイレクトの一貫性を保っていなかったことです。時々私は持っていました

www.website.com/home.php

そして時々私は持っていました

/home.php

$SESSIONを台無しにしました。

解決策は、URL の先頭に「www.website.com」を含めずに (またはすべて一貫して) ヘッダー リダイレクトをすべて一貫して維持することでした。

于 2013-03-03T18:41:36.217 に答える