多くの Web サイトでは、ユーザーは最初にログインするためにページにアクセスしますが、ログインが完了するのを待った後、必ず最後にアクセスしたページに戻りたがります。ログイン後に元のページに戻る方法を説明します。アクセスしたページのインスタンス
最も簡単な方法は、php $_SERVER['HTTP_REFERER'] を直接使用することです
A.phpページにログインしたい場合
次に、B.php ページにジャンプします。必要なのは、次のコードを b.php に追加するだけです
コードは次のとおりです |
コードをコピー |
$url = $_SERVER['HTTP_REFERER'];
header("location:$url");
|
ただし、上記の方法にはパラメータなどの欠点が多く、IEブラウザではjsの場所を飛び越えるとこの値を取得できません。
次は総合的なものを作ります。
まず、ログインしているかどうかを判断するメソッドを作成します (ログインしていない場合)
コードは次のとおりです |
コードをコピー |
保護された関数 checkLogin() {
if (ログインしていない){
$thisurl = "http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];//現在の URL
$thisurl = urlencode($thisurl);//ここで、取得した URL をトランスコードする必要があることに注意してください。そうしないと、後で URL を渡すことが困難になります
redirect("http://".$_SERVER["HTTP_HOST"]."/cityosweb/default.php/Index/login?url=".$thisurl);
}
}
|
次に、質問するためにログインが必要なページでこのメソッドを呼び出します:
コードは次のとおりです
コードをコピー |
|
$this->checkLogin();
|
ログインしていない場合は、ログインページにジャンプします。そして、前のページの URL を持ってきてください:
次に、ログインを送信するための URL を取得します:
コードは次のとおりです
コードをコピー |
|
パブリック関数login() {
$url = $_GET['url'];
$this->assign('url',$url);
$this->assign('title','Login');
$this->display('user/reg_new.html');
}
テンプレートからURLを取得し、PHPバックエンドに送信します。ログイン後、このURLにジャンプして完了です
|
http://www.bkjia.com/PHPjc/631554.htmlwww.bkjia.com
true
http://www.bkjia.com/PHPjc/631554.html技術記事多くの Web サイトでは、ユーザーは最初にログインするためにページにアクセスしますが、その時点でログインが成功するのを待った後、必ず最後にアクセスしたページに戻りたいと考えます。私は...