Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2006, 10h47   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Par défaut Vérification d'un mail dans du PHP

Bonjour, Je suis admin reseau et je n'ai pas été formé sur le php et là on me demande de faire du php. Malheuresement, j'ai un petit soucis.
Mon boss m'a demandé de faire une vérif de l'adresse mail c'est a dire que si une personne entre comme adresse mail " blablabla" et bien celle ci ne doit pas s'enregistrer. J'ai trouvé un petit bou de code qui permet justement de faire cette vérification mais cela ne fonctionne pas !!
Voici le petit bou de code: ereg("^(.+)@(.+)\\.(.+)$", $variable)

et maintenant voici ou je l'ai placé:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
if(isset($_POST) && strlen($_POST['mail']) > 0 )
{
	if(isset($_POST['inscription']) == true)
	{
		$requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
		$bdd->query($requete_txt);
                          ("^(.+)@(.+)\\.(.+)$", $mail)
		hydrus_utils_alert("Votre adresse a bien été enregistrée");
		//print("Votre adresse a bien été enregistrée");
	}
	else if(isset($_POST['desinscription']) == true)
	{
	    $requete_txt = "DELETE FROM `mailing` WHERE `email` = '".$_POST['mail']."' AND `site_id` = '".$site_id."' ";
		$bdd->query($requete_txt);
		hydrus_utils_alert("Votre adresse a bien été supprimée");
		//print("Votre adresse a bien été supprimée");
	}
}
?>
pourriez vous m'aider s'il vous plait !!
Merci
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h00   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910


Tu peux préciser un peu en quoi ça ne fonctionne pas ? (erreur, reconnaît rien, ...).

Dans ton code je vois pas le ereg, il y a bien l'expression régulière mais seule, il manque un morceau ou bien ?
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h17   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Oups, un copier coller pas tip top !!
Voici le code et la il y a bien le "ereg"
bah en fait l'email invalide se mets toujours dans ma base donnée or je n'en ve pas si l'email n'est aps sous la forme toto@test.com

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
if(isset($_POST) && strlen($_POST['mail']) > 0 )
{
if(isset($_POST['inscription']) == true)
{
$requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
$bdd->query($requete_txt);
ereg("^(.+)@(.+)\\.(.+)$", $mail)
hydrus_utils_alert("Votre adresse a bien été enregistrée");
//print("Votre adresse a bien été enregistrée");
}
else if(isset($_POST['desinscription']) == true)
{
$requete_txt = "DELETE FROM `mailing` WHERE `email` = '".$_POST['mail']."' AND `site_id` = '".$site_id."' ";
$bdd->query($requete_txt);
hydrus_utils_alert("Votre adresse a bien été supprimée");
//print("Votre adresse a bien été supprimée");
}
}
?>
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h29   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
(bis, c'est le # au-dessus de la zone de saisie...).


C'est bizarre que ça se banane pas vu qu'il manque le point-virgule après le ereg...

Et ensuite ça me semble logique, tu fais le INSERT et après tu fais le test mais c'est trop tard...

Et le ereg est un test donc il faut regarder sa valeur de retour pour en faire quelque chose, là il est comme ça dans la nature il sert à rien.

En clair un truc dans le genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
if(isset($_POST['inscription']) == true)
{
if(ereg("^(.+)@(.+)\\.(.+)$", $mail))
{
   $requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
   $bdd->query($requete_txt);  
   hydrus_utils_alert("Votre adresse a bien été enregistrée");
//print("Votre adresse a bien été enregistrée");
}
else
// adresse non valide
}
pas testé...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h34   #5
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Je pense aussi qu'il est mal placé mais etant donné que je ne suis pas trop un expert et bien je ne sais pas trop ou le placé!! et dans le code que tu vois au dessus et bien effectivement j'ai oublié de mettre le ";".
Ou dois je le mettre ce "ereg" ??

Merci pour tout
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h35   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par toxic_37
Je pense aussi qu'il est mal placé mais etant donné que je ne suis pas trop un expert et bien je ne sais pas trop ou le placé!! et dans le code que tu vois au dessus et bien effectivement j'ai oublié de mettre le ";".
Ou dois je le mettre ce "ereg" ??

Merci pour tout
Oups j'ai édité pendant que tu postais
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h39   #7
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
je viens de voir mais cela ne fonctionne pas il me dit que j'ai une erreur qui est la suivante :

Parse error: syntax error, unexpected '}
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h46   #8
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Mauvaise nouvelle ! je n'ai plus l'erreur du "}" mais le code que tu m'a demandé d'inserer ne change rien...
Merci
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h50   #9
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
voici ce que je viens d'apporter au code mais pareil ce la ne fonctionne pas:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(isset($_POST['inscription']) == true)
{
if(ereg("^(.+)@(.+)\\.(.+)$", $mail));
{
   $requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
   $bdd->query($requete_txt);  
   hydrus_utils_alert("Votre adresse a bien été enregistrée");
//print("Votre adresse a bien été enregistrée");
}
	else if(isset($_POST['desinscription']) == true)
	{
	if(ereg("^(.+)@(.+)\\.(.+)$", $mail));
	{
	    $requete_txt = "DELETE FROM `mailing` WHERE `email` = '".$_POST['mail']."' AND `site_id` = '".$site_id."' ";
		$bdd->query($requete_txt);
		hydrus_utils_alert("Votre adresse a bien été supprimée");
		//print("Votre adresse a bien été supprimée");
	}
	}
?>
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 11h50   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par toxic_37
Mauvaise nouvelle ! je n'ai plus l'erreur du "}" mais le code que tu m'a demandé d'inserer ne change rien...
Merci
J'ai comme un doute là, tu initialises bien quelque part la variable $mail ? Sinon il faut faire le ereg sur $_POST['mail']...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 12h01   #11
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
nouvelle version du code et toujours pareil, il m'enregistre toujours ce fichu mail.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
if(isset($_POST) && strlen($_POST['mail']) > 0 )		
{
	if(isset($_POST['inscription']) == true)
	{
	if(ereg("^(.+)@(.+)\\.(.+)$", $_POST['mail']));
	{
   $requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
   $bdd->query($requete_txt);  
   hydrus_utils_alert("Votre adresse a bien été enregistrée");
//print("Votre adresse a bien été enregistrée");
	}
	}
 
 
else if(isset($_POST['desinscription']) == true)
	{
	if(ereg("^(.+)@(.+)\\.(.+)$", $_POST['mail']));
	{
	    $requete_txt = "DELETE FROM `mailing` WHERE `email` = '".$_POST['mail']."' AND `site_id` = '".$site_id."' ";
		$bdd->query($requete_txt);
		hydrus_utils_alert("Votre adresse a bien été supprimée");
		//print("Votre adresse a bien été supprimée");
	}
	}
 
}
?>
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 14h03   #12
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est sur qu'en mettant un point-virgule juste après le if ça va beaucoup moins bien marcher
En gros tu fais le if mais aucune action n'est associée dans le cas où le test renvoie true.
Donc enlève ces point-virgules et si l'expression régulière est bonne ça devrait passer sans problème...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 14h08   #13
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Merci pour TOUT !!!!Cela fonctionne a merveille
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 14h09   #14
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910


Bon courage pour la suite.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 14h26   #15
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
re..

une derniere petite question vous savez comment je peux faire pour avoir un petit message me disant "Attention veuillez saisir une adresse valide"?
Merci
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 14h55   #16
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 66
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : novembre 2006
Messages : 66
Points : 25
Points : 25
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if(isset($_POST) && strlen($_POST['mail']) > 0 )		
{
	if(isset($_POST['inscription']) == true)
	{
	if(ereg("^(.+)@(.+)\\.(.+)$", $_POST['mail']));
	{
   $requete_txt = "INSERT INTO `mailing` ( `email` , `site_id` ) VALUES ( '".$_POST['mail']."', '".$site_id."');";
   $bdd->query($requete_txt);  
   hydrus_utils_alert("Votre adresse a bien été enregistrée");
//print("Votre adresse a bien été enregistrée");
	} else {
hydrus_utils_alert("Veuillez entrer une adresse valide !");
	}
ksper92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2006, 16h29   #17
Invité de passage
 
Inscription : décembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2006
Messages : 18
Points : 3
Points : 3
Trop de la balle !! MERCI
toxic_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h16.


 
 
 
 
Partenaires

Hébergement Web