Тогда наверно будет вот так
$query=mysql_query("SELECT * FROM aftorization WHERE mail='".mysql_real_escape_string($e_login)."'");
Так правильно?
$query=mysql_query("SELECT * FROM aftorization WHERE mail='".mysql_real_escape_string($e_login)."'");
$query = $PDO->prepare("SELECT * FROM `aftorization` WHERE `mail` = :mail");
$query->execute([
':mail' => $e_login
]);
Цитата (Arh @ 3.03.2016 - 10:33) |
Функция mysql_query давно устарела и в новой версии PHP её уже нет. Почитайте про PDO. $query = $PDO->prepare("SELECT * FROM `aftorization` WHERE `mail` = :mail"); Вот только защита от SQL инъекций, не решает всех проблем. И htmlspecialchars не решает всех проблем. Например в поле с mail можно записать любую ахинею (нужно проверять что почта это почта). В поле с именем можно записать имя длинной незнамосколько символов, такое имя не влезет в шаблон (нужно проверять длину и ограничивать длину в базе) |
Цитата (Astin @ 4.03.2016 - 01:06) |
У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы |
Цитата (killer8080 @ 4.03.2016 - 12:43) | ||
То есть мой логин вне закона? ![]() |
Цитата (Arh @ 4.03.2016 - 10:08) |
Astin Почитай еще про filter_var() |
<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "E-mail ($email_a) указан верно.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "E-mail ($email_b) указан верно.";
}
?>
if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
//сохраняем в базу
} else {
//ошибка
}
Цитата (Arh @ 5.03.2016 - 12:06) |
Astin Не понял про готовые данные. Пользователь при регистрации вводит почту, ты перед тем как занести эти данные в базу, проверяешь их на соответствие, если они не подходят, говоришь пользователю что он что то не так ввёл. if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) { Твоя задача проста, записать в базу то, что там должно быть или не записывать вообще. Потому что на почту "bogus" ты даже подтверждения выслать не сможешь. |
Цитата |
что почта a, что почта b имеют правильно введенные данные. |
Цитата |
Или получается, что если заранее не задать почту в переменной как в примере мануале то ваша конструкция проверки почты будет проверять валидность введенной почты |
$данные = $пришли_с_формы;
if (правильные_данные($данные)) {
//ok
}
Цитата |
то ваша конструкция |
Цитата (Astin @ 5.03.2016 - 07:10) |
Цитата (killer8080 @ 4.03.2016 - 12:43) Цитата (Astin @ 4.03.2016 - 01:06) У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы То есть мой логин вне закона? Да |
Цитата (Astin @ 5.03.2016 - 07:32) |
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) { echo "E-mail ($email_a) указан верно."; } |
Цитата (Arh @ 5.03.2016 - 12:49) | ||||
Astin
Не, ты не понял примера. В примере только первое условие сработает. Посмотри еще раз filter_var() Там после кода есть "Результат выполнения данного примера:"
Тут я опять не понял. Что значит задать заранее? У тебя с формы пришли данные, их надо проверить, всё. $данные = $пришли_с_формы; |
Цитата |
не справедливо ph34r.gif |
Цитата |
тут правильней использовать filter_input, вместо filte_var, тогда отпадает необходимость проверки на существование переменной. |