Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 [2] 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как принудительно разавторизировать пользователя?, Уязвимость сессий
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Точно я неправильно написал.

Тогда наверно будет вот так
$query=mysql_query("SELECT * FROM aftorization WHERE mail='".mysql_real_escape_string($e_login)."'");

Так правильно?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 9 дней
Карма: 70




Функция mysql_query давно устарела и в новой версии PHP её уже нет.
Почитайте про PDO.

$query = $PDO->prepare("SELECT * FROM `aftorization` WHERE `mail` = :mail");
$query->execute([
':mail' => $e_login
]);


Вот только защита от SQL инъекций, не решает всех проблем.
И htmlspecialchars не решает всех проблем.
Например в поле с mail можно записать любую ахинею (нужно проверять что почта это почта).
В поле с именем можно записать имя длинной незнамосколько символов, такое имя не влезет в шаблон (нужно проверять длину и ограничивать длину в базе)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Catcher  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









не смешно
    -1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Цитата (Arh @ 3.03.2016 - 10:33)
Функция mysql_query давно устарела и в новой версии PHP её уже нет.
Почитайте про PDO.

$query = $PDO->prepare("SELECT * FROM `aftorization` WHERE `mail` = :mail");
$query->execute([
':mail' => $e_login
]);


Вот только защита от SQL инъекций, не решает всех проблем.
И htmlspecialchars не решает всех проблем.
Например в поле с mail можно записать любую ахинею (нужно проверять что почта это почта).
В поле с именем можно записать имя длинной незнамосколько символов, такое имя не влезет в шаблон (нужно проверять длину и ограничивать длину в базе)

У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы
и ограничил длину в базе данных.
Для почты тоже сделал регулярное выражение
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 9 дней
Карма: 70




Astin
Почитай еще про filter_var()


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8740
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 9 дней
Карма: 591




Цитата (Astin @ 4.03.2016 - 01:06)
У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы

То есть мой логин вне закона? rolleyes.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Цитата (killer8080 @ 4.03.2016 - 12:43)
Цитата (Astin @ 4.03.2016 - 01:06)
У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы

То есть мой логин вне закона? rolleyes.gif

Да
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Цитата (Arh @ 4.03.2016 - 10:08)
Astin
Почитай еще про filter_var()

Arh
Спасибо, очень интересная функция. Я для поля почты использую тоже регулярное
выражение. Я проверяю на корректность заполнения поля.

А вот немного не пойму как его в обычной форме использовать?

filter_var() нужно, я так понял использовать когда уже есть установленный email

Вот к примеру вот этот пример из мануала
<?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) указан верно.";
}
?>


Переменным уже заранее присваивается почта, и кстати, видно что данные переменных
$email_a и $email_b совершенно разные.

Эту функцию filter_var() думаю хорошо использовать когда уже заранее есть
готовые данные.

Если не правильно понял, то подправьте пожалуйста

_
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 9 дней
Карма: 70




Astin
Не понял про готовые данные.
Пользователь при регистрации вводит почту, ты перед тем как занести эти данные в базу, проверяешь их на соответствие, если они не подходят, говоришь пользователю что он что то не так ввёл.

if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
//сохраняем в базу
} else {
//ошибка
}


Твоя задача проста, записать в базу то, что там должно быть или не записывать вообще.
Потому что на почту "bogus" ты даже подтверждения выслать не сможешь.


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Цитата (Arh @ 5.03.2016 - 12:06)
Astin
Не понял про готовые данные.
Пользователь при регистрации вводит почту, ты перед тем как занести эти данные в базу, проверяешь их на соответствие, если они не подходят, говоришь пользователю что он что то не так ввёл.

if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
//сохраняем в базу
} else {
//ошибка
}


Твоя задача проста, записать в базу то, что там должно быть или не записывать вообще.
Потому что на почту "bogus" ты даже подтверждения выслать не сможешь.

Arh
Про готовые данные я имел в виду пример из мануала, то есть там что почта a,
что почта b имеют правильно введенные данные.
Я понял из примера мануала так что если делать проверку с filter_var можно ввести не корректный email если использовать конструкцию вашу. То есть в примере мануала
почта a и почта b имеют правильную валидацию.

Или получается, что если заранее не задать почту в переменной как в примере мануале
то ваша конструкция проверки почты будет проверять валидность введенной почты

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 9 дней
Карма: 70




Astin
Цитата
что почта a,
что почта b имеют правильно введенные данные.

Не, ты не понял примера.
В примере только первое условие сработает.
Посмотри еще раз filter_var()
Там после кода есть "Результат выполнения данного примера:"

Цитата
Или получается, что если заранее не задать почту в переменной как в примере мануале
то ваша конструкция проверки почты будет проверять валидность введенной почты

Тут я опять не понял.
Что значит задать заранее?

У тебя с формы пришли данные, их надо проверить, всё.

$данные = $пришли_с_формы;
if (правильные_данные($данные)) {
//ok
}


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 9 дней
Карма: 70




Astin
Цитата
то ваша конструкция

Тут как то голосование было как обращаться к кому нибудь на форуме (ты,Вы)
Выбрали "ты", потому что все свои и потому что "Вы" с большой буквы и "вы" с маленькой это разные вещи и бывает путаница =)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8740
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 9 дней
Карма: 591




Цитата (Astin @ 5.03.2016 - 07:10)

Цитата (killer8080 @ 4.03.2016 - 12:43)
Цитата (Astin @ 4.03.2016 - 01:06)
У себя на сайте я сделал для имени регулярное выражение где можно ввести только буквы

То есть мой логин вне закона?

Да

не справедливо ph34r.gif

Цитата (Astin @ 5.03.2016 - 07:32)
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "E-mail ($email_a) указан верно.";
}

тут правильней использовать filter_input, вместо filte_var, тогда отпадает необходимость проверки на существование переменной.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Цитата (Arh @ 5.03.2016 - 12:49)
Astin
Цитата
что почта a,
что почта b имеют правильно введенные данные.

Не, ты не понял примера.
В примере только первое условие сработает.
Посмотри еще раз filter_var()
Там после кода есть "Результат выполнения данного примера:"

Цитата
Или получается, что если заранее не задать почту в переменной как в примере мануале
то ваша конструкция проверки почты будет проверять валидность введенной почты

Тут я опять не понял.
Что значит задать заранее?

У тебя с формы пришли данные, их надо проверить, всё.

$данные = $пришли_с_формы;
if (правильные_данные($данные)) {
//ok
}

Arh
Еще раз спасибо за пояснение, видимо не внимательно прочитал про функцию
в мануале, впредь буду внимательней.

На счет "ты" "вы" понял
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




killer8080
Цитата
не справедливо ph34r.gif

Справедливо))) Я же не логин заношу в базу а ФИО

А не счет
Цитата
тут правильней использовать filter_input, вместо filte_var, тогда отпадает необходимость проверки на существование переменной.

Обязательно посмотрю функцию filter_input
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 [2] 3  Ответ в темуСоздание новой темыСоздание опроса