PHP: Как нам сделать сравнение по домену и доменной части электронной почты
|Занимался я одним проектиком и нужно было сделать человеку функцию сравнения email’а с доменом на PHP. То есть, сравнивается доменная зона email’а (прим.: test@test.com с доменом test.com, нам надо сравнить @test.com и test.com). Пришел я к весьма простой и удобной вещи в PHP: explode и деление на части адреса электронной почты (я отделил test @ и test.com).
А теперь в вкратце как это делалось:
база данных у нас одна, таблицы две — первая с пользователями, вторая — с доменами. В таблице с пользователями, конечно же лежат email адреса, во второй — доменные имена и нам надо это все сравнивать.
1) Обрезаем email‘ы:
Сразу мы забиваем под email’ы переменную (мне так проще) —
$mail = mysql_query(‘SELECT emails FROM users’); Если результатов будет получается много, то надо будет mysql_fetch_array(); еще использовать, но мы пока ориентируемся на 1 результат.
2) Далее, добавляем переменную которая будет отвечать за разделение (делимитер) —
$part = explode(‘@’, «$mail»); (тут у нас получается: разделяем все email’ы по делимитеру @, отвечает за это переменная $part).
3) Теперь выводим результат, что отделили — по частям:
$domain = «@» . $parts[1]; — $domain это наши домены который получим из почт, а второй кусок после =, это значит что выводится часть1 (т.е. домены) после делимитера @. Далее берем просто переменную $mail и в нашем запросем в базу данных уже уже сравниваем что б domain = $mail было, если условие совпадает — скрипт работает, иначе die().
Может быть интересно: