2015-12-19 4 views
1

, когда я не вводил данные в поле пароля и имени пользователя, тогда он работает правильно, он говорит, что «введите данные», что правильно, но когда я ввожу данные и нажмите знак в нем, просто идет на пустую страницу, ничего не сообщает об ошибке. После нажатия на нее просто отображается мне пустая страница., создавая форму входа в систему, используя php, mysql и html, но не могу войти в систему

код PHP: -

<?php 
$conn_error= 'could not connect to the databse'; 
$mysql_host= 'localhost'; 
$mysql_user= 'root'; 
$mysql_pass= ''; 
$mysql_db='shubhamyadav'; 
mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die($conn_error); 
mysql_select_db($mysql_db) or die($conn_error); 

if(isset($_POST['userName'])&& isset($_POST['pass'])) { 

    $userName = $_POST['userName']; 
    $pass = $_POST['pass']; 

    if (!empty($userName) && !empty($pass)){ 
     $query = "SELECT 'id' FROM 'users' WHERE 'userName' = '$userName' AND 'pass' = '$pass'"; 
    if ($query_run = mysql_query($query)){ 
     $query_num_rows = mysql_num_rows($query_run); 
     if($query_num_rows == 0){ 
      echo'invalid data'; 
     }elseif($query_num_rows==1){ 
      echo'ok'; 
     } 
    } 

    }else{ 
     echo'enter data'; 
    } 


} 
    ?> 

?> 

HTML код, на котором я отображения формы: -

<form method="POST" action="connect.inc.php"> 
    UserName<input type="text" name="userName" size="40"> 
    <br> 
<br> 
Password<input type="password" name="pass" size="40"> 
<br> 
<br> 
<input id="button" type="submit" name="submit" value="Sign-In"> 
</form> 
+0

Включите отчеты об ошибках. Включите следующий код в начале ваших скриптов: 'error_reporting (E_ALL | E_STRICT); ini_set ('display_errors', true); ' –

+0

после использования этого кода дает: -use mysqli –

+0

Даже если это работает, вы не должны так изучать вещи. Расширение MySQL устарело, и вы должны либо выбрать PDO, либо MySQLi – Rehmat

ответ

0

Что такое Происходило что происходит ошибка PHP, но потому что кажется, конфигурация PHP делает не показывать ошибки, вы получаете эту пустую страницу.

Проверить эту ссылку, чтобы показать ошибки: Getting php errors to display

1

Ошибка в том, что ваш запрос MySQL неправильно. Ваш запрос должен быть таким,

$query = "SELECT `id` FROM `users` WHERE `userName` = '$userName' AND `pass` = '$pass'"; 

Вы должны использовать кавычку (`) для имен таблиц и столбцов, одиночные кавычки (') для строк. Backticks нужны только тогда, когда ваше имя таблицы или имя столбца является зарезервированным словом MySQL, но лучше всего избегать зарезервированных слов.

Sidenote: Переключить на PDO и используя подготовленные заявления, или по крайней мере mysqli, а не mysql.

0

Эти стандарты всегда будет держать вас подальше от маленьких проблем, заменить и попробовать:

$query = "SELECT id FROM users WHERE userName = '".$userName."' AND pass = '".$pass."'"; 
0
   FOR LOGIN USE THIS TYPE OF QUERY 
     //DB CONNECTION 


     <?php 
    $con = mysqli_connect("localhost","root","","Testify"); 

    if(mysqli_connect_errno()){ 
     echo mysqli_connect_error(); 
    } 
?> 

       <?php 
       //login script 
       if(isset($_POST['login'])){ 
       $username = trim(htmlspecialchars($_POST['username'])); 
      $password = trim(htmlspecialchars($_POST['password'])); 

       //if username or password is empty 
       if(empty($username) || empty($password)){ 
echo "<div class='alert alert-danger'>Fill in all the fields</div>"; 
       exit(); 
      } 

       //check username and password match the db record 
    $q = mysqli_query($con,"SELECT id FROM `user` WHERE username='$username' AND password='$password'"); 
      if(mysqli_num_rows($q) != 1){ 
    echo "<div class='alert alert-danger'>Invalid username or password</div>"; 
       exit(); 
      } 

      //fetch the if of the logged in user start the session 
      $row = mysqli_fetch_assoc($q); 
      //set the session with logged in user id 
      $_SESSION['id'] = $row['id']; 
      $_SESSION['username'] = $username; 
      header("Location: index.php"); 
      exit(); 
     } 
Смежные вопросы