выдает ошибку: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: /')
?>
PHP
Не работает авторизация на php
Ошибка указывает на то, что после создания нового экземпляра mysqli объекта не стоит точка с запятой. В PHP, каждая команда должна заканчиваться точкой с запятой, иначе интерпретатор не сможет понять, где кончается одна команда и начинается другая.
Исправленный код будет выглядеть так:
Исправленный код будет выглядеть так:
Также, примите во внимание, что прямое использование введенных пользователем данных в запросе SQL может представлять угрозу безопасности. Это называется SQL-инъекцией, и это одна из наиболее распространенных угроз безопасности в веб-приложениях. Рекомендуется использовать подготовленные выражения (prepared statements) или другие методы предотвращения SQL-инъекций.Воспользуйся прекрасным визуальным редактором - WYSIWYG Web Builder 18.
Все сделаешь за 15 минут.
Все сделаешь за 15 минут.
Интересно где всех вас учат подобному:
FILTER_SANITIZE_STRING НЕ защищает от SQL-инъекций. Совсем не защищает. Подобная имитация защиты - даже не дыра в безопасности, а широко распахнутые перед хакером ворота.
$pass = md5($pass."---");
Это даже не говнокод. Это абсолютно пещерное невежество.FILTER_SANITIZE_STRING НЕ защищает от SQL-инъекций. Совсем не защищает. Подобная имитация защиты - даже не дыра в безопасности, а широко распахнутые перед хакером ворота.
одни ошибки вот и не работает
тебе же вчера всё сделали. ищи ответ в своей почте - он там должен быть.
Во первых:
Где точка с запятой в конце строки?
Во вторых - неправильные кавычки тут:
$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'
Похожие вопросы
- Как сделать регистрацию и авторизацию на php без mysql. Напишите пример записи
- Пишу авторизацию (php). Куки не работают
- PHP - Сойдёт ли авторизация, или менять?
- Авторизация php и регистрация проблемы с хэшэм
- Почему код авторизации и регистрации на PHP, написанный 3 года назад в видео на ютубе, сейчас не работает? И как быть?
- Не работает PHP include на хостинге
- Хочу работать php программистом. Но как узнать - готов я или нет? На php же можно очень много написать, в отличие от JS.
- Здравствуйте. Я в замешательстве. У меня php система, и я еле разобрался как заставить её работать, но теперь у меня...
- PHP Polling ChatGPT
- оцените мою первую регистрацию и авторизацию
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
Появляется ошибка