docanski
2013-05-14 15:38:59 UTC
Bonjour toutes/tous,
Retiré depuis un bon bout de temps du code destiné au Web, suis obligé
de créer un "chat", avec stockage des messages dans une BdD, Free
refusant ceci dans un fichier tete. Pour ce faire, j'ai récupéré dans
mes archives une série de scripts/pages plus ou moins correctes (enfin,
je pense ...) et envoyé le tout sur site. Ça "marche", c'est déjà un bon
point. Néanmoins, j'ai quelques petites problèmes, le 1er étant
essentiellement la profondeur du stockage et son affichage dans la
fenêtre du chat : cet affichage se limite aux 2/3 de la fenêtre et les
messages les plus anciens disparaissent au fur et à mesure de l'arrivée
des suivants. Or, dans la BdD (qui ne comporte qu'une table, celle qui
stocke les messages), j'ai une profondeur de stockage bien plus
importante. Mais elle ne s'affiche pas et je ne vois pas pourquoi.
Dans les variables de cette table, j'ai ceci, lors de leur création :
<code>
`pseudo` VARCHAR(30) NOT NULL,
`message` VARCHAR(255) NOT NULL,
`date` VARCHAR(30) NOT NULL,
`formatage` VARCHAR(10) NOT NULL,
`temp` INT(30) NOT NULL,
</code>
Pour les 4 premiers, pas de problème, j'en comprends l'intérêt et la
présence.
C'est pour le 5ème que je m'interroge et je ne trouve aucune information
sur le web, du moins en français. Serait-ce celle à modifier ?
La requête vers la BdD destinée à l'affichage comporte le code suivant :
<code>
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$tm=microtime();$tm2=explode(" ",$tm);$tm3=$tm2[1];
$query = "DELETE FROM $table WHERE (temp+7777)<$tm3";
mysql_query($query,$ide);
$query = "SELECT * FROM $table ORDER BY id DESC";
$result = mysql_query($query,$ide);
$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;
$coul=substr($row[4],0,1);
$tail=substr($row[4],1,1);
$appa=substr($row[4],2,1);
$msg=$row[2];
if ($appa==1){$msg.=$row2;}
if ($appa==2){$msg2="<B>";$msg2.=$msg;$msg2.="</B>";$msg=$msg2;}
if ($appa==3){$msg2="<I>";$msg2.=$msg;$msg2.="</I>";$msg=$msg2;}
if ($appa==4){$msg2="<U>";$msg2.=$msg;$msg2.="</U>";$msg=$msg2;}
if ($appa==5){$msg2="<STRIKE>";$msg2.=$msg;$msg2.="</STRIKE>";$msg=$msg2;}
if ($coul==1){$msg2='<FONT
COLOR="#000000">';$msg2.=$msg;$msg2.="</FONT>";$msg=$msg2;}
if (snip la suite des couleurs) ...
echo"- <u>$row[1]</u> <font color=\"999999\">[$row[3]]</font> : $msg<br>";
if ($cpt==20) {break;}
}
MYSQL_CLOSE();
?>
</code>
Celle structurant le message est la suivante :
<code>
<?
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$query = "SELECT * FROM $table";
$result = mysql_query($query,$ide);
$taille = "1";
$datime = date("H:i");
$message2 = htmlentities($txt);
$message3 = nl2br($message2);
$formatage=$couleur;
$formatage.=$taille;
$formatage.=$attrib;
$tmp=microtime();$tmp2=explode(" ",$tmp);$tmp3=$tmp2[1];
if ($txt != "" and $pseudo != "")
{
$query = "INSERT INTO $table VALUES
('0','$pseudo','$message3','$datime','$formatage','$tmp3')";
$result = mysql_query($query,$ide);
}
MYSQL_CLOSE();
?>
</code>
Quelqu'un peut me dépanner sur ce coup ?
Cordialement,
Retiré depuis un bon bout de temps du code destiné au Web, suis obligé
de créer un "chat", avec stockage des messages dans une BdD, Free
refusant ceci dans un fichier tete. Pour ce faire, j'ai récupéré dans
mes archives une série de scripts/pages plus ou moins correctes (enfin,
je pense ...) et envoyé le tout sur site. Ça "marche", c'est déjà un bon
point. Néanmoins, j'ai quelques petites problèmes, le 1er étant
essentiellement la profondeur du stockage et son affichage dans la
fenêtre du chat : cet affichage se limite aux 2/3 de la fenêtre et les
messages les plus anciens disparaissent au fur et à mesure de l'arrivée
des suivants. Or, dans la BdD (qui ne comporte qu'une table, celle qui
stocke les messages), j'ai une profondeur de stockage bien plus
importante. Mais elle ne s'affiche pas et je ne vois pas pourquoi.
Dans les variables de cette table, j'ai ceci, lors de leur création :
<code>
`pseudo` VARCHAR(30) NOT NULL,
`message` VARCHAR(255) NOT NULL,
`date` VARCHAR(30) NOT NULL,
`formatage` VARCHAR(10) NOT NULL,
`temp` INT(30) NOT NULL,
</code>
Pour les 4 premiers, pas de problème, j'en comprends l'intérêt et la
présence.
C'est pour le 5ème que je m'interroge et je ne trouve aucune information
sur le web, du moins en français. Serait-ce celle à modifier ?
La requête vers la BdD destinée à l'affichage comporte le code suivant :
<code>
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$tm=microtime();$tm2=explode(" ",$tm);$tm3=$tm2[1];
$query = "DELETE FROM $table WHERE (temp+7777)<$tm3";
mysql_query($query,$ide);
$query = "SELECT * FROM $table ORDER BY id DESC";
$result = mysql_query($query,$ide);
$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;
$coul=substr($row[4],0,1);
$tail=substr($row[4],1,1);
$appa=substr($row[4],2,1);
$msg=$row[2];
if ($appa==1){$msg.=$row2;}
if ($appa==2){$msg2="<B>";$msg2.=$msg;$msg2.="</B>";$msg=$msg2;}
if ($appa==3){$msg2="<I>";$msg2.=$msg;$msg2.="</I>";$msg=$msg2;}
if ($appa==4){$msg2="<U>";$msg2.=$msg;$msg2.="</U>";$msg=$msg2;}
if ($appa==5){$msg2="<STRIKE>";$msg2.=$msg;$msg2.="</STRIKE>";$msg=$msg2;}
if ($coul==1){$msg2='<FONT
COLOR="#000000">';$msg2.=$msg;$msg2.="</FONT>";$msg=$msg2;}
if (snip la suite des couleurs) ...
echo"- <u>$row[1]</u> <font color=\"999999\">[$row[3]]</font> : $msg<br>";
if ($cpt==20) {break;}
}
MYSQL_CLOSE();
?>
</code>
Celle structurant le message est la suivante :
<code>
<?
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$query = "SELECT * FROM $table";
$result = mysql_query($query,$ide);
$taille = "1";
$datime = date("H:i");
$message2 = htmlentities($txt);
$message3 = nl2br($message2);
$formatage=$couleur;
$formatage.=$taille;
$formatage.=$attrib;
$tmp=microtime();$tmp2=explode(" ",$tmp);$tmp3=$tmp2[1];
if ($txt != "" and $pseudo != "")
{
$query = "INSERT INTO $table VALUES
('0','$pseudo','$message3','$datime','$formatage','$tmp3')";
$result = mysql_query($query,$ide);
}
MYSQL_CLOSE();
?>
</code>
Quelqu'un peut me dépanner sur ce coup ?
Cordialement,
--
docanski
Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
docanski
Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/