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

155
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

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

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

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

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

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

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

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

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

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

135