Bonjour,

je cherche a apprendre a faire le même système que Facebook , c'est a dire , envoyer une demande d'ajout d'ami .

au niveau des tables SQL et PHP , je m'en sort bien.
mais je n'arrive pas a comprendre comment facebook on fais le système d'ajout d'ami dynamique sans recharger de page.

comment sa marche ?
avez vous des tutoriels a me passer ?

5 réponses


Bonsoir, c'est de l' ajax

tien un tuto en anglais
http://www.developphp.com/view.php?tid=1041

ou un tuto en français sur les bouton "j'aime"
http://fr.tuto.com/jquery/recreer-un-bouton-jaime-facon-facebook-avec-jquery-jquery-ajax,15518.html

les 2 tuto utilise la méthode ajax pour communiquer avec le serveur

kaloutch
Auteur

c'est tres intéressant mais en gros le principe est le même que ajouter en ami ?

oui c'est une requête ajax qui appelle le serveur

par contre coté client "naviguateur" c'est du javascript, après tu peux utiliser une Librairie comme "jquery" pour te faciliter la vie

Coté serveur tu restes avec du php simple

kaloutch
Auteur

ok merci .

kaloutch
Auteur

Myqsl :

CREATE TABLE IF NOT EXISTS amis (
id int(11) NOT NULL auto_increment,
demande\_de varchar(255) NOT NULL,
demande\_a varchar(255) NOT NULL,
etat int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

coté php c'est bon sa ?

<?php
include 'sessions.php';

//if (!isset($_POST'to'])) {
//  header('location: ./');
//  die('-1');
//}
$from = $_SESSION'pseudo'];
$to = $_POST'to'];
//$to = "kolcak";

require "config.php";
//je me connect a MYSQL .
mysql_connect(DB_SERVER,DB_LOGIN,DB_PASS);
//je selectionne ma BASE de donné.
mysql_select_db(DB_NAME);
//je donne l'encodage (facultatif)
mysql_query('SET NAMES'.DB_ENC);
//on recupere l'utilisateur.
if ($result = mysql_query("SELECT * FROM utilisateur WHERE pseudo = '$to' LIMIT 1")) 
{
    //on verifie si l'utilisateur existe.
    if (mysql_num_rows($result)) {
        //si oui, on recupere les demandes d'ajout en ami. 
        $req1 = mysql_query("SELECT * FROM amis WHERE demande_a = '$to' and demande_de = '$from' LIMIT 1");
        $req2 = mysql_query("SELECT * FROM amis WHERE demande_de = '$to' and demande_a = '$from' LIMIT 1");
        //on verifie si ils existent.
        if (mysql_num_rows($req1) or mysql_num_rows($req2)){
            //si oui, la demande a deja été faite. on fais rien.
        }
        else
        {
            //si non, on recupere les demandes en etat 3 ( etat: 0=>attente 1=>accepté 2=>refusé 3=>Bani )
            $ban = mysql_query("SELECT etat FROM amis WHERE demande_a = '$to' and demande_de = '$from' and etat = '3' LIMIT 1");
            $ban2 = mysql_query("SELECT etat FROM amis WHERE demande_de = '$to' and demande_a = '$from' and etat = '3' LIMIT 1");
            if (mysql_num_rows($ban2) or mysql_num_rows($ban)) 
            {
                //si ils existent alors on fais rien il n'ai pas autorisé.
            } 
            else 
            {
                //sinon on insert la demande dans la base de donnée.
                mysql_query('INSERT INTO amis(demande_de, demande_a, etat) values ("'.$from.'", "'.$to.'", "0")');
            }
        } 
    }
}
?>