PHP/MySQL | Создание авторизации и ошибка 500
Здравствуйте. Делаю простую авторизацию, и вот такая штука у меня обрабатывает форму входа.
Если не вводить какое-то поле, то оно скажет, что вы ничего не ввели, а если ввести все правильно, то бросит тебя на ошибку 500. Где я допустил ошибку?Заранее спасибо
<?php
session_start();
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($email) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$email = stripslashes($email);
$email = htmlspecialchars($email);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$email = trim($email);
$password = trim($password);
// подключаемся к базе
include ("config_db.php");
$conn->exec("SELECT * FROM users WHERE mail='$email'"); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = PDOStatement::fetch($result);
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Извините, введённый вами login или пароль неверный.");
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['mail']=$myrow['mail'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
}
else {
//если пароли не сошлись
exit ("Извините, введённый вами login или пароль неверный.");
}
}
?>
Если не вводить какое-то поле, то оно скажет, что вы ничего не ввели, а если ввести все правильно, то бросит тебя на ошибку 500. Где я допустил ошибку?Заранее спасибо
Один код, большая ошибка
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Добрый день данная ошибка может много чего означать.
Прочитайте тут
Прочитайте тут
Переменная $result не понятно откуда,
Для отладки используй как минимум, отображение ошибок + var_dump();
+ Читаем, что возвращает exec()
http://php.net/manual/ru/pdo.exec.php
________
посл. ред. 18.10.2018 в 12:28; всего 2 раз(а); by Avenax
Для отладки используй как минимум, отображение ошибок + var_dump();
+ Читаем, что возвращает exec()
http://php.net/manual/ru/pdo.exec.php
________
посл. ред. 18.10.2018 в 12:28; всего 2 раз(а); by Avenax
Avenax (18.10.2018 в 12:16)
Один код, большая ошибка
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Один код, большая ошибка
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Нет
ADev, тогда стоит открыть книгу и изучить элементарное
ADev (18.10.2018 в 12:35)
Avenax (18.10.2018 в 12:16)
Один код, большая ошибка
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Нет
Avenax (18.10.2018 в 12:16)
Один код, большая ошибка
Возьмём к примеру начало:
if (isset($_POST['mail'])) { $email = $_POST['mail']; if ($email == '') { unset($email);} }
Ты хоть понимаешь, что ты написал?
Нет
Если запрос пост mail есть, то ты его объявляешь в переменную $email, и тут же если переменная $email пуста , то ты ее убиваешь.
Логику включи