PHP

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

выдает ошибку:Parse error: syntax error, unexpected variable "$result" in C:\OSPanel\domains\12.loc\auth.php on line 10
php код:
<?php
$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
$name = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);

$pass = md5($pass."---");

$mysql = new mysqli('localhost', 'root', '---', '---')

$result = $mysql->query("SELECT * FROM 'users' WHERE 'login' = '$login' AND 'pass' = '$pass'")
$user = $result->fetch_assoc();
if(count($user) == 0){
echo "Такой пользователь не найден"
exit();
}

setcookie('user', $user['name'])



$mysql->close();

header('location: /')


?>
Ошибка указывает на то, что после создания нового экземпляра mysqli объекта не стоит точка с запятой. В PHP, каждая команда должна заканчиваться точкой с запятой, иначе интерпретатор не сможет понять, где кончается одна команда и начинается другая.

Исправленный код будет выглядеть так:
  
Также, примите во внимание, что прямое использование введенных пользователем данных в запросе SQL может представлять угрозу безопасности. Это называется SQL-инъекцией, и это одна из наиболее распространенных угроз безопасности в веб-приложениях. Рекомендуется использовать подготовленные выражения (prepared statements) или другие методы предотвращения SQL-инъекций.
Рубцовский Металлозавод
Рубцовский Металлозавод
56 728
Лучший ответ
Денис Филатов У вас тоже в запросе ошибка с кавычками
Сергей Савин Warning: Undefined array key "name" in C:\OSPanel\domains\12.loc\auth.php on line 4

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in C:\OSPanel\domains\12.loc\auth.php:11 Stack trace: #0 {main} thrown in C:\OSPanel\domains\12.loc\auth.php on line 11

Появляется ошибка
Воспользуйся прекрасным визуальным редактором - WYSIWYG Web Builder 18.
Все сделаешь за 15 минут.
Интересно где всех вас учат подобному:
 $pass = md5($pass."---"); 
Это даже не говнокод. Это абсолютно пещерное невежество.

FILTER_SANITIZE_STRING НЕ защищает от SQL-инъекций. Совсем не защищает. Подобная имитация защиты - даже не дыра в безопасности, а широко распахнутые перед хакером ворота.
Сергей Иванов
Сергей Иванов
91 572
одни ошибки вот и не работает
тебе же вчера всё сделали. ищи ответ в своей почте - он там должен быть.
Во первых:
 $mysql = new mysqli('localhost', 'root', '---', '---')  
 setcookie('user', $user['name'])  
 header('location: /')  
 $result = $mysql->query("SELECT * FROM 'users' WHERE 'login' = '$login' AND 'pass' = '$pass'")  
 echo "Такой пользователь не найден"  

Где точка с запятой в конце строки?


Во вторых - неправильные кавычки тут:
 SELECT * FROM 'users' WHERE 'login' = '$login' AND 'pass' = '$pass' 
Должны быть:
 SELECT * FROM `users` WHERE `login` = '$login' AND `pass` = '$pass'