Probleme pour les posts (PHP)

Résolu
Bonjour,
j'ai essayé de créer un forum rudimentaire en php , il marche enfin presque , il y a un probleme :
quand je remplis une zone de texte comme ca par exemple:

ceci est un texte
je suis a la ligne

il y aura marqué :

ceci est un texte je suis a la ligne

alors comment pn peut faire pour eviter ça? il y a deja une fonction ou je dois la créer moi même?
help svp ^^
Configuration: Windows Vista
Firefox 2.0.0.9

5 réponses

  1. Modérateur
    Salut,

    Il faut que tu remplaces les "\n" (saut de ligne standard) en "<br/>" (saut de ligne html).
    Tu peux utiliser str_replace pour ça.
    0
    1. merci mais quelle est la syntaxe exacte ce cette instruction?
      0
  2. Modérateur
    Prends l'habitude de voir les détails sur les fonctions sur le site officiel: php.net. Ce site est la bible du Php.
    http://fr3.php.net/manual/fr/function.str-replace.php
    $chaine = str_replace("sous chaine à remplacer", "sous chaine de remplacement", $chaine);
    =>
    $chaine = str_replace("\n", "<br/>", $chaine);
    0
    1. ca marche toujours pas :s

      bon voici mon code php:

      <?php
      if (isset($_POST['name_topic']) and $_POST['name_topic'] != "" and isset($_POST['name']) and $_POST['name'] != "")//si le nom du topic et le pseudo existent et si il y quelque chose
      {
      $name_topic = $_POST['name_topic'];// on créer la variable nom du topic
      $name_topic = str_replace('\n', "<br/>", $name_topic);
      $in_topic = $_POST['in_topic'];// on créer la variable contenu du topic
      htmlspecialchars ($in_topic);
      $name = $_POST['name'];// on créer la variable du pseudo pour le cookie
      htmlspecialchars($name);
      setcookie(name,$name,time() + 60*60*24*30*12); // on créer le cookie qui contien le pseudo
      $topics = fopen("file:///C:/datawamp/topics.html","a");// on ouvre le fichier des topics
      fputs($topics, "<li>par ".$name." le".date('d/m/Y à H:i:s ')." <a href='".$name_topic.".php'>".$name_topic."</a></br>");//on écrit le lien du topic dans la liste des topics
      fclose($topics);// on ferme le fichier
      $topic = fopen("file:///C:/wamp/www/".$name_topic.".php","a");// on créer le fichier topic
      fputs($topic, "<center><h2>".$name_topic."</h2></center></br>");// on écrit le nom du topic en haut de la page
      fputs($topic,$in_topic);// on écrit le contenu du topic
      fclose($topic);//on ferme le fichier
      echo '<title>message posté</title>';
      echo '<center><h2>votre message a bien été posté</h2></br>';
      echo 'cliquez <a href="forum.php">ici</a> pour revenir au forum</center>';
      }
      else //sinon
      {
      if (isset($_POST['name']) and $_POST['name'] == "")//verifie si le pseudo est vide
      {echo "vous n'avez pas mit de pseudo!</br>";}//si oui affiche un message d'erreur
      if (isset($_POST['name']) and $_POST['name_topic'] == "")//verifie si le pseudo est vide
      {echo "vous n'avez pas mit de nom de sujet!";}//si oui affiche un message d'erreur
      ?>
      <title>poster un message</title>
      <center><h2>poster un message</h2></center>
      <form action="poster.php" method="post">
      pseudo:<input type="text" name="name" value="<?php echo $_COOKIE['name'] ?>" /></br>
      nom du topic:<input type="text" name="name_topic" /><br />
      <textarea name="in_topic" rows="8" cols="45">
      </textarea></br>
      <input type="submit" value="Poster" />
      </form>
      <?php
      }
      include ("file:///C:/datawamp/ip.php");
      ?>

      il y a une erreur quelque part mais ou svp?
      0
      1. Modérateur
        '\n' est différent de "\n"
        '\n' c'est la chaine \n alors que "\n" symbolise le caractère de retour à la ligne.
        Dans ton str_replace, mets des guillemets doubles comme j'ai mis dans mon exemple au dessus.
        0
        1. j'ai trouvé

          $in_topic = str_replace('
          ', "<br/>
          ", $in_topic);

          c'était pas sorcier^^
          0