Php 一次回显成功消息
我正在尝试创建一条“flash”成功消息,当用户成功更改密码时会弹出该消息。但是,它不能按我所希望的方式工作 基本思想是,当人们输入新密码(并将其传递到数据库)时,它将回显到“成功更新密码”页面。但它只回显一次(当用户刷新时,回显的消息将消失,并且在他们提交新密码之前不会再次显示) 我试着四处搜索,但我似乎找不到任何脚本可以按照我希望的方式工作 这是我的PHP函数,目前:Php 一次回显成功消息,php,Php,我正在尝试创建一条“flash”成功消息,当用户成功更改密码时会弹出该消息。但是,它不能按我所希望的方式工作 基本思想是,当人们输入新密码(并将其传递到数据库)时,它将回显到“成功更新密码”页面。但它只回显一次(当用户刷新时,回显的消息将消失,并且在他们提交新密码之前不会再次显示) 我试着四处搜索,但我似乎找不到任何脚本可以按照我希望的方式工作 这是我的PHP函数,目前: function updatePassword($conn, $newpwd, $username){ $newpw
function updatePassword($conn, $newpwd, $username){
$newpwd = hash('md5', $newpwd);
mysqli_query($conn, "UPDATE users SET password = '$newpwd' WHERE username = '$username'");
}
干杯。我最近自己创造了一些东西,虽然代码可能会更好,但它很有效
function flash_message($message, $type = 'success') {
switch($type) {
case 'success':
$class = "success";
break;
case 'info':
$class = "info";
break;
case 'error':
$class = "error";
break;
}
$_SESSION['flash_message'] = "<p class='flash_message ".$class."'>".$message."</p>";
}
function show_flash_message() {
if (isset($_SESSION['flash_message'])) {
$message = $_SESSION['flash_message'];
unset($_SESSION['flash_message']);
return $message;
}
return NULL;
}
如果要更改消息的显示,则可以使用不同的类。(错误的用户名/密码是一个错误,发送的电子邮件可能是info/success等)让我解释一下伪逻辑 步骤: 1) 成功更改密码后,将成功消息分配给会话变量
$\u会话['message']='密码已成功更改'代码>
2) 在重定向成功页面上,重复此操作
if (isset($_SESSION['message'])) {
echo $_SESSION['message'];
unset($_SESSION['message']);
}
另外,unset()
it,这样以后就不会再显示了。@Albzi,回答得好。比我的好10倍。你真的不应该使用PHP来处理密码安全问题。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
if (isset($_SESSION['message'])) {
echo $_SESSION['message'];
unset($_SESSION['message']);
}