カートの商品ページを持っています。商品をカートに入れるボタンをクリックすると、ログインページにリダイレクトされます。ログイン後に同じページにリダイレクトする方法
ログインに成功した後、ユーザーを同じ商品ページに戻す必要があります。
カートの商品ページを持っています。商品をカートに入れるボタンをクリックすると、ログインページにリダイレクトされます。ログイン後に同じページにリダイレクトする方法
ログインに成功した後、ユーザーを同じ商品ページに戻す必要があります。
単純な解決策は、ログインページにキックする前に、セッション変数に "return" URLを格納することです。ログインページは、セッション変数の有無をチェックしてから、ヘッダーの位置を変更してユーザーを問題のURLに戻す前にセッション変数の設定を解除します。
ログインページたとえば、あなたが使用したい:
header('Location: ' . $_SERVER['HTTP_REFERER']);
あなたは、ブラウザのリファラを使用して、どこから来たのページに戻って、ユーザを送信することができますログインページへのリダイレクトでGETパラメータとして返すURL:
/login.php?return_url=%2Fcart%2Fproducts.php
login.phpでは、return_urlパラメータ(/cart/products.php)をデコードし、ログインに成功したときにそこにユーザを送ります。
信頼できません。ブラウザがこの値を提供しているかどうか、または正しいことを保証するものではありません。 –
つまり、HTTP_REFERERがローカルURLであり、リモートURLではない場合) –
送る:
// Successfully logged in...
$destURL = $_SESSION['kickurl'] ? $_SESSION['kickurl'] : '/index.php';
unset($_SESSION['kickurl']);
header('Location: ' . $destURL);
exit();
ログインページにリダイレクトするときは、傍受したURL(しばしばリターンURLと呼ばれる)をセッション変数(または必要に応じて他のストレージ)に入れます。ログインが完了すると、このURLにリダイレクトできます。
ログオン処理中に、ウェブサイトクエリーストリングに返信URLが表示されることがあります。たとえば、Googleアカウントにログインしていない状態でdocs.google.comにアクセスすると、クエリ文字列に「続行」という値が表示されます。
https://www.google.com/accounts ?のWritely/ServiceLoginサービス= &パッシブ= 1209600 &は継続=のhttp://docs.google.com/ &フォロー=のhttp://docs.google.com/ & ltmpl =ホームページ
あなたはのURLを追跡する必要があります各ページ: as:<?php $_SESSION['url'] = $_SERVER['REQUEST_URI']; ?>
<?php session_start();
if(isset($_SESSION['url'])) $url = $_SESSION['url']; // url for last page visited. else $url = "index.php"; // page you want to redirect by default header("Location: http://abc.com/$url"); ?.
は
<input type="hidden" name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />
をキープして、フォームのポストでredirurl
値を取得します。
if(isset($_REQUEST['redirurl']))
$url = $_REQUEST['redirurl']; // holds url for last page visited.
else
$url = "myprofile.php"; // default page
header("Location:$url");
redirurl
は、以前のページングを格納する。それらのページURLをコピーしないように、登録ページとログインページのセッションを維持します。
私は本当にあなたの答えが好きです。 – Navruk
@Navrukありがとう - うまくいくことを願っています。 :-) –