[英]PHP: How to make the user stay on the same page if the required fields in the form aren't filled?
[英]How to make a user stay on same page once they log in
我在如何使正在查看任何頁面的用戶可以登錄他們正在查看的頁面並停留在該頁面上的問題上遇到了一個問題。 這將如何實現?
下面是我當前正在使用的一行,但是,如果在任何頁面上並且用戶登錄,他們將被重定向到其個人資料。 如何在用戶登錄所在的位置設置此行,並使它停留在他們正在查看的同一頁面上? 所以換句話說,不會重定向到他們的個人資料...
PHP:
header("Location: members.php?id=" . $_SESSION['username']);
如果需要更多信息,請告訴我,我可以進行編輯;)
讓登錄表單提交當前頁面的地址。 然后,您可以在登錄成功后直接重定向回該地址,例如
<form>
<input type="hidden" name="curpage" value="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" />
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
if ($login_is_successful) {
header("Location: {$_POST['curpage']}");
}
您可以嘗試使用引薦來源網址,但是由於並非所有瀏覽器都發送該引薦來源網址,而且並非始終准確,因此最好使用替代的“當前位置”跟蹤方式,例如上面的隱藏表單字段。
當他們單擊登錄按鈕時,您可以閱讀該URL並將其保存到變量,然后將其重定向到該URL。
所以代替
header("Location: members.php?id=" . $_SESSION['username']);
您可以使用某物。 喜歡:
header("Location: $last_page);
試試這個,您可以使用此代碼創建一個php文件,並將其包含在您的代碼中,例如session.php
<?php
session_start();
error_reporting(0);
if(isset($_SESSION["usuario"]))
{
$usuario = $_SESSION["usuario"];
else{
header('Location: members.php?id=" . $_SESSION['username']');
}
?>
index.php
<?php
include ('session.php');
?>
避免在每個頁面中使用相同的代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.