Probleme pour les posts (PHP)

Résolu/Fermé
lemafieu Messages postés 238 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 18 mai 2008 - 19 nov. 2007 à 18:56
lemafieu Messages postés 238 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 18 mai 2008 - 21 nov. 2007 à 19:39
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 ^^
A voir également:

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 nov. 2007 à 18:58
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
lemafieu Messages postés 238 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 18 mai 2008 17
19 nov. 2007 à 19:01
merci mais quelle est la syntaxe exacte ce cette instruction?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 nov. 2007 à 19:18
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
lemafieu Messages postés 238 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 18 mai 2008 17
19 nov. 2007 à 21:10
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 nov. 2007 à 16:25
'\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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lemafieu Messages postés 238 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 18 mai 2008 17
21 nov. 2007 à 19:39
j'ai trouvé

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

c'était pas sorcier^^
0