Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Le coin des codeurs » » [Résolu] - Prob de class, help me
2 pages [ 1 | 2 ]
Auteur[Résolu] - Prob de class, help me
hexagone
188     

hexagone
  Posté : 03-02-2005 22:58

bonjour bonjour,

ce nest pas tres utile, mais on ne sait jamais, ca peut sdervir a kk1...
alors voici une petite variante pour faire plus propre...(enfin jespere)
sauf erreur de ma part, ca devrait fonctionner pas trop mal..





<? 
//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& nbsp;
"espace":
              ;   $this
->$tab[] = $this->tableau("L'email ne doit pas contenir d'espace< /font>", FALSE);
              ;   break;
            
            case& nbsp;
"court":
              ;   $this
->$tab[] = $this->tableau("Adresse email trop courte", FALSE);
              ;   break;
            
            case& nbsp;
"long":
              ;   $this
->$tab[] = $this->tableau("Adresse email trop longue", FALSE);
              ;   break;
            
            case& nbsp;
"arobase":
              ;   $this
->$tab[] = $this->tableau("L'adresse email n'a pas d'arobase (@)< /font>", FALSE);
              ;   break;
            
            case& nbsp;
"interdit":
              ;   $this
->$tab[] = $this->tableau("Caractère(s) interdit dans l'email ($autre) ", FALSE);
              ;   break;
            
            case& nbsp;
"incorrect":
              ;   $this
->$tab[] = $this->tableau("Adresse email incorrect", FALSE);
              ;   break;
            
            case& nbsp;
"incorrect_domaine":
              ;   $this
->$tab[] = $this->tableau("Ce domaine ($autre) n'accepte pas les& nbsp;emails", FALSE);
              ;   break;

            //tou jours utile de gerer les cas imprevus
            defau lt:
              ;   $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& nbsp;.= 
"<br /><br />.: ".mysql_error()." :.";
            //&nb sp;si c'est une erreur mysql, on n'attend pa s la suite
            $this
->affiche_tableau() ;
            exit( 0);
            
        
}

        return $mes;

    
}
    
    // affichage du Tableau pour  ;la gestion d'erreur 
    function affiche_tableau()
    
{
        //on verifie qu'on& nbsp;a des erreurs avant d'afficher & quitter
        //on peut supprimer  le $this devant $tab en cas de comport ement etrange sur le comptage du nombre d'el ements.
        if ($count($this
< font color="#007700">->
$tab)>0)
        
{
            !incl ude!(
"header.php");

            echo& nbsp;
"<center><img src=\"images/stop.gif\" />";
            forea ch($this
->$tab as $elt) { echo $elt; }
            echo& nbsp;
"<br /><br /><a href=\"!javascript!:history.back()\">Retour</a>";
            echo& nbsp;
"</center>";

            !incl ude!(
"footer.php");

            exit( 1);
        
}

        return(TRUE)
    
}

}

?>





et la ptite fonction qui va bien.....




<? 
// 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);
}
?>





  Profil  www  
zyegfryed
2308       
 

zyegfryed
  Posté : 04-02-2005 09:49

Juste comme ça au passage, il existe un gestionnaire d'erreur intégré à PHP
Sinon, c'est un peu plus propre oui, mais une déclaration/initialisation de variables globales dans un constructeur, cela ne se fait pas...
Quel est le but de la classe au fait ? Un gestionnaire d'erreur pour un mail ?

  Profil  
hexagone
188     

hexagone
  Posté : 04-02-2005 10:07

Citation : zyegfryed 

Juste comme ça au passage, il existe un gestionnaire d'erreur intégré à PHP

oui, mais tout le monde ne le sait pas..

Citation : zyegfryed
une déclaration/initialisation de variables globales dans un constructeur, cela ne se fait pas...


=>ca doit etre pour ca que jai mis //??


        //??a koi servent ces 2 variables??
        global $conf_edito; $conf_edito = 0;  
        global $error; $error = 1;  



Citation : zyegfryed
Quel est le but de la classe au fait ? Un gestionnaire d'erreur pour un mail ? 

excellente question...

a+


  Profil  www  
zyegfryed
2308       
 

zyegfryed
  Posté : 04-02-2005 13:06

Sinon, PEAR offre aussi un gestionnaire d'erreur et un autre de logs. Donc selon ce qu'il y a à faire, autant ne pas ré-inventer la roue...

  Profil  
arnodu59
437      

arnodu59
  Posté : 05-02-2005 15:08

Citation : zyegfryed
Sinon, c'est un peu plus propre oui, mais une déclaration/initialisation de variables globales dans un constructeur, cela ne se fait pas...

Je n'ai pas mis de variables globales dans ma class.....

Citation : zyegfryed
Quel est le but de la classe au fait ? Un gestionnaire d'erreur pour un mail ?


Gestionnaire d'erreur pour la connexion utilisateur, la connexion au serveur SQL, les inscriptions, le forum etc...

En tout cas, merci à vous tous pour vos commentaire ;)

  Profil  www  
zyegfryed
2308       
 

zyegfryed
  Posté : 05-02-2005 15:35

Regardes du côté de PEAR alors. Il serait dommage de réinventer la roue

  Profil  
Aller à la page : [ 1 | 2 ]
Sauter à :

Temps : 0.0157 seconde(s)