php - 如何让文本框变回空白

标签 php javascript html

我在下面有一个教师登录页面,教师在其中输入他们的用户名和密码,如果输入的详细信息有效,它将检查数据库。下面是代码:

<body>

<?php

$username="xxx";
$password="xxx";
$database="mobile_app";

mysql_connect('localhost',$username,$password);

@mysql_select_db($database) or die( "Unable to select database");

foreach (array('teacherusername','teacherpassword') as $varname) {
        $$varname = (isset($_POST[$varname])) ? $_POST[$varname] : '';
      }

?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" id="teachLoginForm">        
<p>Username</p><p><input type="text" name="teacherusername" value="<?php echo $teacherusername; ?>" /></p>      <!-- Enter Teacher Username-->
<p>Password</p><p><input type="password" name="teacherpassword" value="<?php echo $teacherpassword; ?>" /></p>  <!-- Enter Teacher Password--> 
<p><input id="loginSubmit" type="submit" value="Login" name="submit" /></p>
</form>

<?php
if (isset($_POST['submit'])) {

$query = "
SELECT * FROM Teacher t  
WHERE 
(t.TeacherUsername = '".mysql_real_escape_string($teacherusername)."')
AND
(t.TeacherPassword = '".mysql_real_escape_string($teacherpassword)."')
";


$num = mysql_num_rows($result = mysql_query($query));

$loged = false;

session_start(); 

while($row = mysql_fetch_array($result))
  {

      if ($_POST['teacherusername'] == ($row['TeacherUsername']) && $_POST['teacherpassword'] == ($row['TeacherPassword']))
      {
          $loged = true;
      }

$_SESSION['teacherforename'] = $row['TeacherForename'];
$_SESSION['teachersurname'] = $row['TeacherSurname'];

  }

  if ($loged == true){
  header( 'Location: menu.php' ) ;
}else{
  echo "The Username or Password that you Entered is not Valid. Try Entering it Again.";
}

mysql_close();

}
 ?>


</body>

我的问题是,如果用户获取的登录详细信息不正确并提交,我如何获取它以便它删除密码文本框中的密码,使文本框为空,以便用户重新输入密码。

此外,如果用户刷新浏览器,我希望用户名文本框和密码文本框都变为空白。这可能吗?

谢谢

最佳答案

您在以下行中明确设置了密码字段的值:

<input type="password" name="teacherpassword" value="<?php echo $teacherpassword; ?>" />

如果您只是将 value 属性留空,或者将其完全删除,那么在尝试登录失败后它应该会返回空白。像这样:

<input type="password" name="teacherpassword" />

现在,您的 PHP 脚本有些奇怪:您似乎在仔细检查登录信息,这是不必要的。首先,您检查数据库中传递的凭据匹配的行。之后,循环结果,并再次检查返回的值是否与发布的数据匹配。这最后一步似乎是不必要的!因此,您可以将整个 while(){} block 替换为:

if($num == 1) { // there should be one one user per username
    $row = mysql_fetch_array($result);
    $_SESSION['teacherforename'] = $row['TeacherForename'];
    $_SESSION['teachersurname'] = $row['TeacherSurname'];
    $loged = true;
}

关于php - 如何让文本框变回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9129532/

相关文章:

php - 在 PHP 中通过 SSL 连接到 AWS mysql?

php - 选择语句无法正常工作

javascript - 使用 HighChart + JSON 数据设置饼图颜色

javascript - 产生依赖于递归 promise 的 promise

javascript - 动态 jQuery 内容加载

php - 如何通过单个查询从带有 where 过滤器的 30k MySQL 表中快速选择 3 条随机记录?

php - Laravel 通知电子邮件门面队列多个用户

javascript - Chrome 扩展被 rails API 阻止

php - 如何获取在其他页面上选择的值?

javascript - 使用 jquery 在具有向下滑动效果的特定行之后添加一行