IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Messagerie instantané web [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 15
    Points
    15
    Par défaut Messagerie instantané web
    Bonjour ,
    je voudrai créé une messagerie comme celle de facebook ou Myspace , si vous pouvez m'eclairé , comment structuré ou quel language utiliser , je peux coder avec php mysql :o o_O , quesque je peux utiliser dautres .
    si vous me donner une liste a suivre , j vous serai tres reconnaisons.
    meerci
    Cordialement

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Avant de commencer à coder il faut bien réfléchir à la manière dont tu vas stocker tes informations, puis les récupérer. Il faut établir la structure de tes tables dans ta base de données.

    Voici comment tu pourrais procéder pour un système simple de messagerie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    users (id_user, lastname, firstname, gender, age, login)
    messages (id_msg, id_user, msg, timestamp)
    Ensuite, tu connais quel version de PHP ? Maitrises-tu PHP5 ?

    Voici comment tu pourrais modéliser un utilisateur en PHP pour en récupérer les informations :

    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
     
    class user {
       private $fields = array();
       private $messages = array();
     
       public function __construct($fields = array()){
           if(count($fields) > 0){
               $this->fields = $fields;
               $this->messages = $this->getMessages();          
           }
           else 
               $this->fields['id_user'] = -1;
       } 
     
       public function __get($key){
            if(isset($this->fields[$key]))
                return $this->fields[$key];
            elseif(isset($this->$key))
                return $this->$key;
            else
                throw new Exception('Le champ '.$key.' n\'existe pas');
       }
     
       public function __set($key, $value){
            if(isset($this->fields[$key]))
                $this->fields[$key] = $value;
       }
     
       private function getMessages(){
            $q = mysql_query('SELECT * FROM messages WHERE id_user='.$this->fields['id_user']);
             if(mysql_num_rows($q)){
                  while($r = mysql_fetch_assoc($q))
                      array_push($this->messages, new message($r, $this));
             }
             return $this->messages;
       }
     
       public static function fromId($id){
            if(!is_int($id)) return;
            $q = mysql_query('SELECT * FROM users WHERE id='.intval($id));
            if(!mysql_num_rows($q)) return;
            return new user(mysql_fetch_array($q));
       }
     
       public function save(){
            if($this->fields['id_user'] == -1)
                $q = 'INSERT INTO users VALUES('.implode(',', $this->fields).')';
                mysql_query($q);
                $this->fields['id_user'] = mysql_insert_id(); 
            else{
                $q = 'UPDATE users SET ';
                foreach($this->fields as $k => v)
                    if($k != 'id_user')
                        $q .= $k . ' = ' . $v . ',';
                $q = substr($q, 0, -1);
                $q .= 'WHERE id_user='.$this->fields['id_user'];            
                mysql_query($q);
            }               
       }
    }
    Ce qui te permettrait de faire quelque-chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $user = user::fromId(1);
    foreach($user->messages as $m)
        printf('%s<br/>', $m->msg);
    Concernant la partie client, afin que les messages s'affichent sans recharger la page, tu devras utiliser AJAX afin d'executer des scripts sur le serveur qui écriront les messages. Avec JavaScript, tu pourras récupérer ce que ces scripts ont écrit afin de les injecter dans ta page.

    Il y a un tutoriel très bien fait sur ce sujet :
    http://siddh.developpez.com/articles/ajax/

    Tutoriel PHP/MySQL :
    http://php.developpez.com/faq/?page=mysql

    Le code que je t'ai donné est un simple exemple, je conseillerais notamment une abstraction de la couche des données. À bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/09/2011, 16h10
  2. Réponses: 1
    Dernier message: 10/12/2010, 11h01
  3. Application Web de messagerie instantanée
    Par jab92 dans le forum Services
    Réponses: 0
    Dernier message: 25/02/2010, 19h51
  4. messagerie instantanée web
    Par mikees dans le forum ASP.NET
    Réponses: 15
    Dernier message: 10/04/2009, 18h02
  5. Aide pour logiciel de messagerie instantanée
    Par tibou8985 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 09/01/2007, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo