2016-06-18 3 views
-1

я работаю над формой входа, я пытаюсь это PHP код для login.php:PHP и самозагрузки Войти

<?php 
     session_start(); 
      // Connect to MySQL 
    $mysqli = new mysqli('localhost', 'cshrnaf_user2', '=cXlIBsdMkdr', 'cshrnaf_mis_db'); 
     if($_SERVER["REQUEST_METHOD"] == "POST") { 
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($db,$_POST['Username']); 
      $mypassword = mysqli_real_escape_string($db,$_POST['Password']); 

      $sql = "SELECT id FROM user WHERE email = '$myusername' and password= '$mypassword'"; 
      $result = mysqli_query($db,$sql); 
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
      $active = $row['active']; 

      $count = mysqli_num_rows($result); 

      // If result matched $myusername and $mypassword, table row must be 1 row 

      if($count == 1) { 
      session_register("myusername"); 
      $_SESSION['login_user'] = $myusername; 

      header("location: index.php"); 
      }else { 
      $error = "Your Login Name or Password is invalid"; 
      } 
     } 
    ?> 

и вот мой самозагрузки код:

</head> 
<body class="gray-bg"> 
    <div class="middle-box text-center loginscreen animated fadeInDown"> 
     <div> 
      <h3>Welcome</h3> 
      <p>Login to your account.</p> 
      <form method="post" class="m-t" role="form"> 
       <div class="form-group"> 
        <input type="email" class="form-control" name=Username required=""> 
       </div> 
       <div class="form-group"> 
        <input type="password" class="form-control" name=Password required=""> 
       </div> 
       <button type="submit" class="btn btn-primary block full-width m-b">Login</button> 
      </form> 
     </div> 
    </div> 
    </body> 
</head> 

, но это дает мне ошибка в строке 7,8,11,12 и 15. Есть ли что-то не так с моим кодом php или html?

+0

Разместить свои ошибки в вопросе ??? –

+1

Во избежание ** SQL Injection ** использовать Подготовленные утверждения: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php –

+1

Вы храните пароли в виде обычного текста? Вы должны остановиться прямо сейчас. – Terry

ответ

2

какая линия 7,8,11, 12 и 15 на самом деле, номер строки здесь не отображается. Кроме того, вы должны публиковать сообщения об ошибках, чтобы они могли помочь вам.

Я думаю, вы используете неопределенный переменной $db в вашем коде. Это единственная проблема, которую я вижу здесь. Если $db является экземпляром вашего соединения DB, что здесь должен быть указан код подключения, но его здесь нет.

ОБНОВЛЕНО часть зайца:

Проблема с $result переменной. Вы сохранили результат mysqli_query в переменной $result. Но когда mysqli_query терпит неудачу, результатом является false. В результате ошибка отображается, как вы сказали в комментарии. здесь вы можете взглянуть: http://php.net/manual/en/mysqli.query.php

Вы должны обновить свой код на этот:

<?php 
     session_start(); 
      // Connect to MySQL 
    $mysqli = new mysqli('localhost', 'cshrnaf_user2', '=cXlIBsdMkdr', 'cshrnaf_mis_db'); 
     if($_SERVER["REQUEST_METHOD"] == "POST") { 
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($db,$_POST['Username']); 
      $mypassword = mysqli_real_escape_string($db,$_POST['Password']); 

      $sql = "SELECT id FROM user WHERE email = '$myusername' and password= '$mypassword'"; 
      if($result = mysqli_query($db,$sql)){ 
       $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
       $active = $row['active']; 

       $count = mysqli_num_rows($result); 

       // If result matched $myusername and $mypassword, table row must be 1 row 

       if($count == 1) { 
       session_register("myusername"); 
       $_SESSION['login_user'] = $myusername; 

       header("location: index.php"); 
       }else { 
       $error = "Your Login Name or Password is invalid"; 
       } 
      }else{ 
       echo "<br>Query fails"; 
      } 
     } 
    ?> 
+1

Это должен быть комментарий, а не ответ - вы не можете знать, что '$ db' не назначается где-то еще - поэтому вы действительно должны спросить –

+0

Я подсчитал номера строк, в каждой строке, где переменная' $ db' производит ошибку, как он упоминал. – Imran

+0

@ Al-ImranAhmed Я перередактирую свой код, не могли бы вы взглянуть на php one? Спасибо:) –

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