Редирект на предыдущую страницу после авторизации? РНР

Как перенаправить страницу php на другую страницу php? [дубликат]

В то время как все другие ответы работают, все они имеют одну большую проблему: это до браузера, чтобы решить, что делать, если они сталкиваются с заголовком местоположения. Обычно браузер перестает обрабатывать запрос и перенаправляет его на URI, указанный в заголовке Location. Но злоумышленник может просто проигнорировать заголовок местоположения и продолжить запрос. Кроме того, могут быть другие вещи, которые заставляют интерпретатор php продолжать оценивать скрипт за заголовком местоположения, что не является тем, что ты хотел.

изображение:

<?php
if (!logged_id()) {
    header("Location:login.php");
}

delete_everything();
?>

вы хотите и ожидаете, что не зарегистрированные пользователи будут перенаправлены на страницу входа, так что только зарегистрированные пользователи могут delete_everything. Но если скрипт выполняется мимо заголовка местоположения, все равно все удаляется. Таким образом, важно всегда ставить выход после заголовка местоположения, например:

<?php
if (!logged_id()) {
    header("Location:login.php");
    exit; // <- don't forget this!
}

delete_everything();
?>

Итак, чтобы ответить на ваш вопрос: перенаправить со страницы php на другую страницу (не просто php, вы можете перенаправить на любую страницу таким образом), используйте это:

<?php 

header("Location:http://www.example.com/some_page.php"); 
exit; // <- don't forget this!

?>

небольшое примечание: стандарт HTTP говорит, что вы должны предоставить абсолютные URL-адреса в заголовке местоположения (http://… как в моем примере выше), даже если вы просто хотите перенаправить на другой файл в том же домене. Но на практике относительные url (Location: some_page.php) работает во всех браузерах, хотя и не является стандартным.

Как сделать редирект на php?

Послать каждый может. А вот правильно перенаправить – это целое искусство. Но еще труднее дается перенаправление пользователей на нужный путь в интернете. Для этого лучше всего подходит редирект на php.

Похожее:  Билайн - Официальный сайт оператора: тарифы, услуги, SIM-карты - Москва

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

В каких случаях может потребоваться редирект:

  • Когда происходит замена движка сайта – в результате этого меняется архитектура всего ресурса. После чего возникает проблема, как сделать редирект;
  • При перекройке структуры ресурса – происходит добавление, удаление или перенос целых разделов или одного материала. Пока происходит этот процесс, временно можно организовать перенаправление пользователя на нужный раздел;
  • Если сайт недавно сменил свое доменное имя – после смены имени домена старое еще некоторое время будет фигурировать в поисковой выдаче. В этом случае редирект пользователя на новый домен будет реализован поисковой системой автоматически;
  • В процессе авторизации – как правило, на большом сайте есть две группы пользователей: обычные посетители и администраторы ресурса. В таком случае имеет смысл реализовать редирект каждого пользователя согласно его правам и роли. После авторизации администратор или модераторы сайта попадают в административную часть ресурса, а посетители – на пользовательскую часть ресурса.

В отличие от других языков php обладает некоторыми преимуществами в реализации редиректа:

Для редиректа в php используется функция header(). Она применяется для отправки заголовка http. Ее синтаксис:

Принимаемые функцией аргументы:

<ul>
<li><b>string $string</b> – строка заголовка;</li>
</ul>

При использовании функции header() для редиректа внешних ссылок большое значение имеет место расположения ее вызова. В коде он должен находиться выше всех тегов html:

Для демонстрации действия функции на локальном сервере нужно создать два файла. Один из них назовем redirect.php, а другой redirect2.php. Внутри первого разместим вызов функции в следующем формате:

Похожее:  Для чего нужен «личный кабинет»? | Журнал

В другом файле помещаем строку:

Еще несколько практических примеров использования редиректа на php:

Также перезапись возможна в два этапа. Первая строка производит перезапись кода состояния, а вторая перенаправляет на новый адрес:

Код файла redirect3.php:

Ну, вот мы и научились основам редиректа на php. Теперь можно смело браться за перенаправление пользователей в нужное русло. Главное не ошибиться в направлении, а то приведете всех своих юзеров на чужой сайт…

Редирект на предыдущую страницу после авторизации? рнр

Я искал решение, но, похоже, я не могу получить его правильно, независимо от того, что я пытаюсь.

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

логин.в PHP показывает форму входа:

<form method="post" action="login-check.php">
... //input for username and password
</form>

на вход-регистрация.в PHP проверяет, введены ли имя пользователя и пропуск, существует ли пользователь или он уже вошел в систему, и параметр p отправляется для входа в систему.на PHP:

<?php
session_start();
if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) {
   header("Location:login.php?p=1");
   exit();
}
elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) {
   header("Location:login.php?p=2");
   exit();
}
elseif(isset($_SESSION['id_login'])) {
   header("Location:login.php?p=3");
   exit();
}
?>

p отправляется обратно в логин.в PHP и отображает соответствующее сообщение:

<?php
if(isset($_GET['p'])) {
  $p = $_GET["p"];

  if($p=="1")
    echo "<p class="red">You didn't fill the form.</p><br></br>";
  if($p=="2")
    echo "<p class="red">User exists.</p><br></br>";
  if($p=="3")
    header("Location: index.php");
}
?>

но, вместо того, чтобы проиндексировать.php после успешного входа в систему он должен перейти на страницу, на которой ранее был пользователь. Я пробовал по-разному, но эфир не работает вообще или возвращается к логину.РНР. Этого не должно быть. супер безопасно, потому что я делаю это для школьного проекта.
Кроме того, я считаю себя довольно новичком, поэтому, пожалуйста, имейте терпение 😀

Похожее:  Раскрытие информации | г. Шадринск МП «ВОДОКАНАЛ»
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector