[英]form resubmission in php, how to redirect to specific pages
我在php中重新提交表單時遇到小問題,每當將表單填寫到我的網站上並提交后,它們就會被重定向回去。
<?php
if (isset($_POST['submit'])){
//process form input and validate data here
if ( strlen(isset($_POST['name'])) > 0 ){
//return status to user here
//and redirect page here.
?>
<script type='text/javascript'>
history.go(-2);
</script>
<?php
}
}
?>
這是我遇到問題的地方,我正在使用JavaScript重定向到上一頁。 我需要瀏覽器重定向到上一頁,但是如果它是login.php,那么它應該在login.php之前重定向到上一頁,我該如何在php中做到這一點,以獲取上一頁並將瀏覽器重定向到上一頁,但是如果上一頁是login.php,則應將其重定向到前一頁。
這不是確切的解決方案,但是要重定向用戶,請使用以下命令:
header('Location: http://www.google.com/');
要使用上面的代碼,必須先顯示該代碼,然后才能在該頁面上顯示其他任何信息。
要將用戶重定向到他們來自的頁面,請使用以下命令:
header('Location: '+$_SERVER['HTTP_REFERER']);
使用$_SERVER['HTTP_REFERER']
時要小心,因為該URL是由用戶代理設置的,並不總是存在的。
如果確實需要重定向到頁面,然后再將其重定向到登錄頁面,則需要將該信息存儲到$ _SESSION []變量中,或者將其設置為url中的GET var。
例:
login.php?redirect=http://www.example.com/settings.php
或在重定向之前$_SESSION['redirect'] = "http://www.example.com/settings.php";
login.php?redirect=http://www.example.com/settings.php
或login.php(如果使用了SESSION變量)。 header('Location: '+$_GET['redirect']);
登錄成功的重定向header('Location: '+$_GET['redirect']);
或header('Location: '+$_SESSION['redirect']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.