le probleme c'est que si une personne laisse un message contenant un mot trop long, cela a pour effet de l'agrandir en largeur(width) .
pourquoi ??
comment faire pour que cela ne le fasse pas ???
<?PHP //connection à la base de données. ici localhost car easy php, root user par defaut de easyphp et pas de mdp mysql_connect("localhost","root",""); //selection de la base mysql_select_db("XXXX");
$erreur = 0; // definition d'une variable qui va servir pour verifier lme message
if(isset($_POST['mini_pseudo']) and isset($_POST['mini_message']))// si on a appuyer sur le bouton "poster" { $mini_pseudo=addslashes($_POST['mini_pseudo']); // on rajoute des \ pour les caracteres speciaux $mini_message=addslashes($_POST['mini_message']);
if($mini_pseudo==NULL)$erreur=1;// si le pseudo n'est pas communiqué alors erreur
if($mini_pseudo=="admin")$erreur=1;// pour eviter que des petits malins s'amuse a poster avec ce nom
if($mini_pseudo=="adminmotdepasse")$mini_pseudo="admin"; // redefinition du mot de passe pour poster en admin
if($mini_message==NULL)$erreur=1;// si le message n'est pas communiqué alors erreur
// on va recuperer les dernier id dans la table pour ensuite comparer avec celui envoyer et ne pas l'enregistrer si c'est un doublon $id_dernier=-1; $rep=mysql_query("SELECT `id` FROM `mini_message`"); while($donnees=mysql_fetch_array($rep)) { if($id_dernier<$donnees['id'])$id_dernier=$donnees['id']; }
// on recupere les info sur le dernier message poster $rep=mysql_query("SELECT * FROM `mini_message` WHERE `id`='".$id_dernier."'"); while($donnees=mysql_fetch_array($rep)) { if($mini_pseudo==$donnees['pseudo'] and $mini_message==$donnees['message'])$erreur=1; //si le pseudo et le message sont les meme, erreur }
if($erreur==0) { mysql_query("INSERT INTO `mini_message` VALUES('','".$mini_pseudo."','".$mini_message."','".$_SERVER['REMOTE_ADDR']."','".time()."')"); } }
//AFFICHAGE DES X DERNIERS MESSAGES
$conf=mysql_query("SELECT `valeur` FROM `mini_conf` WHERE `nom`='nombre_affiche'"); // recuperation du nombre de message pour la fenetre chat $nb_mess_array=mysql_fetch_array($conf); $nb_mess=$nb_mess_array['valeur'];
$recup=mysql_query("SELECT * FROM `mini_message` GROUP BY `id` DESC LIMIT 0,".$nb_mess); // récuperation de toutes les donnees contenues dans la table des $nb_mess derniers messages
while($donnees=mysql_fetch_array($recup)) { $pseudo=stripslashes($donnees['pseudo']); $message=htmlentities(stripslashes($donnees['message'])); echo"<span style=\"white-space:pre\"> </span><b>".$pseudo."</b> : ".$message."<br><hr>"; // <span style=\"white-space:pre\"> </span> permet de faire un leger espace entre la bordure et le pseudo } ?>
<form method="post"><!-- on ne presise pas l'action, c'est la meme page qui est la cible -->
<div align="center">
<label>Pseudo : <br><input type="text" value="" size="18" name="mini_pseudo" maxlength="20"></label><br>
<!-- size = taille de la saisie // maxlength = nombre maximum de caractere // value = valeur par default -->
<label>Message : <br><textarea name="mini_message" rows="4" cols="14">
</textarea></label><br>
<!-- rows = nombre de ligne dans la zone de texte // cols = nombre de colonne, de caractere par ligne -->
Y'a pas 30 solutions, soit tu trouves un moyen de bloquer les mots trop long soit tu fais un overflow sur ton tableau pour éviter de bousiller ton design.
tableau
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.