PHP中的echo div问题

PHP中的echo div问题,php,html,css,Php,Html,Css,我正在做的登录页面,如果用户没有成功登录,我将使用下面的来处理它,这意味着消息将显示在文本框pwd的左侧。但当登录失败时,消息从未显示。你能告诉我为什么吗 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label>Username:</label> <input type="text" name="name" size="10"> </br&g

我正在做的登录页面,如果用户没有成功登录,我将使用下面的来处理它,这意味着消息将显示在文本框pwd的左侧。但当登录失败时,消息从未显示。你能告诉我为什么吗

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Username:</label>
<input type="text" name="name" size="10"> </br>
<label>Password:</label>
<input type="text" name="pwd"  size="10"> </br>
<?php 
echo '<div style="position:absolute; left:650px; top:25px;float:left">';
if (isset($username))
{
  // if they've tried and failed to log in
  echo 'Your password is not right<br />';
}
echo '</div>';
?>

<a href="index.html">Register</a> &nbsp
<input type=submit name=login value=Login>
</form>

如果我不放PHP代码,消息会显示在pwd文本框中,但我想放在文本框的左边。我确信问题出在CSS样式上,因为当我只定义DIV时,只有一个属性,即float left,错误将显示在pwd文本框中,login和register将显示在错误消息的右侧,如果您不使用AJAX,并且您不熟悉它,这是非常奇怪的。 试试这个

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Username:</label>
<input type="text" name="name" size="10"> </br>
<?php 
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if(!empty($_POST['name']) && !empty($_POST['pwd'])){
            $name = trim($_POST['name']);
            $password = trim($_POST['pwd']); # Normally this password is encrypted

            # Database Connection Here 

            if // if they've tried and failed to log in
            {
              echo '<div style="position:absolute; left:650px; top:25px;float:right">Your password is not right<div/>';
            }
        }
    }
?>
<label>Password:</label>
<input type="text" name="pwd"  size="10"> </br>

<a href="index.html">Register</a> &nbsp
<input type="submit" name="login" value="Login">
更好的解决方案或实践是使用AJAX。使用AJAX,您可以在任何需要的地方显示错误消息。如果您想练习,请访问以下网站链接:-


username从哪里来?如果isset$\u POST['name']&&isset$\u POST['pwd']{//如果用户刚刚尝试登录$username=$\u POST['name'];$password=$\u POST['pwd'];那么@Shomz的答案是正确的。但是为什么你要这样做$username=$\u POST['name'];$password=$\u POST['pwd']?样式是输入错误。我把它改回来仍然不工作。我会用它来检查这两个值是否已设置。如果未设置,则加载整个页面,然后在加载整个页面后,我会进行检查,以查看用户是否有效。整个代码很有趣,唯一的部分是,我想将错误消息放在pwd框之外,所以我添加了DIV尝试处理它。问题是,div不能很好地工作,如果我只是删除div,错误消息将在pwd框下面,这是我不想要的