Script php chat qui marche mal
Bonjour,
bonjour!
j'ai un problême avec ce script de chat
pour chaque message il me recreer un chat, avec un bouton envoyer ,
voyez par vous même :
http://www.uncupidon.com/chat.php?pseudo=petitfute
merci d'avance de votre aide!
voici le script:
<?php
// on commence par ouvrir la session
session_start();
$_SESSION['pseudo'];
$_SESSION['logged'];
// D'abord, on se connecte à MySQL
$cnx=mysql_connect("**************", "**********", "***********") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db("*********") or die("Pb selection base".mysql_error());
if (isset($_POST['message'])) // Si les variables existent
{
if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$timestamp = time();
$expediteur = $_SESSION['pseudo'];
$destinataire = $_GET['pseudo'];
// Ensuite on enregistre le message
mysql_query("INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>t'chat uncupidon</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
#chatcomplet
{
width:400px;
height:400px;
background-attachment: fixed;
background-repeat: no-repeat;
}
#lecture
{
width:400px;
height:300px;
background-color: red;
color : yellow;
overflow: auto
border: 1px solid green;
}
#message
{
width:400px;
height:100px;
border: 1px solid green;
margin-top:300px;
}
</style>
<body>
<?php
$reponse2 = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees2 = mysql_fetch_array($reponse2) )
{
// On se déconnecte de MySQL
$date = date('d/m/Y \à H\hi', $donnees2['timestamp']);
$message = $donnees2['message'];
$expediteur = $donnees2['expediteur'];
$pseudo= $_GET['pseudo'];
?>
<div id="chatcomplet">
<div id="lecture">
<form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/>
<p><strong><?php echo $expediteur ?></strong> le <?php echo $date ?>: <?php echo $message ?></p>
<div id="message">
<p>Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</div>
</div>
</div>
<?php
}
}
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>t'chat uncupidon</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
#chatcomplet
{
width:400px;
height:400px;
background-attachment: fixed;
background-repeat: no-repeat;
}
#lecture
{
width:400px;
height:300px;
background-color: red;
color : yellow;
overflow: auto
border: 1px solid green;
}
#message
{
width:400px;
height:100px;
border: 1px solid green;
margin-top:300px;
}
</style>
<body>
<?php
$reponse2 = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees2 = mysql_fetch_array($reponse2) )
{
// On se déconnecte de MySQL
$date = date('d/m/Y \à H\hi', $donnees2['timestamp']);
$message = $donnees2['message'];
$expediteur =$donnees2['expediteur'];
$pseudo= $_GET['pseudo'];
?>
<div id="chatcomplet">
<div id="lecture">
<form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/>
<p><strong><?php echo $expediteur ?></strong> le <?php echo $date ?>: <?php echo $message ?></p>
<div id="message">
<p>Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</div>
</div>
</div>
<?php
}
}
mysql_close();
?>
</form>
</body>
Configuration: Windows XP Internet Explorer 6.0
12 réponses
Un script de chat en PHP/MySQL déclenche la création d'une nouvelle interface de chat à chaque message et fournit un bouton Envoyer, ce qui complique le déroulement des échanges. Plusieurs rédacteurs évoquent des erreurs de placement des boucles, des appels SQL manquants ou mal sécurisés, et des difficultés à afficher les messages correctement sans décharger ou recharger la page. Des corrections portées sur l’architecture du formulaire, la gestion de session et l’intégration éventuelle d’AJAX sont discutées, avec des exemples de boucles de récupération et de mise à jour dynamique. En cas de solution, les échanges suggèrent aussi d’ajuster le rendu visuel et le contenu du formulaire, afin d’éviter des erreurs en production et d’assurer un rafraîchissement silencieux lorsque nécessaire.
-
Contributeursalut,
pour moi ça a l'air de tourner.
je suppose que tu as trouvé l'erreur, tiens nous au courant !
-
bonsoir!
oui j'ai trouvé l'erreur , c'etait la boucle que j'avais mal placée .
MAIS, j'ai un autre problême je voudrai que mon script se rafraichisse automatiquement , et donc j'ai rajouté un peu de ajax ( PS / JE NE CONNAIS RIEN EN AJAX) eT donc biensur ca ne marche pas.
a oui j'oublier, il ,n ya aucune erreur juste, il veut pas rafraichir!
pouvez vous m'expliquer mes erreur svp?
<?php
// on commence par ouvrir la session
session_start();
$_SESSION['pseudo'];
$_SESSION['logged'];
// D'abord, on se connecte à MySQL
$cnx=mysql_connect("**********", "***********", "********") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db("**********") or die("Pb selection base".mysql_error());
if (isset($_POST['message'])) // Si les variables existent
{
if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$timestamp = time();
$expediteur = $_SESSION['pseudo'];
$destinataire = $_GET['pseudo'];
// Ensuite on enregistre le message
mysql_query("INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')");
}
}
function chat () {
$retour_xajax = new xajaxResponse();
$retour = '';
$reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees = mysql_fetch_array($reponse) )
{
$date = date('d/m/Y \à H\hi', $donnees2['timestamp']);
$message = $donnees['message'];
$expediteur = $donnees['expediteur'];
$pseudo= $_GET['pseudo'];
$retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>';
}
$retour_xajax->addAssign("lecture", "innerHTML", $retour);
return $retour_xajax->getXML();
}
require("xajax.inc.php");
$xajax = new xajax();
$xajax->registerFunction("chat");
$xajax->processRequests();
$xajax->printJavascript();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>t'chat uncupidon</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php $xajax->printJavascript(); /* Affiche le Javascript */?>
<script type="text/javascript">
function refresh()
{
chat();
setTimeout("refresh()", 5000);
}
</script>
</head>
<style type="text/css">
#chatcomplet
{
width:400px;
height:400px;
background-repeat: no-repeat;
border: 1px solid black;
}
#lecture
{
position : absolute ;
width:400px;
height:300px;
background-color: red;
color : yellow;
overflow : scroll ;
border: 1px solid green;
}
#message
{
background-color: green;
background-attachment: fixed;
width:400px;
height:100px;
border: 1px solid green;
padding: 1px;
padding-top: 300px;
}
</style>
<body>
<div id="chatcomplet">
<form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/>
<div id="lecture"></div>
<div id="message">
<p>Message : <input type="text" name="message" size="30"/><br />
<input type="submit" value="Envoyer" />
</p>
</div>
</div>
<?php
mysql_close();
?>
</form>
<script>
refresh();
</script>
</body>
</html>
-
-
Contributeursalut,
peut être parce qu'il n'y a pas le type du script (tu es en XHTML Strict).<script type="text/javascript"> refresh(); </script>
sinon tu peux essayer de l'initialiser au chargement :<body onload="refresh()">
et pense à mettre ton code en forme (avec le bouton "Conserver la mise en forme du texte sélectionné") avant de poster, merci !
-
merci de ta reponse!
donc j'ai rajouter le type="text/javascript et cela ne change rien!!
et je ne sais pas comment faire ni ou metre cela <body onload="refresh()">pour l'initialiser au chargement !<?php // on commence par ouvrir la session session_start(); $_SESSION['pseudo']; $_SESSION['logged']; // D'abord, on se connecte à MySQL $cnx=mysql_connect("**********", "************", "**********") or die("Pb connexion au serveur".mysql_error()); $db=mysql_select_db("*************") or die("Pb selection base".mysql_error()); if (isset($_POST['message'])) // Si les variables existent { if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; // Ensuite on enregistre le message mysql_query("INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')"); } } function chat () { $retour_xajax = new xajaxResponse(); $retour = ''; $reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'"); while ($donnees = mysql_fetch_array($reponse) ) { $date = date('d/m/Y \à H\hi', $donnees2['timestamp']); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } $retour_xajax->addAssign("lecture", "innerHTML", $retour); return $retour_xajax->getXML(); } require("xajax.inc.php"); $xajax = new xajax(); $xajax->registerFunction("chat"); $xajax->processRequests(); $xajax->printJavascript(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); /* Affiche le Javascript */?> <script type="text/javascript"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> </head> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> <body> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"></div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/><br /> <input type="submit" value="Envoyer" /> </p> </div> </div> <?php mysql_close(); ?> </form> <script type="text/javascript"> refresh(); </script> </body> </html>
-
-
Contributeurà la place de <body> dans le document HTML !!!
-
ok, donc j'ai fait comme tu m'as et non ca ne marche pas!
il n ya rien qui s'affiche dans le :
<div id="lecture"></div>
tu as une autre solution?<?php // on commence par ouvrir la session session_start(); $_SESSION['pseudo']; $_SESSION['logged']; // D'abord, on se connecte à MySQL $cnx=mysql_connect("***********", "*************", "************") or die("Pb connexion au serveur".mysql_error()); $db=mysql_select_db("************") or die("Pb selection base".mysql_error()); if (isset($_POST['message'])) // Si les variables existent { if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; // Ensuite on enregistre le message mysql_query("INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')"); } } function chat () { $retour_xajax = new xajaxResponse(); $retour = ''; $reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'"); while ($donnees = mysql_fetch_array($reponse) ) { $date = date('d/m/Y \à H\hi', $donnees2['timestamp']); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } $retour_xajax->addAssign("lecture", "innerHTML", $retour); return $retour_xajax->getXML(); } require("xajax.inc.php"); $xajax = new xajax(); $xajax->registerFunction("chat"); $xajax->processRequests(); $xajax->printJavascript(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); /* Affiche le Javascript */?> <script type="text/javascript"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> </head> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> <body onload="refresh()"> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"></div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/><br /> <input type="submit" value="Envoyer" /> </p> </div> </div> <?php mysql_close(); ?> </form> <script type="text/javascript"> refresh(); </script> </body> </html>
-
-
Contributeurtant qu'à coller ton code à chaque fois, voilà une version compacte et indentée, c'est plus utile que les commentaires !
-;o)
as-tu mis la version en ligne à jour ?<?php session_start(); $_SESSION['pseudo']; $_SESSION['logged']; $cnx = mysql_connect( "***********", "*************", "************") or die( "Pb connexion au serveur".mysql_error() ); $db = mysql_select_db( "************" ) or die( "Pb selection base".mysql_error() ); if ( isset( $_POST['message'] ) && !is_null( $_POST['message'] ) ) { $message = mysql_real_escape_string( htmlspecialchars( $_POST['message'] ) ); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; mysql_query( "INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')" ); // et tu ne stockes pas le résultat dans une variable ? } function chat () { $retour_xajax = new xajaxResponse(); $retour = ''; $reponse = mysql_query( "SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'" ); while( $donnees = mysql_fetch_array( $reponse ) ) { $date = date( 'd/m/Y \à H\hi', $donnees2['timestamp'] ); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } $retour_xajax->addAssign( 'lecture' , 'innerHTML' , $retour ); return $retour_xajax->getXML(); } require( 'xajax.inc.php' ); $xajax = new xajax(); $xajax->registerFunction( 'chat' ); $xajax->processRequests(); $xajax->printJavascript(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); ?> <script type="text/javascript"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> </head> <body> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"></div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/> <br /> <input type="submit" value="Envoyer" /> </p> </div> </div> <?php mysql_close(); ?> // inutile </form> <script type="text/javascript">refresh();</script> </body> </html> -
Contributeurpfff !!!
évidement !
regarde le code servie de ta version en ligne !
ton script est en dehors du document !
mais comment fonctionne ton code ?
c'est un seul fichier ce que tu nous as donné ?
je regarde de plus près.
-
Contributeuret y a une erreur, il trouve pas le fichier JS :
'Error: the xajax Javascript file could not be included. Perhaps the URL is incorrect?\nURL: xajax_js/xajax.js'
-
Contributeurmets ça en ligne, stp et vérifie si 'xajax.js' est bien à sa place.
<?php session_start(); $_SESSION['pseudo']; $_SESSION['logged']; $cnx = mysql_connect( "***********", "*************", "************") or die( "Pb connexion au serveur".mysql_error() ); $db = mysql_select_db( "************" ) or die( "Pb selection base".mysql_error() ); if ( isset( $_POST['message'] ) && !is_null( $_POST['message'] ) ) { $message = mysql_real_escape_string( htmlspecialchars( $_POST['message'] ) ); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; mysql_query( "INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')" ); // et tu ne stockes pas le résultat dans une variable ? } function chat () { $retour_xajax = new xajaxResponse(); $retour = ''; $reponse = mysql_query( "SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'" ); while( $donnees = mysql_fetch_array( $reponse ) ) { $date = date( 'd/m/Y \à H\hi', $donnees2['timestamp'] ); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } $retour_xajax->addAssign( 'lecture' , 'innerHTML' , $retour ); return $retour_xajax->getXML(); } require( 'xajax.inc.php' ); $xajax = new xajax(); $xajax->registerFunction( 'chat' ); $xajax->processRequests(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); ?> <script type="text/javascript"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> </head> <body> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"></div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/> <br /> <input type="submit" value="Envoyer" /> </p> </div> </div> </form> <script type="text/javascript">refresh();</script> </body> </html> -
Contributeurdonc il faut corriger l'url :
<script type="text/javascript" src="xajax.js"></script>
et enlève la ligne entre la fin du PHP et le DocType, stp.
-
voila!
ca ne change rien!
vraiment merci de ton aide en tout cas!<?php session_start(); $_SESSION['pseudo']; $_SESSION['logged']; $cnx=mysql_connect("**********", "***********","**********") or die("Pb connexion au serveur".mysql_error()); $db=mysql_select_db("***************") or die("Pb selection base".mysql_error()); if ( isset( $_POST['message'] ) && !is_null( $_POST['message'] ) ) { $message = mysql_real_escape_string( htmlspecialchars( $_POST['message'] ) ); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; mysql_query( "INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')" ); // et tu ne stockes pas le résultat dans une variable ? } function chat () { $retour_xajax = new xajaxResponse(); $retour = ''; $reponse = mysql_query( "SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'" ); while( $donnees = mysql_fetch_array( $reponse ) ) { $date = date( 'd/m/Y \à H\hi', $donnees2['timestamp'] ); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } $retour_xajax->addAssign( 'lecture' , 'innerHTML' , $retour ); return $retour_xajax->getXML(); } require( 'xajax.inc.php' ); $xajax = new xajax(); $xajax->registerFunction( 'chat' ); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); ?> <script type="text/javascript" src="xajax.js"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> </head> <body> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"></div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/> <br /> <input type="submit" value="Envoyer" /> </p> </div> </div> </form> <script type="text/javascript" src="xajax.js">refresh();</script> </body> </html> -
Contributeur@micka30ben attends, faut déjà un document clean !
fais la modif en <13>, après ça devrait être valide.
-
-
Contributeuret tu as fermé la balise <form> en l'ouvrant :
<form action="chat.php?pseudo=" method="post"/>
à corriger en :<form action="chat.php?pseudo=" method="post">
-
Contributeurmuy bien !
maintenant il y a trois fois la bibliothèque !
ça devrait suffire !
-:oD<script src="xajax_js/xajax.js" type="text/javascript"> <script src="xajax.js" type="text/javascript"> <script src="xajax.js" type="text/javascript">
et je ne retrouve pas ta fonction 'Refresh()'…
c'est le b***el !
-
lol , dsl je suis un boulet en ajax!
j'ai pas compris ce que je devait faire en 17-
-
@Dalidaben rien ne s'affiche ni les messages recu ni les messages envoyée
tien si tu veut testé:
http://www.uncupidon.com/chat.php?pseudo=yohasakura
-
-
Contributeuret tu sais à quoi tu as touché depuis que ça marchait ?
-
-
@micka30Donc comme ca,
<?php // on commence par ouvrir la session session_start(); $_SESSION['pseudo']; $_SESSION['logged']; // D'abord, on se connecte à MySQL $cnx=mysql_connect("**********", "***********", "********") or die("Pb connexion au serveur".mysql_error()); $db=mysql_select_db("**********") or die("Pb selection base".mysql_error()); if (isset($_POST['message'])) // Si les variables existent { if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $timestamp = time(); $expediteur = $_SESSION['pseudo']; $destinataire = $_GET['pseudo']; // Ensuite on enregistre le message mysql_query("INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')"); } } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>t'chat uncupidon</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); /* Affiche le Javascript */?> <script type="text/javascript"> function refresh() { chat(); setTimeout("refresh()", 5000); } </script> </head> <style type="text/css"> #chatcomplet { width:400px; height:400px; background-repeat: no-repeat; border: 1px solid black; } #lecture { position : absolute ; width:400px; height:300px; background-color: red; color : yellow; overflow : scroll ; border: 1px solid green; } #message { background-color: green; background-attachment: fixed; width:400px; height:100px; border: 1px solid green; padding: 1px; padding-top: 300px; } </style> <body> <div id="chatcomplet"> <form action="<?php echo'chat.php?pseudo='.$pseudo.''?>" method="post"/> <div id="lecture"> $reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'"); while ($donnees = mysql_fetch_array($reponse) ) { $date = date('d/m/Y \à H\hi', $donnees2['timestamp']); $message = $donnees['message']; $expediteur = $donnees['expediteur']; $pseudo= $_GET['pseudo']; $retour='<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>'; } </div> <div id="message"> <p>Message : <input type="text" name="message" size="30"/><br /> <input type="submit" value="Envoyer" /> </p> </div> </div> <?php mysql_close(); ?> </form> </body> </html> -
@micka30up
-
@micka30j'ouvre un autre poste avec un titre plus explicite!
-