Probleme pour les posts (PHP)

Résolu
lemafieu Messages postés 246 Statut Membre -  
lemafieu Messages postés 246 Statut Membre -
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. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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. lemafieu Messages postés 246 Statut Membre 17
       
      merci mais quelle est la syntaxe exacte ce cette instruction?
      0
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  3. lemafieu Messages postés 246 Statut Membre 17
     
    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
  4. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    '\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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lemafieu Messages postés 246 Statut Membre 17
     
    j'ai trouvé

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

    c'était pas sorcier^^
    0