Pages vues depuis 25/05/2001 : 109 438 681
Index du forum »» Le coin des codeurs »» [Résolu] - Prob de class, help me
if (strrpos($email,' ') > 0) { $erreur->email("espace", ""); }
if (strlen($email) < 6) { $erreur->email("court", ""); }
if (strlen($email) > 255) { $erreur->email("long", ""); }
if (!ereg("@", $email)) { $erreur->email("arobase", ""); }
if (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $email, $trouve)) { $erreur->email("interdit", implode(", ", $trouve[0])); }
if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i", $email)) { $erreur->email("incorrect", ""); }
list($compte, $domaine)=split("@", $email, 2);
if (!checkdnsrr($domaine, "MX")) { $erreur->email("incorrect_domaine", "$domaine");}
<?
class Erreur
{
function email($type_erreur, $autre) {
switch ($type_erreur) {
case "espace":
tableau("L'email ne doit pas contenir d'espace", FALSE);
exit;
case "court":
tableau("Adresse email trop courte", FALSE);
exit;
case "long":
tableau("Adresse email trop longue", FALSE);
exit;
case "arobase":
tableau("L'adresse email n'a pas d'arobase (@)", FALSE);
exit;
case "interdit":
tableau("Caractère(s) interdit dans l'email ($autre)", FALSE);
exit;
case "incorrect":
tableau("Adresse email incorrect", FALSE);
exit;
case "incorrect_domaine":
tableau("Ce domaine ($autre) n'accepte pas les emails", FALSE);
exit;
}
}
}
Message édité par : arnodu59
<?
// Tableau pour la gestion d'erreur
function tableau($message, $sql=false) {
unset($conf_edito);
$conf_edito = 0;
$error = 1;
if ($sql) {
!include!("header.php");
}
$mes = "<center><img src=\"images/stop.gif\" /><br /><br />";
$mes .= "<font color=\"#FF0000\">$message</font>";
if ($sql) {
$mes .= "<br /><br />.: ".mysql_error()." :.";
} else {
$mes .= "<br /><br /><a href=\"!javascript!:history.back()\">Retour</a>";
}
$mes .= "</center>";
echo $mes;
!include!("footer.php");
}
?>
<?
if (strrpos($email,' ') > 0) { $erreur->email("espace", ""); }
?>
<?
if (strlen($email) < 6) { $erreur->email("court", ""); }
?>
Message édité par : arnodu59
<?
// Vérifie la validité d'un email
function verifie_email($email){
global $erreur;
if (strrpos($email,' ') > 0) { $erreur->email("espace", ""); }
if (strlen($email) < 6) { $erreur->email("court", ""); }
if (strlen($email) > 255) { $erreur->email("long", ""); }
if (!ereg("@", $email)) { $erreur->email("arobase", ""); }
if (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $email, $trouve))
{
$erreur->email("interdit", implode(", ", $trouve[0]));
}
if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i", $email))
{
$erreur->email("incorrect", "");
}
list($compte, $domaine)=split("@", $email, 2);
if (!checkdnsrr($domaine, "MX")){
$erreur->email("incorrect_domaine", "$domaine");
}
return TRUE;
}
?>
<?
//fichier lib/erreur.class.php
class Erreur
{
var $tab; //stocke les messages
//constructeur de classe (il n'y a pas de destructeur en php)
function Erreur()
{
$this->$tab = array();
//??a koi servent ces 2 variables??
global $conf_edito; $conf_edito = 0;
global $error; $error = 1;
}
function email($type_erreur, $autre)
{
//kkes modifs:
//il est preferable dans un switch de gerer la sortie par des break.
//ca permet de faire d'autres action si necessaire (netoyage par exemple)
//ca permet aussi de faire renvoyer un code a la fonction.
//il est preferable de faire retourner un code a toute fonction (surtout dans une classe)
switch ($type_erreur)
{
case "espace":
$this->$tab[] = $this->tableau("L'email ne doit pas contenir d'espace", FALSE);
break;
case "court":
$this->$tab[] = $this->tableau("Adresse email trop courte", FALSE);
break;
case "long":
$this->$tab[] = $this->tableau("Adresse email trop longue", FALSE);
break;
case "arobase":
$this->$tab[] = $this->tableau("L'adresse email n'a pas d'arobase (@)", FALSE);
break;
case "interdit":
$this->$tab[] = $this->tableau("Caractère(s) interdit dans l'email ($autre)", FALSE);
break;
case "incorrect":
$this->$tab[] = $this->tableau("Adresse email incorrect", FALSE);
break;
case "incorrect_domaine":
$this->$tab[] = $this->tableau("Ce domaine ($autre) n'accepte pas les emails", FALSE);
break;
//toujours utile de gerer les cas imprevus
default:
$this->$tab[] = $this->tableau("Erreur inconnue", FALSE);
return(FALSE);
}
return(TRUE);
}
// Tableau pour la gestion d'erreur
function tableau($message, $sql=false)
{
$mes .= "<br /><br /><font color=\"#FF0000\">$message</font>";
if ($sql) {
$mes .= "<br /><br />.: ".mysql_error()." :.";
// si c'est une erreur mysql, on n'attend pas la suite
$this->affiche_tableau() ;
exit(0);
}
return $mes;
}
// affichage du Tableau pour la gestion d'erreur
function affiche_tableau()
{
//on verifie qu'on a des erreurs avant d'afficher & quitter
//on peut supprimer le $this devant $tab en cas de comportement etrange sur le comptage du nombre d'elements.
if ($count($this->$tab)>0)
{
!include!("header.php");
echo "<center><img src=\"images/stop.gif\" />";
foreach($this->$tab as $elt) { echo $elt; }
echo "<br /><br /><a href=\"!javascript!:history.back()\">Retour</a>";
echo "</center>";
!include!("footer.php");
exit(1);
}
return(TRUE)
}
}
?>
<?
// Vérifie la validité d'un email
function verifie_email($email){
//formulaire de contact => on peut envisager un chargement ponctuel de la classe
//=> a eviter pour des travaux plus frequent/lourd.
if (!class_exists('Erreur')) {
!include!('lib/erreur.class.php');
}
//static //creation de lelement une seule fois lors du premier chargement de verifie_email
//on aurait pu metre un static, mais pour quoi faire?
$erreur = new Erreur();
if (strrpos($email,' ') > 0) { $erreur->email("espace", ""); }
if (strlen($email) < 6) { $erreur->email("court", ""); }
if (strlen($email) > 255) { $erreur->email("long", ""); }
if (!ereg("@", $email)) { $erreur->email("arobase", ""); }
if (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $email, $trouve))
{
$erreur->email("interdit", implode(", ", $trouve[0]));
}
if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i", $email))
{
$erreur->email("incorrect", "");
}
list($compte, $domaine)=split("@", $email, 2);
if (!checkdnsrr($domaine, "MX"))
{
$erreur->email("incorrect_domaine", "$domaine");
}
//on peut afficher les erreurs,
//s'il y en a, la fonction termine le script par un exit.
$erreur->affiche_tableau();
//sinon on renvoie true
return(TRUE);
}
?>
//??a koi servent ces 2 variables??
global $conf_edito; $conf_edito = 0;
global $error; $error = 1;