[英]Form with login and password not working
我正在尝试使用登录名和密码创建表单,但无法进行身份验证。 我已经检查了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);
?>
num_rows是mysqli结果的属性,而不是方法。
您需要使用$stmt->num_rows
而不是$stmt->num_rows()
来检索它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.