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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Абсолютное равенство (===)
Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012
Помог: 2 раз(а)
Здравствуйте! Отдохнули от меня?
Я вам еще вопросик принес
Почти всегда и везде используют неточное сравнение (==),
но вот скажем как лучше сделать при проверке md5 пароля?
Вот собственно пример кода
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
$pass всегда string, так что достаточно ==
А еще лучше strcmp (Добавление)
UNTRUSTED пишет:
Или вообще лучше так?
ни в коем случае. Хоть вероятность совпадения с ложным паролем 1 из 1000000, но все же такая вероятность есть. (Добавление)
но все же лучше === или strcmp
UNTRUSTED
Отправлено: 21 Марта, 2012 - 21:25:52
Частый гость
Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012
Помог: 2 раз(а)
Все догнал, спасибо
Я думал, что-то там типо по битам сравнивает, и можно как-нибудь подменить!
PHP.SU пишет:
Жёсткое сравнение с помощью === (сравнение по значению и по типу)
Ооо! Интересная штука, просто про нее еще пока ничего не знал...
PHP.NET пишет:
Подсказка
Не используйте функцию preg_match(), если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() либо strstr(), поскольку они выполнят эту задачу гораздо быстрее.
И там соответственно ссылки на strcmp нету
Возьму на вооружение.
Bio man
Отправлено: 21 Марта, 2012 - 21:32:30
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
В РНР нету такого типа, как бит. Есть булев тип, строка, целое, рациональное число (дробное, с плавающей точкой, называй как хочешь), массив, ресурс, объект, NULL, но бита нету.
UNTRUSTED
Отправлено: 21 Марта, 2012 - 21:34:12
Частый гость
Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012
Помог: 2 раз(а)
А еще лучше strcasecmp для регистронезависимой проверки.. Но это не для пароля, так как шанс что попадется такой же но в другом регистре 0,000001%
Bio man
Отправлено: 21 Марта, 2012 - 21:34:36
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
UNTRUSTED пишет:
И там соответственно ссылки на strcmp нету
Потому, что сравнение строк и поиск подстроки не как не похожи и не связаны.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Ну во-первых здесь уже сравниваются числа, а этот оператор из низкоуровневого Си, а сравнения строк это уже особеность php.
Во-вторых можно написать так
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.