Bonjour,
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>

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>