php - 带有php html css jquery mysqli的ajax登录表单
问题描述
我正在创建一个登录页面,用户可以在其中使用姓名和电子邮件 ID 登录他们的帐户。当我尝试使用正确的电子邮件 ID 输入详细信息并将其命名为未登录时,我在登录页面中遇到了问题。
我是ajax的新手。我应该怎么做才能让它工作?
登录.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="script.js"></script>
<style>
.error {
color: red;
display: none;
}
.div1 {
margin-top: -19px;
margin-bottom: -25px;
margin-left: -19px;
}
.copy {
border-radius: 4px;
padding: 6px 20px;
border-style: ridge;
}
#error_message {
background: #F3A6A6;
}
.ajax_response {
padding: 10px 20px;
border: 0;
display: inline-block;
margin-top: 20px;
cursor: pointer;
display: none;
color: #555;
}
</style>
</head>
<body style="background-image: url(pic.jpg); background-repeat: no-repeat; background-size: cover;">
<div style="padding-left: 380px; padding-top:80px" class="div1">
<h2 style="color:#009999">Registration Form :</h2>
<p><span class="error">All fields are required </span></p>
<form action="" method="post" id="logForm" enctype="multipart/form-data">
<span style="color:#0099ff">Name: </span>
<input type="text" name="name" id="name" class="copy" style="margin-left: 52px" value=""/>
<span class="namee error">Enter name</span>
<br/><br/>
<span style="color:#0099ff"> E-mail: </span>
<input type="text" name="email" id="email" class="copy" style="margin-left: 48px" value=""/>
<span class="emaile error">Enter email</span>
<br/><br/>
<input type="button" id="submit" class="submit" name="submit" value="Register"/>
<div id="error_message" class="ajax_response" style="float:left"></div>
</form>
</div>
</body>
<script>
$(document).ready(function () {
$("#submit").click(function () {
var error = false;
var form = document.getElementById('logForm');
var formData = new FormData(form);
// Loop through the form data
for (var p of formData) {
// Check if the form data is empty
if (p[1] === '') {
// Show the error
$('.' + p[0] + 'e').show();
error = true;
}
}
// Boolean to prevent AJAX from running in case of an error
if (error) {
return false;
}
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "success.php",
data: formData,
processData: false,
contentType: false,
cache: false,
success: function (data) {
if (data['success']) {
window.location = 'pannel.php';
}
else {
alert('Invalid Credentials');
}
}
});
});
});
</script>
</html>
成功.php
<?php
$mysqli = mysqli_connect("localhost","root","","ajax1");
$name=$_POST["name"];
$email=$_POST["email"];
//Checking is user existing in the database or not
$query = "SELECT * FROM `users` WHERE name='$name' and email='$email'";
$result = mysqli_query($mysqli,$query);
$row1 = mysqli_fetch_array($result);
$rows = mysqli_num_rows($result);
if($rows==1){
$_SESSION['name'] = $name;
$_SESSION['id']=$row1['userid'];
// Redirect user to index.php
header("Location: pannel.php");
}
else{
$error = " Invalid Name or E-MAIL ";
}
?>
面板.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>
#success_message{
background: #CCF5CC;
}
.ajax_response {
padding: 10px 20px;
border: 0;
display: inline-block;
margin-top: 20px;
cursor: pointer;
display:none;
color:#555;
}
</style>
</head>
<body>
<div id="success_message" class="ajax_response" style="float:left"></div>
<div class="container">
<br><br><br><br>
<?php
$mysqli = mysqli_connect("localhost","root","","ajax1");
$query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
$row=mysqli_fetch_array($query);
echo 'Welcome - '.$row['name'];
?>
<br>
<a href="logout.php">Logout</a>
<br><br>
</div>
</body>
</html>
解决方案
当您在发送 ajax 请求时收到“加载资源失败:”错误时,请将您的 ajax url 参数 ( url: "success.php",
) 指向正确的路径。
例如:如果您的success.php 在某个文件夹中,可以说名为“phpscripts”的文件夹比您的ajax url 应该是"phpscripts/success.php"
。
如果这不起作用,请使用控制台快照更新您的问题。
推荐阅读
- android - 无法应用委托:Android 中的 TFlite 崩溃
- angular - 如何从双地图获取数据(Angular - Spring)
- react-native - React Navigation:选项卡文本无法以小写形式显示
- sql-server - 我在尝试使用 Azure Function 将数据加载到 Azure 数据库时不断收到错误消息
- javascript - 映射和创建组件后,如何在两列中显示它与渲染次数相等?
- html - HTML5 中的文本换行
- database - msadox28.tlb 在注册时不是有效的 .Net 程序集文件
- java - Java应用程序中的Spring缓存实现?
- java - 如何在生产配置文件中隐藏 Swagger?
- android - Flutter NFC 应用程序:如何禁用其他 NFC 应用程序?