как перейти на ту же страницу после входа в PHP

Например,

ШАГ 1:

Я просматриваю страницу без входа в систему, а моя последняя страница перед входом в нее – доLogin.php

ШАГ 2:

Теперь моя проблема, когда я вошел в систему, я перенаправляюсь на страницу index.php. Вместо этого я должен быть перенаправлен на последнюю страницу, что я просматривал.

То, что из приведенного выше примера, должно быть перенаправлено на beforeLogin.php

Как это можно сделать.

Любая помощь будет заметна.

заранее спасибо

Вам понадобится способ отслеживания посещенных веб-страниц, чтобы вы могли ссылаться на последнюю страницу, к которой пользователь просматривал.

Когда я думаю о отслеживании сеанса пользователя на нескольких страницах, я, как и любой другой программист PHP, думаю об использовании сеансов .

Возможным способом может быть сохранение ссылки, посещенной в переменную сеанса, а затем, когда пользователь достигает страницы login.php ( страница для входа в систему ), вы можете перенаправить header на $url заданный переменной сеанса.

ПРИМЕЧАНИЕ. Ниже фрагменты кода не были протестированы или скомпилированы .

Вы можете вставить этот код на все свои страницы на своем веб-сайте:

 <?php session_start(); // starts the session $_SESSION['url'] = $_SERVER['REQUEST_URI']; // ie "about.php" 

Это использует переменные $_SERVER чтобы вернуть URI текущей посещаемой страницы, используя $_SERVER['REQUEST_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']; // ie "about.php" 

Это использует переменные $_SERVER чтобы вернуть URI текущей посещаемой страницы, используя $_SERVER['REQUEST_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.