Bonsoir,
un peu d'histoire:
Jai appris le php seul avec des tutos sur le net, j'ai pas mal coder pour le plaisir et j'en suis forcement arrivé a la POO.

sauf que je n'ai le retour de personne sur mes codes... donc je sais pas si je code "bien".

si quelqu'un pouvais regarder et me dire ce quil en pense, et eventuellement comment amméliorer la chose. pas forcement sur celle la en particulier mais aussi de maniere général.

j'en demande beaucoup, donc merci d'avance

Mathieu
ps: code trop gros long pour etre coloré, sorry.
code sources:
class_messagerie.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/* classe permettant d'envoyer des messages interne sur un site
 * les destinataires peuvent etre des individuels avec leur id sous forme de tableau($dest)
 * et /ou une liste de difusion ($dest_list) transformer en tableau par la function
 * 
 */
 
 
 class messagerie{
     var $level;
     var $id_membre;
     var $message;
     var $sujet;
     var $email;
     var $array_dest;
     var $site;
     var $i="0";
 
     function messagerie($host,$user,$passe,$db,$pseudo,$site){
         //connection
     $cx =    mysql_connect($host,$user,$passe);
            mysql_select_db($db,$cx);
    //verification que le membre existe (superflu, mais tans qua faire)
    $test_pseudo = mysql_query("SELECT id_membre FROM membre_info WHERE pseudo='$pseudo' AND actif='oui'");
    $test = mysql_fetch_array($test_pseudo);
    //si le membre est enregister et actif on declare sont id
    if(isset($test['id_membre']) AND is_numeric($test['id_membre']))
    $this->id_membre = $test['id_membre'];
    $this->pseudo = $pseudo;
    //un else aurais suffit mais bon
    if(!isset($test['id_membre']) OR !is_numeric($test['id_membre'])){
        echo '<div id="erreur">Vous n\'avez pas acces a cette fonction</div>';
        exit();
        }
     }
 
     function clean($str){
    //Supprime les balises HTML et PHP d'une chaîne
        $str=strip_tags($str);
    //Convertit tous les caractères éligibles en entités HTML et en utf8
        $str=htmlentities($str,ENT_QUOTES,'utf-8');
    //Supprime les espaces en début et fin de chaîne
        $str=trim($str);
    //echappe les guillemets
        $str=addslashes($str);
    //minuscule
        $str=strtolower($str);
        $str= nl2br($str);
    return($str);
    }//fin de function clean
 
 
    //insertion des messages dans la base
     function insert($message,$sujet,$destinataire,$pseudo,$id_membre){
         $req_rep ='insert into `membre_message` values'; 
        $req_rep .= '("","'.$destinataire.'", "'.$id_membre.'","'.$pseudo.'","'.date("Y-m-d").'", "'.date("G:i:s").'", 
"'.$sujet.'", "'.$message.'","non")';
 
        $quer_rep=mysql_query($req_rep)or die(mysql_error());
 
     }
     //creation du tableau de destinataire
     //$dest_list est sous la forme id1*id2*id3* ...
     //$dest est deja un tableau
     function crea_dest($dest,$dest_list){
         if ($dest_list!="no"){
         //transforme $dest_list en tableau si il existe
         $array_dest1 = explode("*",$dest_list);
         //si en plus de la liste des membre on été selectionné
             if(!empty($dest)){
             $array_dest2 = $dest;
             echo $array_dest2 ;
             //jonction des deux tableau
             $array_dest = array_merge($array_dest1,$array_dest2);
             }
             //sinon seulement la liste
             else $array_dest = $array_dest1;
         }
         //si pas de liste
         if (($dest_list=="no") AND (!empty($dest))){
         $array_dest = $dest;
         }
     return $array_dest;
     }
 
     //envoi dune alerte par mail si case cocher
     function prev_by_mail($id_dest,$pseudo,$site){
     $envmail = mysql_query("select email from membre_info where id_membre='$id_dest'")or die(mysql_error());
    $mailing = mysql_fetch_array($envmail);
    $to = $mailing['email'];
     $subject = 'Nouveau message sur le site '.$site;
     $message = 'Le '.date('d/m').' a '.date('G:i').'; Vous avez recu un message de '.$pseudo.' sur le site '.$site."\r\n".'merci de ne pas repondre a ce mail';
     $headers = 'From: webmaster@'.$site.'' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
 
     mail($to, $subject, $message, $headers)or die("erreure de mail");
     }
     //fonction appelé pour lenvoi
     function envoi($message,$sujet,$dest,$dest_list,$mail,$site){
         //nettoyage des string
    $message = $this->clean($message);
    $sujet = $this->clean($sujet);
    //création du tableau de destinateur
    $array_dest = $this->crea_dest($dest,$dest_list);
    //comptage du nombre de destinataire
    $count = count($array_dest);
    //au cas ou
    if(!is_numeric($count)){
        echo '<div id="erreur">Pas de destinataire dans le tableau</div>';
        exit();
    }
    for ($i = "0"; $i < $count ; $i++) {
        echo '-'.$i.'-';
        $this->insert($message,$sujet,$array_dest[$i],$this->pseudo,$this->id_membre);
        if($mail=="yes") $this->prev_by_mail($array_dest[$i],$this->pseudo,$site);
    }
 
 
     }
 }//fin de class
 include('configuration.php');
 //tableau pour le teste
 $dest = array("1","2","3");
 //creation de lobjet
 $mess = new messagerie($host,$user,$passe,$db,"misterniark",$site);
 //envoie d'un message de teste
 $mess->envoi("merci a vous davoir lu mon code","merci de votre aide",$dest,"no","yes",$site)
?>