Подтвердить что ты не робот

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

Например,

ШАГ 1:

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

ШАГ 2:

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

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

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

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

заблаговременно

4b9b3361

Ответ 1

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

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

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

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

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

<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "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.

Ответ 2

Самое простое решение - просто:

<hidden name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />

Затем перенаправляйтесь к этому адресу после входа в систему.

Однако это полезно только в том случае, если на каждой странице есть окно входа в систему. Я лично делаю, и я нахожу, что это работает очень хорошо.

Ответ 3

вы можете сделать действие формы входа в систему на текущей странице. что простой и простой

Скажем, ваша страница выглядит как

<?
include "auth.php"; // you need it anyway, as you want to control user 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;
}

что-то вроде этого нет необходимости в дополнительном сеансе.

Ответ 4

<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "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.