problème d'affichage

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'affichage

par jide » 23 févr. 2007, 01:02

Résolu...

Au cours de mes tests, j'écrivais (...) le message par appui répétitif sur une touche, sans le moindre espace. En aménageant des espaces (au hasard), tout rentre dans l'ordre, tout fonctionne bien avec le code initial du script.

Merci encore.

par jide » 22 févr. 2007, 00:41

Quelle réactivité !

...Confondre "l" et "1" :(

Bon... Toujours le même problème. Je propose une vision du code plus large :

Code : Tout sélectionner

<? if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['email'])) { if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $_POST['email'])) { $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); $email = htmlentities($_POST['email'], ENT_QUOTES); $message = htmlentities($_POST['message'], ENT_QUOTES); $value1 ='Votre pseudo'; $value2 ='Votre message'; include("Divers/smiley.php"); mysql_query("INSERT INTO livreDor VALUES('', '" . $pseudo . "', '" . $message . "', '" . time() . "', '" . $email . "')"); } else { $value1 = $_POST['pseudo']; $value2 = $_POST['message']; ?> <h3>L'adresse e-mail saisie n'est pas valide, merci de la corriger !</h3> <? } } else { $value1 ='Votre pseudo'; $value2 ='Votre message'; } ?> <form method="post" action="livre.php"> <p><? echo $phraseLOr ; ?></p> <p class="aligng"> <input name="email" size="21"value="Votre e-mail" /> </p> <p class="aligng"> <input name="pseudo" value="<? echo $value1 ; ?>" /> </p> <p> Le <a href="faq.php">BBCode</a> et les <a href="faq.php">Smileys</a> peuvent être utilisés dans votre message (<a href="faq.php">aide>>></a>)</p> <p> <textarea name="message" rows="8" cols="35"><? echo $value2 ; ?></textarea> <br /><br /> <input type="submit" value="Envoyer" /> </p> </form> <? $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM livreDor"); $donnees = mysql_fetch_array($retour); ?> <p class="centre"><em>Il y a <? echo $donnees['nbre_entrees']; ?> message(s) dans le livre d'or !</em><br /><br /></p> <? $MessPage = 10; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreDor'); $donnees = mysql_fetch_array($retour); $total = $donnees['nb_messages']; $Pages = ceil($total / $MessPage); if (isset($_GET['page'])) { $page = intval($_GET['page']); } else { $page = 1; } $premierMess = ($page - 1) * $MessPage; $reponse = mysql_query('SELECT * FROM livreDor ORDER BY id DESC LIMIT ' . $premierMess . ', ' . $MessPage); while ($donnees = mysql_fetch_array($reponse)) { $message = nl2br($donnees['message']); ?> <h4 class="entmess"><a href="mailto:<? echo $donnees['email']; ?>"><? echo $donnees['pseudo'];?></a> le <? echo date('d/m/Y', $donnees['timestamp']); ?> :</h4> <p class="messag"><? echo nl2br($message) ; ?></p> <? } mysql_close(); ?>
J'ai pas essayé l'alternative de Ajoloca ...ne voyant pas vraiment où la placer (mais j'essaierais volontiers, avec encore de l'aide).

Merci

par Ajoloca » 21 févr. 2007, 23:50

Re,

C'est pas le chiffre 1 (un) mais la lettre l (L).

Le nom de la fonction signifie -new line to <br /> - .

Si elle ne fonctionnait pas, ce qui n'étonnerai beaucoup, voici une équivalente
<?php
	function my_nl2br($str){
		$nl = Array("\n\r", "\n", "\r");
		return str_replace($nl, '<br />', $str);
	}
?>

par lord.anonymous » 21 févr. 2007, 23:48

fonction nl2br(); et non pas n12br();

par jide » 21 févr. 2007, 23:43

D'abord, merci de ton attention.

J'ai le message d'erreur (dans le champ de consultation) :

Fatal error: Call to undefined function: n12br() in c:\program...

NB : je fais mes tests en local, avec EasyPhp 1.8.

Quand tu parles de la structure du message, s'agit-il de textarea ? :

Code : Tout sélectionner

<p> <textarea name="message" rows="8" cols="35"><? echo $value2 ; ?></textarea> <br /><br /> <input type="submit" value="Envoyer" /> </p> </form>
Merci de ton indulgence. J'utilise (trop) peu les forums et je suis tout débutant en Php.

par Ajoloca » 21 févr. 2007, 22:19

Bonsoir,

Ne sachant pas comment est structuré ton message, je te propose une solution à l'aveugle. Tu verras bien.
Si ça ne fonctionne pas dis-nous comment ton message est structuré.
<p class="messag"><? echo nl2br($message) ; ?></p>

par jide » 21 févr. 2007, 22:12

Bonsoir à tous,

Entendu... Le caractère approximatif de ma demande est à la mesure de mon incertitude quant à l'origine du problème : code ou css ?

Code : Tout sélectionner

<h4 class="entmess"><a href="mailto:<? echo $donnees['email']; ?>"><? echo $donnees['pseudo'];?></a> le <? echo date('d/m/Y', $donnees['timestamp']); ?> :</h4> <p class="messag"><? echo $message ; ?></p>
"messag" est la zone de lecture des messages
"entmess" contient le pseudo puis la date

CSS

.messag {
text-align: left;
padding-left: 7px;
padding-right: 7px;
margin: 0 20px 0 20px;
border-width: 0 1px 1px 1px;
border-style: solid;
border-color: #A3C0D5;
}

.entmess {
text-align: left;
padding-left: 7px;
background-color: #E9F0F5;
border-width: 1px 1px 0 1px;
border-style: solid;
border-color: #A3C0D5;
margin: 0 20px 0 20px;
}

Merci encore

par albat » 21 févr. 2007, 11:12

En effet. ;)

Il serait judicieux que tu nous présentes le portion de code à l'origine de ton souci,
afin que nous puissions te conseiller et te guider dans la correction à y apporter.

par Ultim4T0m » 21 févr. 2007, 11:03

:D

Ce que demande albat, c'est simplement une vraie question et un support sur lequel nous puissions t'aider.
Expliquer ton problème ne suffit pas... Qu'attends-tu des membres de ce forum ?

par albat » 21 févr. 2007, 09:36

d'accord. :langue:

problème d'affichage

par jide » 21 févr. 2007, 09:29

Bonjour,

J'ai réalisé un livre d'or (php/mysql). J'ai un problème concernant l'affichage des messages, qui correspond à une simple restitution sur un background-color. Le texte n'est pas "formaté", il sort largement de la "fenêtre" prévue...

Merci de m'aider

jide