J'essaie de mettre en place un code pour valider le courrier électronique de l'entreprise. Lorsqu'un utilisateur saisit une adresse e-mail d'entreprise et de travail, les deux doivent être compatibles les uns avec les autres. Par exemple, si un utilisateur qui travaille chez QUT s'enregistre auprès du système lorsqu'il entre dans la société en tant que QUT, le domaine de messagerie doit être @ qut.edu.au. Le code ci-dessous montre la méthode que j'ai implémentée. Mais pour une raison quelconque, il y a une erreur logique dans le code qui donne "Vous devez entrer un email valide" (supposé être déclenché lorsque le nom de l'entreprise n'est pas inclus dans le domaine) .Mais il apparaît chaque fois qu'il s'exécute. Toute aide serait très appréciée. Je vous remercie!vérifier si le domaine de l'e-mail est compatible avec le nom de la société
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/abp/core/init.php';
include 'includes/head.php';
include 'includes/navigation.php';
$email = ((isset($_POST['email']))?sanitize($_POST['email']):'');
$email = trim($email);
$password = ((isset($_POST['password']))?sanitize($_POST['password']):'');
$password = trim($password);
$company_name = ((isset($_POST['company_name']))?sanitize($_POST['company_name']):'');
$company_name = trim($company_name);
$errors = array();
**$domain = array_pop(explode('@', $email));**
if($_POST){
// form validation
if(empty($_POST['email']) || empty($_POST['password'])){
$errors[] = 'You must provide email and password.';
}else {
//validlate email
**if (strpos($domain, $company_name) !== true) {**
$errors[] = 'You must enter a valid email.';
}else{
// check if email exist in the databse
$query = "SELECT * FROM users WHERE email=?";
$stmt = $db->prepare($query);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->store_result();
Peut-être que vous avez besoin 'strpos ', http://php.net/manual/fr/function.stripos.php Les tags Javascript et regex ne semblent pas pertinents ici sauf si vous cherchez d'autres approches? Mais que faire si le domaine de la société ne correspond pas au nom? – chris85
Lorsque vous utilisez strpos n'est-ce pas! == false que vous devriez utiliser? Est-ce que 'true' fonctionne comme prévu ici? – Andreas
Je suis également curieux de savoir pourquoi vous voulez forcer cet email et ce truc de l'entreprise. Je travaille dans une entreprise du nom de X, mais mon courriel est au nom plus commun Y à cause de l'histoire de l'entreprise. En fait, je ne pense pas que quiconque a un email avec X à mon travail ou n'importe où dans l'entreprise (c'est une très grande entreprise) – Andreas