Page 1 sur 1

Interdire une adresse e-mail

Posté : 01 sept. 2005, 19:15
par karushi
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...

Posté : 01 sept. 2005, 21:19
par Cyrano
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

Posté : 01 sept. 2005, 21:34
par karushi
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

Posté : 01 sept. 2005, 21:38
par Cyrano
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.
}
//...
?>

Posté : 01 sept. 2005, 22:24
par karushi
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...

Posté : 01 sept. 2005, 22:30
par Cyrano
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

Posté : 01 sept. 2005, 22:30
par karushi
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...

Posté : 01 sept. 2005, 22:34
par karushi
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:

Posté : 02 sept. 2005, 21:12
par karushi
Non décidément je n'y arrive pas...

Posté : 02 sept. 2005, 22:58
par Cyrano
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 ;)

Posté : 03 sept. 2005, 12:50
par karushi
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?

Posté : 03 sept. 2005, 13:22
par Cyrano
Je me demande si tu as bien suivi mes précédentes explications, j'ai déjà répondu à cette question. :-k