Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   Petit prob de mis en page avec mysql ! (http://www.ndfr.net/forums/showthread.php?t=4440)

bastien 17-06-2004 12:42

Petit prob de mis en page avec mysql !
 
Bonjour à tous !
Je vous expose mon problème !

Je suis en train de me lancer dans mysql tout doucement ...
Je créé donc un système perso de news pour un site. Mais j'ai un petit problème pour l'affichage de ma news avec les retours à la ligne ! Lorsque je fais un retour à la ligne avec mon champs de texte, j'aimerais qu'ensuite il soit "retranscris" dans l'affichage de la news ! J'espère que vous avez compris ;o)

Voici les codes :

Champ de texte :
Code:

<textarea name="contenu" rows="10" wrap="VIRTUAL"></textarea>
Insertion dans sql :
Code:

$date=date("d/m/Y");
require("../confmysql.php");
mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
mysql_select_db("$sql_bdd");
mysql_query("INSERT INTO $sql_table_news VALUES('', '$date', '$titre', '$contenu', '$auteur')");
mysql_close();

Affichage de la news :
Code:

require("../confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
$requete = "SELECT * FROM $sql_table_news";
$result = mysql_db_query("$sql_bdd", $requete);
ereg_replace("\n","<br>",$contenu);
mysql_close($mysql_link);
echo "<table>";
while ($voir = mysql_fetch_array($result))
echo "<big><b>".$voir[id]."</b></big> | ".$voir[titre]."<br>Par ".$voir[auteur]." le ".$voir[date]."<br>".$voir[contenu]."<br><br>";

Après quelques recherches sur le net, j'ai mis cette fonction : ereg_replace("\n","<br>",$contenu); mais aucun résultat ! J'espère que vous pourrez m'aider !

Au passage, si vous avez quelques conseils sur ces codes, n'hésitez pas ! Toute remarque est constructive !!!

Merci d'avance !

SantX 17-06-2004 13:12

Re: Petit prob de mis en page avec mysql !
 
Salut zyk,

Il existe en PHP, une fonction nl2br, qui transforme automatiquement les retour chariots en <br> !

Tu devrais essayer, juste avant d'envoyer le texte dans la base de données, un $contenu = nl2br($contenu) ;) !

Je pense que ça devrait aller ^^

Spycam 17-06-2004 14:08

Re: Petit prob de mis en page avec mysql !
 
Voilà.

Je te conseille aussi de mettre
$contenu=htmlentities($contenu,ENT_QUOTES);
pour éviter les problèmes de type XSS ( éxecution du code contenu dans $contenu :) ).

bastien 17-06-2004 15:18

Re: Petit prob de mis en page avec mysql !
 
Simplement nickel !
Merci ! ;)

Drim 21-06-2004 13:05

Re: Petit prob de mis en page avec mysql !
 
Une question, elle fait quoi de spéciale cette fonction
Code:

$contenu=htmlentities($contenu,ENT_QUOTES);
J'ai compris que c'étais pour éviter le XSS (Cross Site Scripting) donc je suppose qu'elle empeche utilisation de balises <script>, et des guillemets ",' .
C ca ?

Spycam 21-06-2004 14:40

Re: Petit prob de mis en page avec mysql !
 
Non, c'est juste qu'elle convertit tous les caractères spéciaux en entité HTML.
par exemple :
'&' (et commercial) devient '&amp;' ·
'"' (guillemet double) devient '&quot;' si ENT_NOQUOTES n'est pas actif ·
''' (guillemet simple) devient ''' si ENT_QUOTES est actif ·
'<' (inférieur à) devient '&lt;' ·
'>' (supérieur à) devient '&gt;'

Elle prend un argument optionnel
qui indique ce qui doit être fait avec les guillemets simples et doubles. ENT_COMPAT (par défaut) convertira
les guillemets doubles, et ignorera les guillemets simples. ENT_QUOTES convertira les deux types de
guillemets et ENT_NOQUOTES les ignorera tous les deux.

Merci à la doc de PHP :D

Il faut toujours avoir une doc du language dans lequel on programme.
Pour PHP, cours vite ici : http://www.nexen.net/docs/php/


All times are GMT +2. The time now is 15:35.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.