Intereting Posts
Невозможно получить значение текстового поля через почтовый метод Разница между row_array и result_array Скрыть div с определенным классом во время загрузки страницы, а затем показать снова после загрузки хотите отправлять письма с php, используя yahoo smtp Сервер Google GCM возвращает Unauthorized Error 401 В чем разница между объектом Thread и объектом Worker (php pthreads) Разрешение лишено записи в один каталог, но не другой – оба имеют тот же владелец / группу / 755 Как анализировать XML-файл в PHP Поиск вложенных массивов Mongodb Как безопасный вход в систему для входа в Dreamweaver PHP? Обновите или создайте постоянный токен доступа к Facebook, чтобы опубликовать страницу приложения ssh2_exec rand возвращает идентификатор процесса? jQuery / PHP mail отправляет простой способ? Проверьте, является ли строка временной отметкой unix Как получить доступ к заголовкам запроса, которые не отображаются в $ _SERVER?

путают эти куки в системе перенаправления

Я работаю на PHP. Я хочу перенаправить страницу после входа на последнюю страницу, которую хочу посетить, но я все еще нахожусь здесь через 5 часов, и я все еще не делаю этого. Это схема, у меня 3 файла php.

newest.php (before login), signin.php (before login), thread.php (after login). 

Я использую файлы cookie для этого перенаправления. Сначала я пошел в newest.php, затем я нажал кнопку (перейдите в thread.php). Тогда thread.php увидел, что у вас еще нет loggin, а затем перенаправлен на signin.php. После того, как я заполнил форму синтаксиса, я нажал кнопку отправки (signin.php), затем я укладываю в signin.php (никуда некуда) даже после того, как я вхожу в систему, нужно перейти в thread.php автоматически.

это мой код в newest.php и thread.php (не в signin.php):

 $coopage='coopage'; $current_page='http://'.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]; setcookie($coopage, $current_page,time()+86400,'/'); 

отправить кнопку в newest.php (она идет в thread.php):

 echo "<center><button onclick=\"window.location='/thread/form'\">add new thread</button></center>"; 

в signin.php (после того, как я нажал кнопку отправки или в области отправки, потому что форма и после отправки я сделал на той же странице) (в нижней части страницы):

 if(isset($_COOKIE[$coopage])){ $url=$_COOKIE[$coopage]; unset($_COOKIE[$coopage]); header('location:'.$url); } с if(isset($_COOKIE[$coopage])){ $url=$_COOKIE[$coopage]; unset($_COOKIE[$coopage]); header('location:'.$url); } 

note: в signin.php у меня также есть еще одна настройка cookie до этого cookie, является ли причина этого? или имеет значение, если у меня есть 2 файла cookie на одной странице? Другая настройка cookie выглядит так (вверху страницы)

 $cooval2='juna'; setcookie($coousername, $cooval2, time() + (3600 * 24 * 365), "/"); // 1 year 

Я бы вообще не использовал файлы cookie.

Способ 1

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

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

 <?php session_start(); $_SESSION['url'] = $_SERVER['REQUEST_URI']; 

На странице входа вы можете:

 <?php session_start(); // needed for sessions. if(isset($_SESSION['url'])) $url = $_SESSION['url']; // holds url for last page visited. else $url = "student_account.php"; header("Location: http://example.com/$url"); 

Способ 2

Более простым решением является просто:

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

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

Однако это хорошо, только если на каждой странице есть окно входа в систему.

$_SERVER['REQUEST_URI'] просто удерживает текущую страницу. Вы хотите использовать $_SERVER['HTTP_REFERER'] . Поэтому сохраните HTTP_REFERER в скрытом элементе в вашей форме, но также обратите внимание на то, что в PHP, который обрабатывает форму, вам понадобится какая-то логика, которая перенаправляется обратно на страницу входа в систему, если логин завершается с ошибкой, а также чтобы проверить, действительно ли ваш референт веб-сайт, если это не так, а затем перенаправить на главную страницу.

Способ 3

Другой распространенный способ сделать это – передать текущую страницу пользователя в форму входа через переменную $ _GET.

измените свой сценарий так, чтобы он также указывал на странице входа в систему, где вы находитесь:

Примечание: $ _SERVER ['REQUEST_URI'] – это ваша текущая страница

 header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI'])); 

Теперь проверьте, заполнено ли оно, а затем отправьте пользователю следующее: login.php

 echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />'; // Will show something like this: // <input type="hidden" name="location" value="previousPage.php" /> 

Логин-check.php

 session_start(); // our url is now stored as $_POST['location'] (posted from login.php). If it's blank, let's ignore it. Otherwise, let's do something with it. $redirect = NULL; if($_POST['location'] != '') { $redirect = $_POST['location']; } if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) { $url = 'login.php?p=1'; // if we have a redirect URL, pass it back to login.php so we don't forget it if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location: " . $url); exit(); } elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) { $url = 'login.php?p=2'; if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location:" . $url); exit(); } elseif(isset($_SESSION['id_login'])) { // if login is successful and there is a redirect address, send the user directly there if($redirect)) { header("Location:". $redirect); } else { header("Location:login.php?p=3"); } exit(); } 

В вашем новом cookie => локальном хранилище убедитесь, что этот код на каждой странице вам принадлежит для регистрации URL-адреса, кроме страницы входа в систему, иначе он перенаправит вас обратно на страницу входа.

 var currentPage = window.location.href; localStorage.lastPageVisited = currentPage 

Это код для кнопки «Отправить», и он перенаправляет пользователя на последнюю страницу, которую он посетил.

 $(document).ready(function() { $('button').click(function() { window.location.href = localStorage.lastPageVisited; }); });