Не работает php авторизация

108
29 мая 2021, 19:20

Есть форма авторизации.

<form action="" method="POST">
      <div class="textbox">
          <input type="text" name="login" placeholder="Логин" >
      </div>
  <div class="textbox">
    <input type="password" name="password" placeholder="Пароль">
  </div>
  <input class="btn" type="submit" name="submit" value="Войти">
  </div>
</form>

Далее PHP поверка

<?php
if (isset($_POST['submit'])) {
  $user = $_POST['login'];
  $password = $_POST['password'];
  $user1 = trim($user);
  $user2 = stripslashes($user1);
  $user3 = strip_tags($user2);
  $user = htmlspecialchars($user3);
  $password1 = trim($password);
  $password2 = stripslashes($password1);
  $password3 = strip_tags($password2);
  $password = htmlspecialchars($password3);
  if (strlen($user) < 3) {
    echo "<script>alert('Короткий логин');</script>";
  }
  if (strlen($password) < 5) {
    echo "<script>alert('Короткий пароль');</script>";
  }
  $auth = mysqli_query($connect, "SELECT * FROM `users` WHERE `login` = '$user' AND `password` = '$password'");
  $result = mysqli_fetch_assoc($auth);
  if (count($result) == 0) {
    echo "<script>alert('Пользователь не найден');</script>";
  }
}
 ?>

Для того, чтобы сделать куки я после переменной if count поставил else.

if (count($result) == 0) {
    echo "<script>alert('Пользователь не найден');</script>";
  } else {
    setcookie('user', $user['login'], time() + 3600 * 24 * 7, "/");
  }

Но была ошибка, тогда я переместил строчку setcookie в самое начало файла. При правильных данных ошибки не было, но куки не отображалось.

<?php
if ($_COOKIE['user'] == '') {
  echo "Нет";
} else {
  echo "Есть";
}
 ?>

В тоже время поместив в начало print_r($_COOKIE); вывелась строка

Array
(
    [PHPSESSID] => цифры
)

Подскажите пожалуйста, в чём проблема?

READ ALSO
Проблема с xDeBug + PHPStorm + Apache2 + Ubuntu с альтернативными версиями PHP

Проблема с xDeBug + PHPStorm + Apache2 + Ubuntu с альтернативными версиями PHP

Использую несколько альтернативных версий phpТак же использую PHPSTORM

179
Как называются объекты для хранения данных (в которых только геттеры)?

Как называются объекты для хранения данных (в которых только геттеры)?

У нас в проекте используется большое кол-во различных классовЧасто в методах классов приходится возвращать набор каких-то данных, например:

106
Что за конструкиця в php

Что за конструкиця в php

более 6 лет работаю на php, и в первый раз увидел такую конструкцию в примерах кода на habr

85
Проблема с PHP кодом и базой данных MySQL

Проблема с PHP кодом и базой данных MySQL

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in D:\Downloads\OSPanel\domains\testru\apparates\poddomens\otzyvy

84