我正在尝试使用登录名和密码创建一个表单,但我无法进行身份验证。我检查了mysql查询,没问题。我认为问题来自于$stmt->num_rows();
它返回0
。
带表格的 PHP
<?require('cabecera.php');?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pujas</title>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
</head>
<body>
<div id='login'>
<input type="text" name="txtUser" id="txtUser">
<input type="text" name="txtPass" id="txtPass">
<input type="button" name="butConectar" id="butConectar" value="Conectar">
</div>
</body>
<? if ($_SESSION['cMensaje']!='') { ?>
<script language="javascript">
alert('<?=$_SESSION['cMensaje']?>');
</script>
<? unset($_SESSION['cMensaje']); ?>
<? } ?>
<script>
$("#butConectar").click(function() {
var txtUser = $("#txtUser").val();
var txtPass = $("#txtPass").val();
/*if((txtUser=='') || (txtPass=="")){
alert('Hay campos sin rellenar.');
}*/
$.ajax({type: "POST",
url: "pr17Login.php",
data: "txtUser="+txtUser+"&txtPass="+txtPass,
success:function(data) {
alert(data);
}
})
})
PHP 检查登录名和密码
<?require('pr17conecta.php');
require('cabecera.php');
ini_set('display_errors',1); error_reporting(E_ALL);
$user=$_POST['txtUser'];
$password=md5($_POST['txtPass']);
//$query=mysql_query("
// select * from tb_user where username='$u' and password='$p'
// ");
$cSQL="SELECT LOGIN,CLAVE FROM USUARIOS WHERE LOGIN=? AND CLAVE=?";
$stmt=$oConni->prepare($cSQL) or die($oConni->error);
$stmt->bind_param('si',$user,$password);
$stmt->execute();
$stmt->bind_result($LOGIN,$CLAVE);
$stmt->fetch();
$row = $stmt->num_rows();
if ($row == 1){
session_start();
$_SESSION['txtUser']=$LOGIN;
header("location: pr17Pujas.php");
}else{
//header("location: pr17Login.php");
echo 'Usuario o contraseña inválidos.';
}
?>
CABECERA.PHP
<? @header('Content-Type:text/html; charset=utf-8');
session_start();
define('MAX_IDLE_TIME', 3);
?>