繁体   English   中英

带有登录名和密码的表格不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM