Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Уникальный E-mail адрес
Форумы портала PHP.SU » Разное » Прочее » Уникальный E-mail адрес

Страниц (2): [1] 2 »
 

1. DeepVarvar - 04 Июня, 2015 - 10:57:47 - перейти к сообщению
Мммм.. Продолжим будить интерес к некоторым нюансам в разработке.
Собсно опрос.
И не сказать что он с подковыркой.

Давайте-ка просто, кто знает в чем прикол, тот зайдет и напишет.
А кто не знает -- зайдет, прочитает и узнает.
2. Panoptik - 04 Июня, 2015 - 11:05:16 - перейти к сообщению
нужно еще ж проверить айди текущего пользователя, то есть добавить


(Добавление)
хотя при регистрации это делать лшние, но для универсальности проверки потом при апдейте профиля получается удобней, ибо даже если пользователь будет новым и ид будет 0 то проверка сработает правильно
3. DeepVarvar - 04 Июня, 2015 - 11:08:49 - перейти к сообщению
Речь именно о регистрации.
Даже еще конкретнее -- только о проверке уникальности адреса.
4. LIME - 04 Июня, 2015 - 11:09:23 - перейти к сообщению
Я не знаю в чем прикол, но предположу что можно индексировать дополнительным целочисленным полем с хэшем от email
И проверять оба на случай коллизий
Есть еще несколько вариантов, но не везде применимых
5. Panoptik - 04 Июня, 2015 - 11:14:07 - перейти к сообщению
пересмотрел валидатор из фреймворка
http://www.yiiframework.com/doc/api/1.1/CUniqueValidator, которым пользуюсь уже несколько лет и нашел подковырку
а именно case sensitive
6. LIME - 04 Июня, 2015 - 11:14:38 - перейти к сообщению
Ну или вообще не делать выборку, а вставлять и ждать ошибку.
(Добавление)
Panoptik пишет:
а именно case sensitive
это зависит от collation
И если подковырка в этом, то плохо поставлена задача
7. DeepVarvar - 04 Июня, 2015 - 11:17:16 - перейти к сообщению
Подковырка не только в этом.
Точнее кейс сенситив это мелочь по сравнению с тем, в чем на самом деле подковырка.
8. Panoptik - 04 Июня, 2015 - 11:18:21 - перейти к сообщению
ну согласитесь что вы в первую очередь не лезете в базу и не проверяете колейшн когда получаете задачку добавить функционал в чужом проекте и лучше все же избежать граблей в будущем и учесть этот момент не смотря на обстоятельства
(Добавление)
ну проблема №2 - длина поля, может принести сюрпризы
(Добавление)
и еще я не совсем понимаю, тут проблема инъекции если емейл чистяком вставляется в запрос, но мы же ведь все подумали что он будет вставлен в виде параметра

CODE (SQL):
скопировать код в буфер обмена
  1.  SELECT (1) ex FROM users WHERE email = :email
9. LIME - 04 Июня, 2015 - 11:20:42 - перейти к сообщению
Омг
10. DeepVarvar - 04 Июня, 2015 - 11:28:04 - перейти к сообщению
Все не в ту степь.
11. Panoptik - 04 Июня, 2015 - 11:45:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. /** @var $dbh PDO */
  2. $sth = $dbh->prepare('DELETE FROM users WHERE email = :email');
  3. $sth->bindParam(':email', 'test@example.com', PDO::PARAM_STR, 120);
  4. if($sth->execute()->rowCount()) {
  5.    echo 'Данный email был занят, но уже можете спокойно продолжать регистрацию :)';
  6. }
12. DeepVarvar - 04 Июня, 2015 - 11:56:34 - перейти к сообщению
Мило ))
Тогда еще и это: http://xkcd[dot]ru/327/
13. LIME - 04 Июня, 2015 - 11:57:54 - перейти к сообщению
DeepVarvar не лезет из головы
Давай колись и пусть это не будет какая-то фигня
(Добавление)
ГыгыгыУлыбка
14. DeepVarvar - 04 Июня, 2015 - 12:03:09 - перейти к сообщению
Ну, своими словами я буду долго это аписнять.
Это касается стандартов RFC и реальной жизни.

Дам сцыль на швабру: http://habrahabr[dot]ru/post/224623/
15. LIME - 04 Июня, 2015 - 12:14:57 - перейти к сообщению
Не очень понял как вопрос связан с статьей
Или ктото должен был сказать что сначала проверяет регуляркой?
Смысл ссылки для подтверждения в том числе чтоб не париться валидностью
Хотя и это к делу не относится

 

Powered by ExBB FM 1.0 RC1