probleme de nl2br()

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 : probleme de nl2br()

par BeRoots » 31 mars 2008, 22:24

oki merci c'etait bien dut au fait que j'avais moi même inserer en db avec //n :oops:

encore merci pour vos conseils ;)

par Victor BRITO » 31 mars 2008, 22:04

Montre nous le code qui te permet d'insérer cette valeur en base (et les fonctions éventuelles que tu utilises pour la protéger), car c'est de là que vient le soucis ;)
Ainsi que le phpinfo() généré, notamment la ligne concernant magic_quotes.

par Ryle » 31 mars 2008, 11:53

Non seulement il y a moyen, mais c'est surtout ce qu'il faut faire ! :)
Il n'y a - en théorie - aucune raison de voir apparaitre des "\n" dans ta base de données.

Tu as du coller un addslashes() ou autre à ta variable avant l'insertion en base, transformant le retour charriot \n en \\n, indiquant à ta base qu'il ne s'agissait pas d'un retour à la ligne mais du caractère antislash suivit d'un n.

A voir également s'il ne s'agit pas d'un cumul entre les magic_quotes, un real_escape ou autre... Montre nous le code qui te permet d'insérer cette valeur en base (et les fonctions éventuelles que tu utilises pour la protéger), car c'est de là que vient le soucis ;)

par BeRoots » 31 mars 2008, 02:42

n'y a t'il donc pas moyen d'enregistrer des saut de ligne \n en db et de les retrouver tel quel en retour?

merci à vous pour de plus ample information à ce problème ;)

par Berzemus » 30 mars 2008, 20:51

tel quels ? donc dans les champs texte, il y a "\n" ?

Alors il faut remplacer ces "caractères" par une vraie nouvelle ligne.
quelque chôse comme ceci:
$avec = str_replace('\n',"\n",$sans);

par BeRoots » 30 mars 2008, 19:15

oki j'ai essayer ceci mais rien de mieux :-k
/ on recupere les informations pour le theme choisi via get
      $sql3 = "SELECT * FROM `".$table."` WHERE `nom` = '".addslashes($theme)."';";
      $result3 = $connecteur_db->query($sql3, 'client');
      while($tabl_sql3 = mysql_fetch_assoc($result3))
      {
         $instructions = htmlentities($tabl_sql3['instructions'], ENT_QUOTES, 'ISO-8859-15');
         $instructions = str_replace("\n", "<br/>", $instructions);
      }
même str_replace ne marche pas :?
mes \n sont representer telle qu'elle en db...

si quelqu'un à une idée ;)

par Hubert Roksor » 30 mars 2008, 16:47

La fonction les insère avant, mais sinon c'est ça :)

par h0_noMan » 30 mars 2008, 15:55

nl2br() ne remplace en aucun cas les \n
Elle ne fait qu'ajouter un <br /> après.

par Victor BRITO » 30 mars 2008, 12:31

eum, quand tu dis que tu vois "\n" dans ta db, tu le vois tel quel "\n", ou tu vois qu'il y a un retour à la ligne ?
Encore faut-il ne pas lire les données depuis un fichier SQL d'export (qui convertit les retours à la ligne par des \n, justement).

par Berzemus » 30 mars 2008, 12:27

eum, quand tu dis que tu vois "\n" dans ta db, tu le vois tel quel "\n", ou tu vois qu'il y a un retour à la ligne ?

par Hywan » 30 mars 2008, 11:29

Salut,

et si tu remplaces la fonction nl2br par ta propre fonction qui va remplacer les "\n" (strictement) par un trait de soulignement (_) ? On sera fixé.

probleme de nl2br()

par BeRoots » 30 mars 2008, 05:14

salut à tous :)

j'ai un soucis de nl2br que je ne m'explique pas:
      // on recupere les informations pour le theme choisi via get
      $sql3 = "SELECT * FROM `".$table."` WHERE `nom` = '".addslashes($theme)."';";
      $result3 = $connecteur_db->query($sql3, 'client');
      while($tabl_sql3 = mysql_fetch_assoc($result3))
      {
         $instructions = nl2br(htmlentities($tabl_sql3['instructions'], ENT_QUOTES, 'ISO-8859-15'));
      }
pas moyen de convertir ce \n en <br /> :?
j'ai essayer le nl2br comme l'exemple et aussi à l'echo de $commentaire et j'ai bien ce \n en db comme dans ma var $instruction.

mon soucis est que ce \n s'affiche à l'écran alors que je veut un saut de ligne...

je le fait pourtant bien sur d'autre page mais ici il ne fonctionne pas :-k
si quelqu'un à une idée ?
merci d'avance :)