В настоящее время у нас возникла проблема с формой бесплатной пробной версии в нашей компании. Мы хотим, чтобы регистрировались только le git компании, на данный момент существует много учетных записей Gmail и Hotmail и c, которые пользуются пробной версией, затем создают новые учетные записи, а затем получают еще одну бесплатную пробную версию.
Вот функция проверки электронной почты в контроллере модуля в PHP, просто интересно, как бы я отредактировал это, чтобы не разрешать учетные записи gmail и т. Д. c, поскольку я прыгнул на эту уже настроенную базу кода.
protected $allowAnonymous = ['index', 'do-something', 'render-form', 'submit-marketplace', 'validate-email', 'verify-code', 'create-company'];
public function actionValidateEmail()
{
$email = $_POST['email'];
$emailValid = false;
$baseUrl = $_SERVER["ourcompany_API_BASE_URL"]."/userByEmail/";
$apiKey = $_SERVER["ourcompany_API_KEY"];
$authHeader = $_SERVER["ourcompany_HEADER"];
$client = new \GuzzleHttp\Client();
try {
$response = $client->request('GET', $baseUrl . $email, [
'headers' => [
'content-type' => 'application/vnd.ourcompany.message-v1+json',
'accept' => 'application/vnd.ourcompany.message-v1+json',
'authorization' => $authHeader,
'x-api-key' => $apiKey,
]
]);
$emailValid = !($response->getStatusCode() == 200);
} catch (ClientException $e) {
// ClientException raised for 400 level errors
$emailValid = true;
}
return json_encode(array("valid" => $emailValid));
}
Тогда внешний вид выглядит так.
<form style="display: none;" method="post" id="create-company-form" action="/">
<input
type="hidden"
name="action"
value="ourcompany-in-action-module/ourcompany-in-action/create-company"
/>
<input id="companyName" type="text" name="companyName" value="" />
<input id="firstName" type="text" name="firstName" value="" />
<input id="lastName" type="text" name="lastName" value="" />
<input id="email" type="text" name="email" value="" />
<input id="mobile" type="text" name="mobile" value="" />
<input id="country" type="text" name="country" value="" />
<input id="timezone" type="text" name="timezone" value="" />
</form>
<form style="display: none;" method="post" id="validate-email-form" action="/">
<input
type="hidden"
name="action"
value="company-in-action-module/company-in-action/validate-email"
/>
<input id="emailValidationField" type="email" name="email" value="" />
</form>
Любая помощь будет принята с благодарностью, спасибо сообществу.