在PHP中更新密码后在登录页面中显示消息

在PHP中更新密码后在登录页面中显示消息,php,change-password,Php,Change Password,我有一个密码更新系统,它工作得很好。但是,问题是我无法显示任何成功消息,如“密码更改!”。因为,在密码更新后,我的系统会将用户重定向到注销页面,而注销页面又会重定向到登录页面。我只想在更新密码后在登录页面中显示此消息。我无法尝试放置并捕获来自$\u会话变量的消息,因为当注销会话被破坏时。我希望能在这个话题上有任何好的想法。提前感谢。一些想法: 1使用Cookie而不是$u会话,该会话在启动新会话后确实会被销毁。如果设置了cookie,则显示消息并删除cookie 2不要立即重定向到登录页面,只需

我有一个密码更新系统,它工作得很好。但是,问题是我无法显示任何成功消息,如“密码更改!”。因为,在密码更新后,我的系统会将用户重定向到注销页面,而注销页面又会重定向到登录页面。我只想在更新密码后在登录页面中显示此消息。我无法尝试放置并捕获来自$\u会话变量的消息,因为当注销会话被破坏时。我希望能在这个话题上有任何好的想法。提前感谢。

一些想法:

1使用Cookie而不是$u会话,该会话在启动新会话后确实会被销毁。如果设置了cookie,则显示消息并删除cookie

2不要立即重定向到登录页面,只需说:密码已更改!单击此处再次登录。。但是您可以安全地销毁该页面上的会话


3完全不要破坏会话。密码更改的事实并不意味着您必须破坏会话。如果您的会话包含如下内容:$\u session['validUser']='Y',这可能就足够了?

Erwin Moller的建议都是很好的建议,而且都很容易实现。我认为这是最好的方法,但是如果您不想使用这些方法中的任何一种,那么您可以通过普通消息或表示消息的值将$u 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;
在显示页面上,使用某种方式获取或翻译消息代码:

最可能发生的情况是,用户可以手动中继不同的代码,以获得不同的消息

**如果您正在清理或控制输出,这两种方法可能会被用户无害地弄乱,这就是为什么cookie或会话更好的原因,但这是一种非常直接的消息传递方法


你能提供一些代码吗?我相信没有代码我已经解释得够多了。请不要只是要求我们为你解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。给我们一个明确的解释,什么是不工作的,并提供。读一个好问题。一定要阅读,谢谢。这是我的第一个问题。所以我不知道怎么问。我一定会通过的。我不想在这个案子中使用cookie。2.已经这么做了。3.我希望用户在更新后再次登录。所以,销毁现有会话。谢谢您的回答。在这种情况下,饼干似乎是最好的解决方案。谢谢你的回答。我将接受欧文·莫勒建议的“cookie”方法。没关系。
<?php if(!empty($_GET['msg']) && is_numeric($_GET['msg'])): ?>
<h3 class="site-message"><?php echo myCodeToMessageFunc($_GET['msg']) ?></h3>
<?php endif ?>