Bonjour,
J'aurais une question sur un petit chat flash/php sans prétention que je suis en train de mettre en place.
Mon problème est que lors de la première récupération, les pseudos s'affichent bien et lors d'un envoi de message ou d'une réactualisation du contenu, je ne recois plus que la première lettre du pseudo. Par contre mon texte reste complet.
Voici le code côté FLASH :
inscrits.text = _root.pseudo;
result_text.html = true;
var php_process:LoadVars = new LoadVars();
var ClavierEcoute:Object = new Object();
ClavierEcoute.onKeyDown = function():Void {
if (Key.getCode() == Key.ENTER) {
var post_variable:LoadVars = new LoadVars();
post_variable.string = input_text.text;
input_text.text = '';
post_variable.pseudo = inscrits.text;
post_variable.sendAndLoad("sendtest.php",php_process,"POST");
}
};
Key.addListener(ClavierEcoute);
cpt = 60;
this.onEnterFrame = function() {
result_text.scroll = result_text.maxscroll;
if (cpt<60) {
cpt++;
} else {
//trace('ok');
var post_variable:LoadVars = new LoadVars();
//post_variable.string = input_text.text;
post_variable.sendAndLoad("sendtest.php",php_process,"POST");
cpt = 0;
}
};
php_process.onLoad = function(success:Boolean) {
if (success) {
//result_text.text = php_process.result;
result_text.text = '';
nb_messages = Number(this.nb_messages);
for (a=0; a<nb_messages; a++) {
_root["pseudo"+a] = this["phptab_pseudo"+a];
_root["message"+a] = this["phptab_message"+a];
result_text.htmlText += "<b>"+_root["pseudo"+a]+" : </b>"+_root["message"+a]+"\n";
//result_text.text += _root["pseudo"+a]+" : "+_root["message"+a]+"\n";
}
} else {
result_text.text = "Error connecting to server.";
}
};
stop();
Et voici la page PHP appelée dans le flash :
<?php
include 'bdd.php';
if($_POST['pseudo']){
$pseudo = addslashes(utf8_decode($_POST['pseudo']));
$lemessage = addslashes(utf8_decode($_POST['string']));
$sql = "INSERT INTO tbl_chat (id, pseudo, message) VALUES ('', '$pseudo', '$lemessage')";
$result = mysql_query($sql) or die(mysql_error());
}
$sql = "SELECT * from tbl_chat order by id ASC limit 50";
$result = mysql_query($sql) or die(mysql_error());
$php_nb_events=mysql_num_rows($result);
$i=0;
while ($data = mysql_fetch_array($result)) {
${pseudo}[$i]=$data['pseudo'];
${message}[$i]=stripslashes($data['message']);
$i++;
}
for ($a=0;$a<$i;$a++){
$phptab_pseudo.='&phptab_pseudo'.$a.'='.${pseudo}[$a];
$phptab_message.='&phptab_message'.$a.'='.${message}[$a];
}
echo utf8_encode("&result=OK&nb_messages=$php_nb_events$phptab_pseudo$phptab_message");
?>
Voilà si qqun à une idée ....
Pour voir le CHAT et le problème rdv sur : http://www.multimediateur.fr/chat/test/
Configuration: Windows XP
Internet Explorer 7.0