簡體   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