Jump to content
  • 0

Проблема в авторизации php


purple/ocean
 Share

Question

Проблема с авторизацией, я так понял, что я не правильно пишу запрос

 $query = mysqli_query($con, "SELECT * FROM users WHERE login='$e_login'")

Фул php код:

  if(isset($_POST["submit"])){
 $username = $_POST['username'];
  $login = $_POST['login'];
   $password1 = $_POST['password1'];
    $password2 = $_POST['password2'];
     $email = $_POST['email'];
    if ($password1 == $password2){
      $password1 = md5($password1);
      // $query = mysqli_query($con, "SELECT ('',$username,$login,$password1,$email,'') FROM users ORDER BY id");
      $query = mysqli_query($con, "INSERT INTO users VALUES ('','$username','$login','$password1','$email','')");
      if ($query == true) {
       echo "Вы удачно зарегестрировались";
}
    }
    else {
      echo ("Пароли не совпадают");
    }
  }
 
  if(isset($_POST["enter"])){
  $e_login = $_POST['e_login'];
  $e_password = md5($_POST['e_password']);
 
  $query = mysqli_query($con, "SELECT * FROM users WHERE login='$e_login'");
  $userdata = mysqli_fetch_array($query);
 
  if ($userdata['password1'] == $e_password){
    echo "Вы зашли";
  }
  else {
    echo "Не верный логин или пароль";
  }
  }
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form class="" action="signup.php" method="post">
      <input type="text" name="username" value="" placeholder="ФИО" required><br>
      <input type="text" name="login" value="" placeholder="Логин" required><br>
      <input type="password" name="password1" value="" placeholder="Пароль"required><br>
      <input type="password" name="password2" value="" placeholder="Повторите пароль" required><br>
      <input type="text" name="email" value="" placeholder="EMail" required><br>
 
      <input type="submit" name="submit" value="Зарегистрироваться">
    </form>
 
    <form class="" action="signup.php" method="post">
      <input type="text" name="e_login" value="" placeholder="Логин" required><br>
      <input type="password" name="e_password" value="" placeholder="Пароль"required><br>
      <input type="submit" name="enter" value="Авторизоваться">
    </form>
  </body>
</html>

Собственно в чем проблема?
Если как я и думаю, что в запросе, то будьте добры подскажите как правильно его написать, если в чем-то другом, буду благодарен за разъяснение проблемы.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

старайтесь писать

"SELECT * FROM `users` WHERE `login`='".$e_login."'"

пробуйте ваш запрос в phpmyadmin например, вам выдаст ошибки, если вы не пользуетесь обработкой ошибок в php

почему бы не использовать проверку пароля в запросе?

"SELECT * FROM `users` WHERE `login`='".$e_login."' AND `password1`='".md5($_POST['e_password'])."'"

так же можно добавить LIMIT 1, т.к. я подозреваю что одинаковых логинов у вас не должно быть - это ускорит авторизацию

если в вашем случае при авторизации выводится "Не верный логин или пароль", проверьте одинаково ли вы шифруете пароли для сравнения, т.к. для надежности стоит подсаливать md5, да еще и двойное можно делать
по мне лучше начинать это делать еще в браузере и не передавать пароль незащищенным серверу

если не находит пользователя на шаге запроса, проверьте подключение к базе, правильно ли написаны users и login, есть ли в таблице пользователь с нужным вам именем

При вызове
$userdata = mysqli_fetch_array($query);
обязательно проверяйте что возвращает
$query = mysqli_query($con, "SELECT * FROM users WHERE login='$e_login'");
бывает что $query = false;
а вы пытаетесь ее прогнать через mysqli_fetch_array()

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy