如何在不需要刷新页面的情况下进行验证



我对编程很陌生,我当前的登录形式是index.php

<form action="login.php" method="post" name="form1">
<div class="form-group">
<div class="form-label-group">
<input type="text" id="inputEmail" class="form-control"  name="username" placeholder="Username" required="required" autofocus="autofocus">
<label for="inputEmail">Username</label>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="password" id="inputPassword" name="password" class="form-control" placeholder="Password" required="required">
<label for="inputPassword">Password</label>
</div>
</div>
<input type="submit" class="btn btn-primary btn-block" name="login" value="Login">
</form>

login.php是

<?php
include "connect.php";
if(!isset($_POST['username']) || !isset($_POST['password']))
die("<script>alert('Incorrect Username or Password!')</script>
<script>window.open('index.php','_self')</script>");
echo "<script>alert('Incorrect Username or Password!');</script>
<script>window.open('login.php','_self');</script>";
$UN = $_POST['username'];
$PW = $_POST['password'];
if(strlen($UN)==0 || strlen($PW)==0)
die("<script>alert('Username or Password cannot be empty!')</script>
<script>window.open('index.php','_self')</script>"); 
//data selection
$sql = "SELECT * FROM accounts WHERE Username='".$UN."' AND Password='".$PW."'";
$result = mysqli_query($con,$sql);
if ($rows = mysqli_fetch_array($result)) {
if ($rows['userType'] == "admin") {
session_start();
$_SESSION['login_admin']= $UN;
header("location:home.php");
}else{
session_start();
$_SESSION['login_user']= $UN;
header("location:home-user.php");
}
}else{
die("Log in Failed: Invalid Username or Password.<br />".
"<a href="index.php">Try Again?</a>");
}
?>

如何在表单中实现login.php,使其不刷新?当我的密码因为这个而不正确时,我当前的程序会刷新

<script>window.open('index.php','_self')</script>");

我想使用toast通知用户用户名/密码不正确,而不是刷新

根据周的评论,您需要AJAX和一个PHP文件来处理您的请求。(Javascript/jQuery(

阅读$.ajax((

在javascript代码之前包括在jQuery的head部分中找到的jQuery库:只需确保将jQuery库命名为与src相同即可。

<script src="jquery.js"></script>

在此之后,您可以运行AJAX。AJAX请求与服务器端的php文件进行对话。您可以将项目POST到它并接收回项目,通常通过在php文件中使用echo。有关其他/可选信息,请阅读PHP(arrays和json_encode(((,它将向您的AJAX请求发送一个json编码的数组,并阅读jQuery(json.parse(((以在浏览器端处理这个编码的数组。

AJAX请求如下所示:

<script type="text/javascript">
$.ajax({
url: "phpFile.php",
data: {
myPost : 'value of post'
},
success: function(data) {
alert(data);
}
});
</script>

最新更新