亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中更新密碼后在登錄頁面中顯示消息

在 PHP 中更新密碼后在登錄頁面中顯示消息

PHP
神不在的星期二 2022-01-24 10:28:44
我有一個運行良好的密碼更新系統。但是,問題是我無法顯示任何成功消息,例如“密碼已更改!”。因為,在密碼更新后,我的系統將用戶重定向到注銷頁面,該頁面又重定向到登錄頁面。我只想在密碼更新后在登錄頁面中顯示此消息。我無法嘗試從 $_SESSION 變量中放置和捕獲消息,因為當注銷會話被破壞時。我將不勝感激有關此主題的任何好主意。提前致謝。
查看完整描述

2 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

一些想法:

1)使用 Cookie 而不是 $_SESSION (在開始新會話后確實會被銷毀)。如果設置了 cookie,則顯示您顯示的消息(并刪除 cookie)

2)不要立即重定向到登錄頁面,而只是說:“密碼已更改!單擊此處重新登錄。”。但是您可以安全地銷毀該頁面上的會話。

3)根本不破壞會話。更改密碼的事實并不意味著您必須銷毀會話。如果您的會話包含以下內容:$_SESSION['validUser'] = 'Y'那可能就足夠了嗎?


查看完整回答
反對 回復 2022-01-24
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

Erwin Moller 的建議都是很好的建議,而且都很容易實施。我認為這些是最好的方法,但是如果您不想使用這些方法中的任何一種,那么您可以將一個$_GET變量從一個重定向中繼到另一個重定向,可以是純消息或代表的值一個消息:


$red_url = 'http://www.example.com/?msg=Password+has+been+reset';

header("Location: {$red_url}");

exit;

確保htmlspecialchars()在輸出消息時使用類似或等效的東西。這將處理惡意代碼插入,但這種方法仍然允許最終用戶最靈活地處理您的站點消息。


變量方法將類似:


$red_url = 'http://www.example.com/?msg=1234';

header("Location: {$red_url}");

exit;

在顯示頁面上使用某種方式來獲取或翻譯msg代碼:


<?php if(!empty($_GET['msg']) && is_numeric($_GET['msg'])): ?>

<h3 class="site-message"><?php echo myCodeToMessageFunc($_GET['msg']) ?></h3>

<?php endif ?>

最可能發生的情況是用戶可以手動傳遞不同的代碼以顯示不同的消息。


** 這兩種方法可能會被用戶弄亂(如果您正在清理或控制輸出,則無害),這就是 cookie 或會話更好的原因,但這是一種非常直接的消息傳遞方法。


查看完整回答
反對 回復 2022-01-24
  • 2 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號