xan*_*xan 2 php mysql login-script
我正在尝试使用以下代码编写登录脚本:
一个Jquery片段:
<script type="text/javascript">
$(function(){
$('div#login-button').click(function(){
var email = $("#login_email").val();
var password = $("#login_password").val();
$.post("functions/login.php?email="+email+"&password="+password, {
}, function(response){
if($(response).html() == "correct")
window.location.href = "home.php";
else window.alert($(response).html());
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
HTML代码:
<div id="login-type-1">
E-mail:<input type="text" id="login_email" name="email" value="Type your Email ID" class="input" maxlength="100"/><br />
Password:<input type="password" id="login_password" name="password" value="password" class="input" maxlength="30"/>
<a href="#"><div id="login-button"><span>Log in</span></div></a>
</div>
Run Code Online (Sandbox Code Playgroud)
functions/login.php:
<?php
require_once('db.php');
session_start();
$email = $_REQUEST['email'];
$password = $_REQUEST['password'];
if(!$email || $email == "Type your Email ID")
echo "<p>Please input your email id.</p>";
if(!$password)
echo "<p>Please input your password.</p>";
if($email && $password && $email != "Type your Email ID"){
$check = mysql_query("SELECT u_id, u_fname, u_lname, u_email FROM user_data WHERE u_password = '".md5($password)."' AND u_email = '".$email."'");
$result = mysql_num_rows($check);
if ($result == 1){
$row = mysql_fetch_assoc($check);
$_SESSION['u_id'] = $row['u_id'];
$_SESSION['u_fname'] = $row['u_fname'];
$_SESSION['u_lname'] = $row['u_lname'];
$_SESSION['u_email'] = $row['u_email'];
$_SESSION['u_name'] = $row['u_fname']." ".$row['u_lname'];
echo "<p>correct</p>";
}
else {
echo "<p>Invalid Authentication</p>";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
数据库连接:
class db {
public static $hostname_adminconn = "localhost";
public static $database_adminconn = "masterdb";
public static $username_adminconn = "root";
public static $password_adminconn = "qwerty";
public static $adminconn;
public static function dbDb() {
return db::$database_adminconn;
}
public static function dbConn() {
return db::$adminconn;
}
}
db::$adminconn = mysql_connect(db::$hostname_adminconn, db::$username_adminconn, db::$password_adminconn) or trigger_error(mysql_error(),E_USER_ERROR);
Run Code Online (Sandbox Code Playgroud)
不过,我无法登录.有人可以帮我调试吗?
你的PHP返回:
echo "<p>correct</p>";
Run Code Online (Sandbox Code Playgroud)
但是JavaScript检查了这个:
if($(response).html() == "correct")
Run Code Online (Sandbox Code Playgroud)
这种比较是行不通的.
话虽如此,您应该返回更合适的响应类型,例如JSON:
header('Content-Type: application/json');
echo json_encode(array(
'res' => 'ok',
));
Run Code Online (Sandbox Code Playgroud)
在您的JavaScript中:
if (response.res === 'ok') {
Run Code Online (Sandbox Code Playgroud)