В настоящее время у меня проблема с этой функцией. Мне нужна функция, которая проверяет, доступен ли адрес электронной почты или нет. Я попробовал добавить еще один метод проверки, но он не работает. Если у кого-то есть другой способ проверить, доступно ли электронное письмо или нет, дайте мне знать.
Вот код, который я написал, но мне интересно, почему он не работает и как я могу решить проблему.
function checkGmail($mail){
echo "[Gmail] Testing if exists: $mail\n";
flush();
$ch = curl_init();
// First: Get initial page to extract XSRF token
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/signin/v2/identifier');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/gmail_cookies.txt');
$res = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if($err){
echo "[Gmail] Network error, allowing\n";
flush();
return true;
}
// Extract XSRF token
if(preg_match('/"_XSRF_TOKEN"\s*,\s*"([^"]+)"/', $res, $m)){
$xsrf = $m[1];
} else if(preg_match('/name="_xsrf_token"\s+value="([^"]+)"/', $res, $m)){
$xsrf = $m[1];
} else {
$xsrf = '';
}
// Now check if email exists using the identifier endpoint
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/signin/v2/i ... rviceLogin');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
]);
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/gmail_cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/gmail_cookies.txt');
$postData = 'identifier='.$mail.'&_xsrf_token='.$xsrf;
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$res2 = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err2 = curl_error($ch);
curl_close($ch);
// Analyze response
if($err2){
echo "[Gmail] Error, allowing: $err2\n";
flush();
return true;
}
// Check response for existence indicators
if(stripos($res2, 'Could not find your Google Account') !== false ||
stripos($res2, 'account does not exist') !== false ||
stripos($res2, 'no account found') !== false){
echo "[Gmail] ✓ Available (not found)\n";
flush();
return true;
}
if(stripos($res2, 'password') !== false ||
stripos($res2, 'enter your password') !== false ||
stripos($res2, 'verify it\'s you') !== false){
echo "[Gmail] ✗ Taken (account found)\n";
flush();
return false;
}
// If we get HTML form asking for password = account exists
if(stripos($res2, '
Подробнее здесь: https://stackoverflow.com/questions/798 ... ion-in-php
Проблема с функцией проверки электронной почты в PHP ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1767281425
Anonymous
В настоящее время у меня проблема с этой функцией. Мне нужна функция, которая проверяет, доступен ли адрес электронной почты или нет. Я попробовал добавить еще один метод проверки, но он не работает. Если у кого-то есть другой способ проверить, доступно ли электронное письмо или нет, дайте мне знать.
Вот код, который я написал, но мне интересно, почему он не работает и как я могу решить проблему.
function checkGmail($mail){
echo "[Gmail] Testing if exists: $mail\n";
flush();
$ch = curl_init();
// First: Get initial page to extract XSRF token
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/signin/v2/identifier');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/gmail_cookies.txt');
$res = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if($err){
echo "[Gmail] Network error, allowing\n";
flush();
return true;
}
// Extract XSRF token
if(preg_match('/"_XSRF_TOKEN"\s*,\s*"([^"]+)"/', $res, $m)){
$xsrf = $m[1];
} else if(preg_match('/name="_xsrf_token"\s+value="([^"]+)"/', $res, $m)){
$xsrf = $m[1];
} else {
$xsrf = '';
}
// Now check if email exists using the identifier endpoint
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/signin/v2/identifier?service=accountsettings&continue=https://myaccount.google.com&osid=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
]);
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/gmail_cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/gmail_cookies.txt');
$postData = 'identifier='.$mail.'&_xsrf_token='.$xsrf;
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$res2 = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err2 = curl_error($ch);
curl_close($ch);
// Analyze response
if($err2){
echo "[Gmail] Error, allowing: $err2\n";
flush();
return true;
}
// Check response for existence indicators
if(stripos($res2, 'Could not find your Google Account') !== false ||
stripos($res2, 'account does not exist') !== false ||
stripos($res2, 'no account found') !== false){
echo "[Gmail] ✓ Available (not found)\n";
flush();
return true;
}
if(stripos($res2, 'password') !== false ||
stripos($res2, 'enter your password') !== false ||
stripos($res2, 'verify it\'s you') !== false){
echo "[Gmail] ✗ Taken (account found)\n";
flush();
return false;
}
// If we get HTML form asking for password = account exists
if(stripos($res2, '
Подробнее здесь: [url]https://stackoverflow.com/questions/79858652/problem-with-email-checker-function-in-php[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия