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

Регистрация
26 Май 2013
Сообщения
61
Репутация
0
Спасибо
1
Монет
0
выдает ошибку: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: /')





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

Исправленный код будет выглядеть так: Также, примите во внимание, что прямое использование введенных пользователем данных в запросе SQL может представлять угрозу безопасности. Это называется SQL-инъекцией, и это одна из наиболее распространенных угроз безопасности в веб-приложениях. Рекомендуется использовать подготовленные выражения (prepared statements) или другие методы предотвращения 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'
 
тебе же вчера всё сделали. ищи ответ в своей почте - он там должен быть.
 
Назад
Сверху