使用php ajax检查用户名和密码
我正在做一个与php相关的家庭作业。在分配中,需要登录页面。在此登录页面中,每个用户都需要输入其用户名和密码。这些用户名和密码将与mysql数据库中customer表中的值进行比较。如果密码和用户名与customer表中“cid”和“name”列下的记录一致,则会显示成功登录的通知 我有3个php文件,分别是loginGUI.php、check_login.php和db_connect.php db_connect.php:使用php ajax检查用户名和密码,php,mysql,ajax,Php,Mysql,Ajax,我正在做一个与php相关的家庭作业。在分配中,需要登录页面。在此登录页面中,每个用户都需要输入其用户名和密码。这些用户名和密码将与mysql数据库中customer表中的值进行比较。如果密码和用户名与customer表中“cid”和“name”列下的记录一致,则会显示成功登录的通知 我有3个php文件,分别是loginGUI.php、check_login.php和db_connect.php db_connect.php: <?php $db_name="ozcan_b";
<?php
$db_name="ozcan_b"; // Database name
$tbl_name="customer"; // Table name
//connect to db
$con=mysql_connect("127.0.0.1","xxxxxx","xxxxxx");
mysql_select_db("ozcan_b")or die("cannot select DB");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysql_connect_error();
exit(0);
}
?>
loginGUI.php:
<?php
session_start();
require_once ('db_connect.php'); // include the database connection
?>
<html>
<head>
<title>
Login page
</title>
</head>
<body>
<h1 style="font-family:Comic Sans Ms;text-align="center";font-size:20pt;
color:#00FF00;>
Login Page
</h1>
<form name="myForm" method="POST" >
Username<input type="text" name="userid"/>
Password<input type="password" name="pswrd"/>
<input type="button" value="Login" id='checklogin' onclick="check()"/>
<div id='username_availability_result'></div>
</form>
<script language="JavaScript">
var xhr_request = false;
var checking_html = 'Checking...';
//when button is clicked
function check(){
//Check the fields
if(document.forms['myForm'].userid.value=="" || document.forms['myForm'].pswrd.value=="")
{
alert('Please enter your password and your username!');
}
else
{
//else show the cheking_text and run the function to check
//$('#username_availability_result').html(checking_html);
check_availability();
}
}
//function to check username availability
function check_availability(){
//get the username
var userid = document.forms['myForm'].userid.value;
var pswrd = document.forms['myForm'].pswrd.value;
//use ajax to run the check
var request = $.ajax(
{
url:check.php,
type:POST,
data:{pswrd:pass, userid:username}
success:function()
{
alert("Success");
}
});
</script>
</body>
</html>
登录页面
实际上,您并没有将userid
和pswrd
发送到PHP脚本。你不能只发送$.ajax
随机属性,希望它能工作。您的数据需要进入data
参数
$.ajax({
type:"POST",
url: "check_login.php",
cache: false,
data:{
userid:userid,
pswrd:pswrd
},
success: function(result){
//if the result is 1
if(result == 1){
//show that the username is available
$('#username_availability_result').html(username + ' is Available');
}else{
//show that the username is NOT available
$('#username_availability_result').html(username + ' is not Available');
}
}
});
在我看来,您使用的代码来自不同的地方。您应该验证用户名/密码组合是否存在,而不是检查它是否可用
对不起,没有人会帮你做作业。这是一个很好的理由
<?php
session_start();
require_once ('db_connect.php');
if(isset($_POST['pswrd']) && isset($_POST['userid']))
{
$sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc, trim($_POST['userid'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['pswrd'])."'");
$result = mysql_query($dbc, $sql) or die("Could Not make request");
if(mysql_num_rows($result) == 1)
{
//redirect to the welcome page
}
else
{
echo "User Not Found";
}
}
?>
您可以使用jquery ajax
<input type='text' id='username'/>
<input type='text' id='password'/>
<input type='button' id='submit'/>
<script type='text/javascript'>
$(document).ready(function()
{
var pass = $("#password").val();
var username = $("#username").val();
$().click(function()
{
var request = $.ajax(
{
url:server.php,
type:POST,
data:{password:pass, username:username}
success:function()
{
alert("Success");
}
});
});
问题可能是由于脚本标记中缺少type属性。应该是:
<script type="text/javascript" >
这应该可以解决问题。不,它不再工作了:(.我认为我的文档还没有准备好,因为当我使用$(document).ready(function(){…})时,它不工作了。我该怎么办,我只有几个小时。((不,我不知道。即使我根据建议更改了一些行,我的代码也不工作。):(你在哪里包括jQuery库?你有任何其他的JS或CSS吗?我没有包括任何jQuery库!!我应该包括在哪里?我正在mac上使用TextWrangler编写所有php文件。请将其放在loginGUI.php的
部分:
好,我添加了,但它不会影响结果。我已经按照请在这个编辑版本上帮助我。你需要提供一些关于你收到的错误的详细信息。是的,因为我是php新手。不,它不工作!已经,$(文档)。就绪(函数()不工作。我该怎么办?它应该从页面中删除所有javascript,然后尝试这样的操作。$(文档)。就绪(function(){alert(“Hello World”);});请记住,这只在调用jquery文件的目录时起作用,并且必须放在调用jquery文件的目录之后……还要确保文件已找到jquery文件
<input type='text' id='username'/>
<input type='text' id='password'/>
<input type='button' id='submit'/>
<script type='text/javascript'>
$(document).ready(function()
{
var pass = $("#password").val();
var username = $("#username").val();
$().click(function()
{
var request = $.ajax(
{
url:server.php,
type:POST,
data:{password:pass, username:username}
success:function()
{
alert("Success");
}
});
});
</script>
<?php
if(isset($_POST['password']) && isset($_POST['username']))
{
$sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc, trim($_POST['username'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['password'])."'");
$result = mysqli_query($dbc, $sql) or die("Could Not make request");
if(mysqli_num_rows($result) == 1)
{
//redirect
}
else
{
echo "User Not Found";
}
}
?>
<script type="text/javascript" >