2014-11-10 2 views
-2

Я получаю ошибку, когда я пытаюсь войти; но мой код выглядит хорошо после того, как он прошел через него. Есть ли что-то, что я не делаю правильно. пожалуйста, помогите с этим. после проверки кода я замечаю, что dosnt выполняет от if (isset ($ _ POST ['submit'])) {.Мой код входа не работает. что я делаю неправильно

<?php 
     if (isset($_POST['submit'])){ 
      //form has been submitted1 

      $uname = trim($_POST['uname']); 
      $upass = trim($_POST['upass']); 
      //$utype = trim($_POST['utpye']); 
      $h_upass = sha1($upass); 
      if($uname == ''){ 
       echo 'Username or Password Not Registered! Contact Your administrator...'; 
      }elseif($upass == ''){ 
       echo 'Username or Password Not Registered! Contact Your administrator...'; 

      }else{ 

       $sql = "SELECT * FROM `users` WHERE `uname`='". $uname ."' and `u_pass`='". $h_upass ."'"; 
       $result = mysql_query($sql) or die; 
       $numrows = mysql_num_rows($result); 
       if ($numrows == 1){ 
        $found_user = mysql_fetch_array($result); 
        $_SESSION['user_id'] = $found_user['user_id']; 
        $_SESSION['username'] = $found_user['users_name']; 
        $_SESSION['usersname'] = $found_user['uname']; 
        $_SESSION['userpass'] = $found_user['u_pass']; 
        $_SESSION['usertype'] = $found_user['utype']; 
      ?> <script type="text/javascript"> 
        alert("Welcome! <?php echo $_SESSION['username'];?> your are successfully logged in."); 
        window.location = "index.php"; 
       </script> 
      <?php 


       }else{ 
        echo 'Username or Password Not Registered! Contact Your administrator...'; 

       } 

      } 
     }else{ 

      $uname = ""; 
      $upass = ""; 
      $utype = ""; 
     } 

    ?> 
<form id="form4" name="form4" method="post" action="login.php"> 


<table class="app_table"> 

    <tr> 
     <th> <div class="_title">Welcome Users::</div></th> 
    </tr> 
    <tr> 
     <td class="form"> 
      <table width="100%"> 
        <tr> 
         <td class="_label">Username :: </td> 
         <td> 
         <input type="text" name="uname" id="uname" class="txtbox" /> 
         </td> 
        </tr> 
        <tr> 
         <td class="_label">Password :: </td> 
         <td> 
         <input type="password" name="upass" id="upass" class="txtbox" /> 
         </td> 
        </tr> 


        <tr>      
         <td align="Right"> 
         <td> 
          <input type="submit" name="submit" id="seacrh" value="Log in"/> 

         </td> 
         </td> 
        </tr> 


      </table>  
     </td> 
    </tr>  
</table> 

</div> 
</form> 


    </table> 

<?php include("includes/footer.php");?> 
+0

Показать код формы. Похоже, что поле не отправляется с именем 'submit'. –

+0

sha1 ("") вернет значение, пустое или пустое, так что сделайте чек, если он установлен для пароля ** перед ** выполнением хэша sha1, далее ваш код ОЧЕНЬ vlunerable для SQL-инъекций, попробуйте взглянуть на используя что-то вроде подготовленных операторов или mysqli – Azrael

+0

На самом деле, новичок в php .. вы можете помочь в изменении моего кода? –

ответ

0

Вы уверены, что пароль хранится в зашифрованном виде? Если нет, то измените эту строку тоже:

$h_upass = sha1($upass); 

в

$h_upass = $upass; 
+0

спасибо большое .. это сработало .. пароль не был зашифрован ... –

1
  1. Вы должны отправить форму именно в этот PHP скрипт.

    <form action="script.php">

  2. Убедитесь, что вы используете метод HTTP POST

    <form action="script.php" method="POST">

  3. Не игнорировать ошибки, добавить по крайней мере, для вывода для первой версии:

    $result = mysql_query($sql) or die(mysql_error());

  4. Убедитесь, что вы есть 'u_name' и 'входы u_pass' в вашей форме, и вы не сделали ошибки своих имен + ваша кнопка Submit под названием "отправить"

+0

Вы использовали все базы, кроме очень открытой SQL-инъекции.Тем не менее, +1 –

+0

Я просто приложил код формы к нему –

0

Измените строку ниже:

if ($numrows == 1){ 

в

if ($numrows){ 
+0

не исправил его ... –

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