php显示登录状态消息不更新


php show login status message does not update

当有人试图登录时,我试图显示状态消息。我遇到的问题是:

  • 在我检查登录后,它不匹配,它输出$loginStatusMessage == "doesn't match",但不在HTML中(我希望如此,因为它被CSS样式标签包裹)
  • 相反,HTML $loginStatusMessage即使在变量更新后也会回显"欢迎"

我猜这是因为在表单调用自己来运行PHP之后,它会重新加载带有welcome?如何使HTML $loginStatusMessage在提交表单时更改为doesn't match

我有全局变量$loginStatusMessage

$loginStatusMessage = "welcome";
if(isset($_POST['Submit'])) {
    Login($username, $password);
}
function Login($username, $password)
{       
    if(!checkLogin($username, $password))
    {
        $loginStatusMessage = "doesn't match...";
        echo $loginStatusMessage; 
    }
    else { 
        session_start();

此回显输出:"doesn't match",但不在正文中的HTML内


但在我的身体里,我有:

<p class='loginMsg'><?php echo $loginStatusMessage; ?></p>

此回波输出:"welcome"

所以当我提交表格时,我调用相同的文件:

<form id='register' action="<?php echo $_SERVER['PHP_SELF']; ?>" method='post' accept-charset='UTF-8'>

声明变量

   $loginStatusMessage;

然后在您的代码中,如果验证"匹配",则

   $loginStatusMessage="Welcome";

如果不是

   $loginStatusMessage="Doesn't match";

现在,在这个部分中,你必须打印变量,这样做:

   <p class='loginMsg'><?php 
    if($loginStatusMessage!=null){
    echo $loginStatusMessage; 
    }
    ?></p>

希望它能帮助

我在记事本++和examplep中做了一些实验,我认为这对你来说是

if(isset($_POST['Submit'])) {
    Login($username, $password);
}
function Login($username, $password)
{       
    if(!checkLogin($username, $password))
    {
        $loginStatusMessage .= "doesn't match...";
        echo $loginStatusMessage; 
    }
    else { 
        $loginStatusMessage .= "welcome";
        echo  $loginStatusMessage;
        session_start();