php ajax 用户登录,PHP + Ajax登录

通过ajax提交登录表单时,我只是遇到一些问题,我主要是PHP开发人员,在PHP中我并不经常使用Jquery + Ajax。

目前,如果我在提交表单后检查firebug

POST数据,它的确会获取已添加到表单的用户名和密码,但是无论是否添加了错误的用户名和密码,或者是否添加了错误的页面,页面都只会重新加载它们是正确的,并且没有创建会话。

形式如下:

Username:

Password:

这是Ajax / Jquery:

$(document).ready(function() {

$('#loginform').submit(function() {

$.ajax({

type: "POST",

url: '/class/login.php',

data: {

username: $("#username").val(),

password: $("#password").val()

},

success: function(data)

{

if (data === 'Login') {

window.location.replace('/user-page.php');

}

else {

alert('Invalid Credentials');

}

}

});

});

});

这是PHP:

class Users {

public $username = null;

public $password = null;

public function __construct( $data = array() ) {

if( isset( $data['username'] ) ) $this->username = stripslashes( strip_tags( $data['username'] ) );

if( isset( $data['password'] ) ) $this->password = stripslashes( strip_tags( $data['password'] ) );

}

public function storeFormValues( $params ) {

$this->__construct( $params );

}

public function Login() {

$success = false;

try{

$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$sql = "SELECT * FROM users WHERE username = :username AND password = :password LIMIT 1";

$user = username;

$stmt = $con->prepare( $sql );

$stmt->bindValue( "username", $this->username, PDO::PARAM_STR );

$stmt->bindValue( "password", md5($this->password), PDO::PARAM_STR );

$stmt->execute();

$valid = $stmt->fetchColumn();

if( $valid ) {

$success = true;

session_start();

session_regenerate_id();

$_SESSION['user'] = $user['user'];

session_write_close();

echo ('Login');

exit();

}

$con = null;

return $success;

}catch (PDOException $e) {

echo $e->getMessage();

return $success;

}

}

我猜这是行不通的,因为我没有调用类和函数,但是我不确定如何成功地调用它。我尝试在2之间创建一个控制器页面,该页面将启动php类和函数,但无济于事。

只是进行编辑,如果删除ajax并通过登录表单操作调用php页面,则登录确实可以正常工作。

有任何想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值