2015-12-17 6 views
1

У меня есть этот скрипт, который сначала вставляет с sql-вставкой в ​​запрос и перенаправляется на страницу входа. Я проверил все свои запросы на phpmyadmin. Все запросы работают. У меня нет сообщения об ошибке в моем запросе. Также предположим, что сообщение «пароль/имя пользователя не соответствует», если есть неправильный пользователь/пароль. После того, как я отправлю форму, страница не перенаправила на страницу приветствия и поля формы. это моя страница Войтивойти в систему с сеансом не работает

<?php 

    require_once "./include/variables.inc.php"; 

    $debug =0; 
    $error_text = ""; 
    $uname = ""; 
    $pwd = ""; 

    session_start(); 

     if (!isset($_SESSION['member_id'])){ 
       if(isset($_POST["submit"])) { 

        if($debug) { 
         echo "<pre>"; 
         print_r($_POST); 
         echo "</pre>"; 

         //die("temp stop point"); 
        }//end ofdebug if 

       $uname = mysqli_real_escape_string($dbc,trim($_POST['uname'])); 
       $pwd = mysqli_real_escape_string($dbc,trim($_POST['pwd'])); 

       if (!empty($uname) && !empty($pwd)) { 

        $query = "SELECT * FROM employees WHERE username = '".$uname."' 
AND password = '".MD5($pwd)."'"; 

        echo $query; 

        $result = mysqli_query($dbc,$query) or die ("Error in query". mysql_error()); 


        if(mysqli_num_rows($result)) { 
        $row = mysqli_fetch_assoc($result); 

        $_SESSION['member_id'] = $row['member_id']; 
        $_SESSION['member_name'] = $row['member_name']; 

        header('Location:index.php'); 

        } 
        else { 

         $error_text .= "The username/password are incorrect. Please enter correct username and password."; 
         } 
       } 
      }//end of if(isset($_POST["submit"]) 

    } 

    require_once('./include/html.head.php'); 
?> 
<body> 
    <div id="wrapper"> 
     <?php require_once('./include/header.php'); ?> 

     <div id="side"> 
     <?php require_once('./include/pb.side.php'); ?> 
     </div> 

     <div id="content"> 
      <div class="form"> 

       <p class="strong">All Santa helpers log-in here.</p> 
        <?= $error_text ?> 

        <form method="post" action="<?= $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data"> 
         <p>User Name: <input name="uname" type="text" value="<?= $uname ?>"></p> 
         <p>Password: <input name="pwd" type="password"></p> 
         <input name="submit" type="submit" value="Login"> 
        </form> 
      </div> 

      <div class="rdeer"> 
       <img src="images/login_img.png" alt="Rain Deer"> 
      </div> 
     </div> 
     <?php require_once('./include/footer.php'); ?> 
    </div> 
</body> 
</html> 

и функции РНР

<?php 
    function user_authenticated($username, $password) { 
     if(!empty($username) && !empty($password)) { 
      $query = "SELECT userName, password FROM employees WHERE userName = '".$username."' and password = '".$password."'"; 

      $result= mysqli_query($dbc, $query) 
      or die ("Query does not work." . mysql_error()); 

     // If result matched $username and $password, table row must be 1 row 
    } else { 
    echo "Query error. "; 
    } 
} 
+0

Добавить следующее в начало вашего php, это поможет вам увидеть другие ошибки php: error_reporting (E_ALL); ini_set ("display_errors", 1); – talsibony

+0

Прежде всего, всегда используйте блок catch try для этих ситуаций, чтобы получить прочитанное сообщение об ошибке. Во-вторых, где вы использовали «user_authenticated»? –

ответ

0

Обратите внимание на линии mysqli_num_rows($result). Замените его на mysqli_num_rows($result)>0, так как эта функция возвращает int.

Смежные вопросы