Interdire une adresse e-mail

Petit nouveau ! | 9 Messages

01 sept. 2005, 19:15

Bonjour tout le monde,

Je dois, afin de sécurisé un formulaire, interdire toutes les adresses e-mail sur tous les champs. (nom, prénom, tel...)

Controle du type:
if (empty($frm["prenom"])) {
		$erreurs["prenom"] = true;
		$msg["prenom"] = " Veuillez saisir votre prénom!";

} 
En ce qui concerne l'a vérification de l'adresse e-mail, je dois interdire tout ce qui est devant le nom de domaine @monsite.com.

Controle du type:
if (empty($frm["email"])) {
		$erreurs["email"] = true;
		$msg["email"] = " Veuillez saisir votre adresse e-mail!";
	}
	elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$frm["email"])) {
		$erreurs["email"] = true;
		$msg["email"] = " Désolé, mais le format de l'adresse e-mail n'est pas valable!";
	}

	elseif  ((mysql_num_rows(mysql_query("SELECT 1 FROM utilisateurs WHERE email = '".$frm["email"]."'")) > 0)
) {
		$erreurs["email"] = true;
		$msg["email"] = " Cette adresse e-mail est utilisée!";

} 
Est-ce que quelqu'un peut m'aider ou me donner l'adresse d'un tutoriel ?

Merci d'avance pour toutes vos réponses.

p.s. C'est très urgent...

Mammouth du PHP | 19672 Messages

01 sept. 2005, 21:19

Je ne comprends pas bien le problème. Pour interdire les adresses de courriel dans les autres champs, utilise la même expression régulière qui te sert à valider la case où on doit au contraire la trouver. Si tu la trouves ailleurs, tu génères un message d'erreur.

Pour la validation de l'adresse de courriel, je ne saisis pas trop la subtilité :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 9 Messages

01 sept. 2005, 21:34

Premier problème, j'ai retourné le code dans tous sens et pas moyen de trouver...
Si tu as la solution.... :oops:

Deuxième probleme, il y a un petit malin qui a réussi plusieurs fois a ce loguer en tant qu'administrateur (heureusement il n'a rien fait... pour l'instant...) sur un site que j'ai fait il y a assez longtemps en injectant une adresse e-mail.
Mais il est obligé d'utiliser le même nom de domaine (n'importe_quoi@monsite.com) pour le faire... En interdisant le arobasse et le nom de domaine, je le stope...

As-tu compris mes problèmes ?

Merci pour vos réponses

Mammouth du PHP | 19672 Messages

01 sept. 2005, 21:38

Oui, mieux, mais comme je t'ai dit: tu peux soit utiliser la même expression réglière que celle servant à valider le courriel. Quand tu valides, tu vérifie par exemple que le champ n'est pas vide ET qu'elle ne correspond pas à un schéma de courriel, du genre:
<?php
//...
if(!empty($nom) && (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$nom)))
{
    // Là, c'est OK
}
else
{
    // Là, soit le champ est vide, soit c'est une adresse de courriel.
}
//...
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 9 Messages

01 sept. 2005, 22:24

Cela ne fonctione pas Cyrano...

Ce que j'aimerai c'est qu'il ne passe pas le controle si c'est une adresse e-mail et ci c'est vide mais ici ca passe le controle QUE si c'est une adresse e-mail...

Mammouth du PHP | 19672 Messages

01 sept. 2005, 22:30

Je comprends vite, mais parfois, il faut m'expliquer longtemps : Tu veux quoi finalement : que ton champ soit une adresse de courriel ou non ?

Un petit minimum de logique, c'est pourtant pas sorcier, tu as tous les éléments dans les mains là :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 9 Messages

01 sept. 2005, 22:30

non désolé ca passe le controle avec un nom ou avec une adresse e-mail... mais il ne faut surtout pas que l'on puisse mettre une adresse e-mail...

Petit nouveau ! | 9 Messages

01 sept. 2005, 22:34

oui un peut de logique... ou peut on en acheter a cette heure ?
Je pense que je suis un peut fatigué... :oops:
Je vais reprendre tout ca demain a tete reposé....

En tous les cas je te remercie Cyrano :lol:

Petit nouveau ! | 9 Messages

02 sept. 2005, 21:12

Non décidément je n'y arrive pas...

Mammouth du PHP | 19672 Messages

02 sept. 2005, 22:58

Quand tu auras réussi à expliquer clairement ce que tu veux faire, je réussirai probablement à comprendre et je pourrai te répondre efficacement, mais là, je sais plus trop ce que tu cherches exactement à faire. :-k

Et si tu arrives à expliquer correctement ton problème, c'est que tu l'auras toi même bien identifié, c'est plus de la moitié de la solution ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 9 Messages

03 sept. 2005, 12:50

Dans un premier temps, j'aimerai que l'on ne puisse pas mettre une adresse e-mail (du type: [email protected])dans un champ texte normal comme par ex.: nom...

Quel test je dois faire?

Mammouth du PHP | 19672 Messages

03 sept. 2005, 13:22

Je me demande si tu as bien suivi mes précédentes explications, j'ai déjà répondu à cette question. :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: