例えば、
ステップ1:
ログインせずにページを閲覧していますが、ログイン前の最後のページはbeforeLogin.phpです。
ステップ2:
今私の問題は、ログインしたときにindex.phpページにリダイレクトしています。代わりに、私が閲覧した最後のページにリダイレクトされます。
上記の例からですが、beforeLogin.phpにリダイレクトする必要があります
これをどのように行うことができますか。
どんな助けにも感謝します。
前もって感謝します
ユーザーが閲覧した最後のページに逆参照できるように、アクセスしたWebページを追跡する方法が必要になります。
複数ページにわたるユーザーのセッションを追跡することを考えるとき、私は他のすべてのPHPプログラマーと同様に、 セッション 。
可能な方法は、アクセスしたリンクをセッション変数に格納し、ユーザーがlogin.php
ページに到達したとき(ログインするページです。 )) header
セッション変数によって与えられた$url
へのリダイレクトを提供します。
このコードをWebサイトのすべてのページに貼り付けることができます。
<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "about.php"
これは $_SERVER
変数を利用して、$_SERVER['REQUEST_URI']
を使用して現在アクセスしているページのURIを返します
そして、ログインページがさらに実証するのを助けるために:
<?php
session_start(); // needed for sessions.
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "index.php"; // default page for
header("Location: http://example.com/$url"); // perform correct redirect.
これまでで最も簡単な解決策は、単に次のようにすることです。
<hidden name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />
ログインしたら、そのアドレスにリダイレクトします。
ただし、これはすべてのページにログインボックスがある場合にのみ有効です。私は個人的にやっていて、それはかなりうまくいくと思います。
ログインフォームアクションを現在のページに導くことができます。それは単純明快です
たとえば、ページは次のようになります
<?
include "auth.php"; // you need it anyway, as you want to control user's auth
//the rest of the page;
?>
<form method="POST">
login form
</form>
<?
//the rest of the page;
if (!empty($_SESSION['user_id'])) echo "Welcome registered user!";
?>
そしてauth.phpはログインチェックを処理し、現在のページにリダイレクトすることは大したことではありません
<?
if (isset($_REQUEST[session_name()])) session_start();
if (isset($_POST['auth_name'])) {
//password checking
if (pass ok) {
session_start();
$_SESSION['user_id'] = $row['id'];
}
header("Location: http://".$_SERVER['HTTP_Host'].$_SERVER['REQUEST_URI']);
exit;
}
このような何か追加のセッションは必要ありません。
<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "about.php"
これは $_SERVER
変数を利用して、$_SERVER['REQUEST_URI']
を使用して現在アクセスしているページのURIを返します
そして、ログインページがさらに実証するのを助けるために:
<?php
session_start(); // needed for sessions.
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "index.php"; // default page for
header("Location: http://example.com$url"); // perform correct redirect.