Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉER UN MINICHAT EN PHP


Information sur le tutorial

Catégorie :Tutoriaux Date de création : 05/12/2006 22:49:30 Vu : 8 339 fois

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

Dans se tutorial, vous allez apprendre à créer un minichat en php.
Attention : Il faut une base de donnee MySQL et savoir l'utiliser!!
Pour + d'info, http://www.siteduzero.com/tuto-3-132-1-presentation-de-mysql.html

Tutorial

Il faut des minimum de connaissance en php et avec MySQL.

Avant de commmencer, je vais résumer se tutorial...

Nous allons créer une seul page qui sera minichat.php
Dans cette page, nous allons récuperer les dix dernier message en boucle.

Il va y avoir deux champ : Pseudo et Message.

Ils serons coder avec du HTML bien sûr.

Vous devez créer une table dans votre base de donnee : Nom : minichat
                                                                                     Champ : 3
Champ 1 : id, int
Champ 2 : pseudo, varchar ->255
Champ 3 : message, varchar ->255

Bon, nous allons commencer à rédiger notre minichat.

GO!!!!!!!!!!!!!!!! :)

1-Créer une page php avec html,body etc...
2-Maintenant, copier coller se code dans votre éditeur

Code :
<?php
if (isset($_POST['pseudo']) and isset($_POST['message']) //Si les message existe
    if($_POST['pseudo'] != NULL and $_POST['message'] != NULL) //Si les deux champs sont bien rempli
   
    //On se connecte à MySQL
    mysql_connect("nom_du_serveur", "nom_de_l'utilisateur", "mot_de_passe");
    mysql_select_db("nom_de_votre_base_de_donnee");

    // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
    $pseudo = htmlentities ($_POST['pseudo']);
    $message = htmlentities ($_POST['message']);

    //On enregistre dans la table minichat
    mysql_query
("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

    //On se deconnecte de MySQL
    mysql_close();
    }
}
?>

<form action="minichat.php?message=envoyer" method="post">
Votre pseudo : <input type="text" name="pseudo" /><br />
Votre message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</form>

<?php

// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("nom_du_serveur", "nom_de_l'utilisateur", "mot_de_passe");
mysql_select_db("nom_de_votre_bdd");

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");

// On se déconnecte de MySQL
mysql_close();

// Puis on fait une boucle pour afficher tous les résultats :
while($donnees = mysql_fetch_array($reponse))
{
?>

<p><strong><?php echo$donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>



<?php
}
// Fin de la boucle, le script est terminé !
?>

Voila, j'espert que se tutorial vous à bien été utile!



05 décembre 2006 22:58:34 :
Sa sera pour demain car il tard!
06 décembre 2006 11:10:43 :
Il était tard l'autre soir alors j'ai du quitter
signaler à un administrateur
Commentaire de kankrelune le 08/12/2006 14:34:51

if (isset($_POST['pseudo']) and isset($_POST['message']) //Si les message existe
    if($_POST['pseudo'] != NULL and $_POST['message'] != NULL) //Si les deux champs sont bien rempli

=> Pas besoin de deux if pour ça... qui plus est si le message est vide il sera posté alors qu'il ne devrait pas... .. .

if (isset($_POST['pseudo']) and !empty($_POST['pseudo']) and isset($_POST['message']) and !empty($_POST['message']))

/**********************************/

  // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
    $pseudo = htmlentities ($_POST['pseudo']);
    $message = htmlentities ($_POST['message']);

    //On enregistre dans la table minichat
    mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

=> Beurk pas beau... htmlentities est inutile avant l'insertion au contraire tu charge ta base pour rien... c'est avant l'affichage qu'il faut le faire... sinon il n'y a aucun echappement de caractère avant l'insertion... d'une part si magic quotes est désactivé et que l'internaute poste un message avec une simple quote ta requete plantera d'autre part cela rend possible les injections SQL... .. .

    $pseudo = mysql_real_escape_string($_POST['pseudo']);
    $message = mysql_real_escape_string($_POST['message']);

    //On enregistre dans la table minichat
    mysql_query('INSERT INTO minichat VALUES(\'\', \''.$pseudo.'\', \''.$message.'\')');

/**********************************/

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");

=> pas besoin de faire un select *... tu connais les champs dont tu as besoin... donc... .. .

$reponse = mysql_query("SELECT pseudo,message FROM minichat ORDER BY ID DESC LIMIT 0,10");

/**********************************/

<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>

=> On enlève le html à l'affichage et non pas à l'insertion... .. .

<p>
  <strong><?php echo htmlentities($donnees['pseudo']); ?></strong> :
  <?php echo htmlentities($donnees['message']); ?>
</p>


Pour finir il serait bien d'ajouter l'heure du post et d'intégrer un garbage collector pour supprimer message périmés par ce que sinon ta table va se remplir inutilement si tu oublie de la vider

@ tchaOo°

signaler à un administrateur
Commentaire de DarkMan272 le 08/12/2006 21:15:00

Merci pour tes conseilles kankrelune

signaler à un administrateur
Commentaire de Anthomicro le 14/12/2006 18:39:41

Salut,

rien qu'en voyant le titre, je me doutais d'où ça venait. En effet, je me suis pas trompé, ça vient du site du zéro, donc c'est un pur copier-coller comme on en fait plus ...

En gros, source déjà plagiée et donc à supprimer ;)

signaler à un administrateur
Commentaire de scoopfinder le 30/03/2007 10:26:51

Oui, c'est copié du site du zero...

Mais moi j'ai toujours pas compris comment on supprime les messages qui sont en trop (ou trop vieux). Help?

signaler à un administrateur
Commentaire de damien7755 le 07/04/2007 01:04:47

LoL tu aurais pu au moin changer les commentaires à la place de faire du copier coller comme un amateur ... aaaaaalala ces incompétent

signaler à un administrateur
Commentaire de pakkun le 28/06/2007 13:39:08

oui c'est honteux,pomper ce merveilleux site et recloter les lauriers.

signaler à un administrateur
Commentaire de pikafafe le 23/08/2007 11:31:54

SCOOPFINDER:
   Disons que tu ne garde que les 50 derniers.
   Tu récupère l'ID du 50 ème dernier message, et tu supprime ceux qui on un ID inférieur, puisque l'Id s'incrémente toujours.
   Le moment pour supprimer les anciens messages serait l'ajout d'un nouveau message.

DarkMan272:
   Tu auais au moins pu citer la source puisque ca ne viens pas de toi...    

signaler à un administrateur
Commentaire de xeolin le 24/10/2007 03:14:37

pitoyable de faire du copier coler pour une source aussi simple.

signaler à un administrateur
Commentaire de innocentstate le 24/12/2007 07:20:21

c'est vrai que ce n'est pas honorable mais ca permet d'améliorer des sources de référence comme le site du zero

signaler à un administrateur
Commentaire de infoimad le 05/04/2008 16:21:50

merci beaucoup

signaler à un administrateur
Commentaire de Mattheking le 18/08/2008 10:55:58

Bonjour,

C'est de la publicité mensongère en plus!
C'est plus un mini forum qu'un mini chat (beaucoup moins évident à réaliser en php déjà).

Je me trompe?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,031 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.