logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] chatbox
Username:
Password:
Pages: 1 [2]
  Imprimer  
Auteur Fil de discussion: [PHP] chatbox  (Lu 13784 fois)
comtezero

Profil challenge

Classement : 2119/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #15 le: 16 Septembre 2005 à 18:15:18 »

je n'ai mis que le script de la boucle sinon j'echo mes variables plus tard .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
popop

Profil challenge

Classement : 2823/54283

Membre Junior
**
Hors ligne Hors ligne
Messages: 90


Voir le profil
« #16 le: 14 Mai 2006 à 16:13:06 »

(ps:je tiens dabord à préciser que je suis encore un débutant  quiapprend le php!!)

Bon je vous explique mon probleme:
je suis en train de faire une chatbox ( pas d'en le ut de m'en servir tout de suite juste pour comprendre le fonctionnement).
mais je comprend pas un truc: quand je me sert de mysql_fetch_array() firefox me di ceci:"Fatal error: Call to undefined function: mysql_array()" pourtant je suis sur (en tout cas presque) de ne pas avoir fait d'erreur de script, de plus j'ai comparé avec un exemple type et il n'y a pas d'erreur possible
si quelqu'un pouvait m'expliquer d'ou vient le probleme **orthographe !** sympas
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #17 le: 14 Mai 2006 à 16:27:31 »

Ben moi je veux bien t'aider mais sans le code source c'est pas tres facile...

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
popop

Profil challenge

Classement : 2823/54283

Membre Junior
**
Hors ligne Hors ligne
Messages: 90


Voir le profil
« #18 le: 14 Mai 2006 à 16:36:12 »

scuse **No Sms** oublié!!!
ps:je rappel que j'ai fait ce script just pour comprendre le fonctionnement d'une chatbox pas pour en faite une toute belle...

<html>
<?php

if(isset($_POST['pseudo']) AND isset($_POST['message']))
{
     if($_POST['pseudo']!=NULL AND $_POST['message']!=NULL)

     {
    mysql_connect("localhost","root","");
         mysql_select_db("chat");
       $message = htmlentities ($_POST['message']);
$pseudo = htmlentities ($_POST['pseudo']);

mysql_query("INSERT INTO chat('ID', 'pseudo', 'message');
 VALUES('', '$pseudo', '$message')");
 mysql_close();
     }
}
 ?>
 <form action="chat.php" method="post">
pseudo:<input type="text" name="pseudo"/><br/>
message:<input type="text" name="message"/><br/>
<input type="submit" value="valider"/>
</form>
<?php
mysql_connect("localhost","root","");
         mysql_select_db("chat");
$reponse=mysql_query("SELECT * FROM chat ORDER BY ID DESC LIMIT 0‚10");
while($donnee= mysql_fetch_array($reponse) )
mysql_close();
{
?><p><strong><?php echo $donnee['pseudo'];?></strong>:<?php echo $donnee['message'];?></p>
<?php
}
?>
</html>

merci d'avance!!
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #19 le: 14 Mai 2006 à 17:56:02 »

Je pense que l'erreur peut venir de la :
Code:
while($donnee= mysql_fetch_array($reponse) )
mysql_close();
{
?><p><strong><?php echo $donnee['pseudo'];?></strong>:<?php echo $donnee['message'];?></p>
<?php
}
Tu ferme la connexion a la BDD avant de donner les variables  pseudo et message.
J'aurai mis un truc du genre :
Code:
while($donnee= mysql_fetch_array($reponse) )
{
?><p><strong><?php echo $donnee['pseudo'];?></strong>:<?php echo $donnee['message'];?></p>
<?php
}
mysql_close();
Apres je sais pas du tout ce n'est qu'une supposition parce que je n'est rien vu d'autre qui n'allait pas.

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
popop

Profil challenge

Classement : 2823/54283

Membre Junior
**
Hors ligne Hors ligne
Messages: 90


Voir le profil
« #20 le: 14 Mai 2006 à 20:11:54 »

bah jcomprend plus rien ce matin sa marchait pas la je réessaye et sa marche niquel
mais par contre je comprend pas pourquoi il ne m'affiche pas les dix derniers post?
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #21 le: 14 Mai 2006 à 22:32:29 »

Il te les affiche tous?
Tu as essayé sur FireFox et Internet Explorer ou juste sur un seul? Ca vient peut etre de la (je pense pas mais sait on jamais)

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Shenryu

Profil challenge

Classement : 6846/54283

Membre Complet
***
Hors ligne Hors ligne
Messages: 104


Voir le profil
« #22 le: 15 Mai 2006 à 09:21:14 »

Euh juste un conseil pour que tes scripts soient moins longs à exécuter... Ouvre une seule fois la base et ferme la une seule fois... C'est sans doute le truc le plus long en php alors si tu l'exécute avant chaque requête tu n'en finira pas.

Tu peux également remplacer les AND par des &&... Je ne savais pas que AND existait en php d'ailleurs.

Il ne t'affiche pas les 10 derniers posts parce que ta boucle n'est pas bonne comme l'a montré the lsd dans son premier post. Regarde il t'a même mis la réponse ^^

Au passage, je te conseille de jeter un coup d'oeil pour la sécurité des données entrées dans ton input. Regarde du côté du magic quote (addslashes()), les manipulations de string histoire d'interdire certains caractères ou des les remplacer, mysql_real_escape_string(), htmlspecialchars() qui empêche l'interprétation du html...

Et n'oublies pas d'effacer le cache de ton navigateur (surtout ie), il arrive qu'il t'affiche la même chose alors que tu as changé ton code.
Journalisée

La dictature, c'est "ferme ta gueule". La démocratie, c'est "cause toujours".
                                                                                                     Coluche
popop

Profil challenge

Classement : 2823/54283

Membre Junior
**
Hors ligne Hors ligne
Messages: 90


Voir le profil
« #23 le: 15 Mai 2006 à 16:52:29 »

j'ai fait les modifications que vous m'avez dire c'est a dire que j'ai laissé qu'une seule ouverture de mysql et une seule fermeture qui se situe la ou lsd la mise mais sa ne m'affiche toujours pas les dix derniers post
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #24 le: 15 Mai 2006 à 17:01:10 »

Tu es sur que les variables arrivent dans la base de données? Ca peut etre utile pour savoir si ca vient du script d'insertion de données ou du script d'affichage. Si elles sont bien dans la BDD c'est que ca vient de l'affichage.
A ta place je mettrai ca :
 
Code:
mysql_connect("localhost","root","") or DIE ("Erreur de connexion à la BDD pour l'insertion de données");
         mysql_select_db("chat") or DIE ("Erreur de connexion à la BDD pour l'insertion de données");
et :
Code:
mysql_connect("localhost","root","") or DIE ("Erreur de connexion à la BDD pour l'affichage de données");
         mysql_select_db("chat") or DIE ("Erreur de connexion à la BDD pour l'affichage de données");
Comme ca tu saura plus exactement d'ou ca peut venir

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Shenryu

Profil challenge

Classement : 6846/54283

Membre Complet
***
Hors ligne Hors ligne
Messages: 104


Voir le profil
« #25 le: 16 Mai 2006 à 13:18:06 »

fais également des :
Code:
mysql_query("SELECT * ......") or DIE ("Erreur requête x");
Je te conseille de mettre le mysql_connect tout au début de ta page et le mysql_close tout à la fin de ta page. Comme ça il n'y aura pas d'erreurs théoriquement.

Est-ce que tu as vérifié que tes données étaient bien insérées dans la base.
Journalisée

La dictature, c'est "ferme ta gueule". La démocratie, c'est "cause toujours".
                                                                                                     Coluche
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #26 le: 26 Mai 2006 à 08:37:52 »

Alors tu a trouvé ce qui clochait ou pas popop ?

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Pages: 1 [2]
  Imprimer  
 
Aller à: