Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2336 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Actualisation de ChatBox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Actualisation de ChatBox

n°1054744
SphAx3D
Posté le 21-04-2005 à 01:54:13  profilanswer
 

Mon Problème:
Je suis sur le point de finir une "ChatBox" sur mon site, mais j'ai encore un problème au niveau de l'actualisation de la page. Enfait quand je viens d'ajouter un message et que j'appui sur F5, le même message se remet au dessus.  Je sait juste que le problème doit venir de :
 
$requete="SELECT * FROM chatbox WHERE pseudo='".$pseudo."' ORDER BY ID DESC LIMIT 0 , 1";
$resultat=mysql_query($requete);
$dernier_message=mysql_fetch_array($resultat);
 
Enfin, voici mon code:
 
<?
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("sql.free.fr", "sphax3d", "xxxxx" );
        mysql_select_db("sphax3d" );
 
        // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
  $heure = date ("H" );
  $minute = date ("i" );
  $jour = date ("d" );
  $mois = date ("m" );
        $message = htmlentities ($_POST['message']);
        $pseudo = htmlentities ($_POST['pseudo']);
  $requete="SELECT * FROM chatbox WHERE pseudo='".$pseudo."' ORDER BY ID DESC LIMIT 0 , 1";
  $resultat=mysql_query($requete);
   
  // on recupère le dernier message enregistré par le même visiteur
  $dernier_message=mysql_fetch_array($resultat);
   
  // si ce dernier message est identique au message actuel, il n'est pas enregistré dans la bdd
  // si l'utilisateur appuye sur F5 pour recharger la page, le message n'est pas enregistré en double
 
  if($dernier_message['message']!==$message){
 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO chatbox VALUES('', '$heure', '$minute', '$jour', '$mois', '$pseudo', '$message')" );
  }
        // On se déconnecte de MySQL
        mysql_close();
    }
}
// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages
// Tout d'abord le formulaire :
?>
<div class=chatbox>
<?
// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("sql.free.fr", "sphax3d", "xxxxx" );
mysql_select_db("sphax3d" );
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM chatbox ORDER BY ID DESC LIMIT 0,15" );
// 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) )
{
?>
<b><? echo $donnees['pseudo']; ?> - <? echo $donnees['jour']; ?>/<? echo $donnees['mois']; ?> - <? echo $donnees['heure']; ?>h<? echo $donnees['minute']; ?>min</b> :<br>- <? echo $donnees['message']; ?><br>
<?
}
// Fin de la boucle, le script est terminé !
?>
</td></tr><tr><td colspan=2>
<form action="index2.php" method="post">
<center>
<font size=2>Pseudo : </font><input type="text" size=13 maxlength=40 name="pseudo" value="<? echo $_POST['pseudo'] ?>">
<input type="submit" value="Envoyer"><br>
<font size=2>Message : </font><input type="text"size=24 maxlength=255 name="message"><br>
</center>
</form>
 
 
Merci de me corriger si quelqu'un voit un problème à l'endroit que j'ai cité précédement :-) .
PS: Allez vous rendre compte de l'effet sur le site : http://sphax3d.free.fr/Tux69


Message édité par SphAx3D le 17-10-2007 à 20:52:35
mood
Publicité
Posté le 21-04-2005 à 01:54:13  profilanswer
 

n°1054751
simogeo
j'ai jamais tué de chats, ...
Posté le 21-04-2005 à 02:20:52  profilanswer
 

un fois que tu as fais ton insert tu détruit $_POST['message'];
 
unset($_POST['message']);


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°1054907
yoyo354
Yoyo, le roi du ...
Posté le 21-04-2005 à 10:54:37  profilanswer
 

<mode chieur=on>
A pemière vue, tu es à fond dans linux vue le background...
Or, on ne parle pas du tout de linux dedans...  
Donc, juste une question : pourquoi avoir mis plein de Tux sur ton site ???
- Parce que tu es un fan des pinguins ?
- Pour faire style ?  
- Tu aimes le jaune, noir blanc ?
- Tu va bientôt mettre une rubrique GNU/Linux ?  
- ...
</mode>
 
A part ça, j'ai tester ta chatbox et ça fonctionne.  
Je te conseille juste de concevoir un système basé sur cookie les ip par exemple, pour éviter qu'un abruti t'envoie quelques centaines de message à suivre avec cURL par exemple...
D'ailleur, comme tu as pu le constater, je n'ai pas pu m'en empecher  :ouch:  
J'ai pu de par la même occasion tester HTTP_Request de PEAR...
Voici comment n'importe qui pourrait foutre la ****** dans ton petit chatbox :

Code :
  1. require 'HTTP/Request.php';
  2. $i = 1;
  3. while ($i <= 5) {
  4.   echo $i++;
  5.   $chifre = mt_rand(1, 100);
  6. $pseudo = "a".$chifre."d";
  7. $message = "b".$chifre."c";
  8. $r = new HTTP_Request('http://sphax3d.free.fr/Tux69/index.php');
  9. $r->setMethod(HTTP_REQUEST_METHOD_POST);
  10. $r->addPostData('pseudo',$pseudo);
  11. $r->addPostData('message',$message);
  12. $r->sendRequest();
  13. print $r->getResponseBody();
  14. }


J'ai été gentil, j'en ai mis que 5... Mais imagine ce que pourrais mettre un en**** ? 1000, 10000...  
 
Sur cette petite expérience... Je men vais éssayer de faire une pale copie du plugin de winamp pour afficher l'uptime de ma bécanne... :sarcastic:  


Message édité par yoyo354 le 21-04-2005 à 14:15:45

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Actualisation de ChatBox

 

Sujets relatifs
Problème avec une chatbox dans une iframeActualisation des valeurs ds excel pour macro VBA
changer d'image à chaque actualisationpb actualisation d'une variable mysql
Problème d'actualisation et renvoi d'informationsEmpecher l'actualisation
[ASP] [Résolu] Problème d'actualisationFermeture popup et actualisation page d'appel
débutant : Contenu d'une page à chaque actualisation JSPactualisation page
Plus de sujets relatifs à : Actualisation de ChatBox


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)