Textarea problème

Résolu
Hoeneim Messages postés 346 Statut Membre -  
Hoeneim Messages postés 346 Statut Membre -
Bonjour, j'aurais voulu savoir comment autoriser de poster du code html dans un textarea ?

14 réponses

Nico_ Messages postés 1302 Statut Membre 189
 
bonjour,

rien ne t'empêche de mettre du code html dans un textarea.
c'est le traitement de ton formulaire qui peut être plus compliquer

Quel est ton problème?
0
Utilisateur anonyme
 
Le contenu de ta textarea est envoyé puis traité par un script php ?

Si c'est ça, pourrais tu envoyer le code du script php ?
0
Hoeneim Messages postés 346 Statut Membre 56
 
Oui c'est un script de news, il me semble que c'est htmlentities j'ai crus voir un sujet là dessus mais je ne sais pas quoi en faire, j'ai essayé de le supprimer mais rien y fait, le code apparait en tant que text.
Merci à vous.

<?
//// Cap_news v1.0 12/05/2004 ////
session_start(); 

if(!isset($_SESSION['ident'])) {
    $_SESSION['ident'] = false ;
}

require_once('config.php');

$db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
mysql_select_db(SQL_BDD);

if(isset($_POST)) {
    foreach($_POST as $k => $v) {
        $_POST[$k] = trim(htmlspecialchars($v)) ;
    }
}
if(isset($_GET)) {
    foreach($_GET as $k => $v) {
        $_GET[$k] = trim(htmlspecialchars($v)) ;
    }
}

//print'<style type="text/css"> @import url(css-capnews.css); </style>';

if(isset($_POST['login']) && $_POST['login'] == LOGIN 
    && isset($_POST['pass']) && $_POST['pass'] == PASS) {
    $_SESSION['ident'] = true ;
}

if($_SESSION['ident'] == false) {
    print ' <div id="cap_cadre"><br /><br /><strong>Identification</strong>
    <form action="admin.php" method="post">
    Login<br />
    <input type="text" name="login" size="25" /><br />
    Password<br />
    <input type="password" name="pass" size="25" /><br />
    <input type="submit" value="Valider" /></form></div>';
}
elseif($_SESSION['ident'] == true) {
   
    if(isset($_POST['send'])) {
        if($_POST['send'] == 'new') {
        $sql = "INSERT INTO cap_news (auteur,date,titre,news,active)
        values
        ('".$_POST['auteur']."',now(),'".$_POST['titre']."','".$_POST['news']."','1')";
        }
        elseif($_POST['send'] == 'update') {
        $sql = 'update cap_news set titre = "'.$_POST['titre'].'", auteur =
        "'.$_POST['auteur'].'", news = "'.$_POST['news'].'", date =
        "'.$_POST['date'].'" WHERE newsId = "'.$_POST['newsId'].'"';
        }
        mysql_query($sql,$db_link) or die(mysql_error());
    }
    if(isset($_GET['delete']) and is_numeric($_GET['delete'])) {
       mysql_query("delete from cap_news where newsId =
       \"".$_GET['delete']."\"",$db_link);
       header("location: admin.php");       
    }
    if(isset($_GET['edit']) and is_numeric($_GET['edit'])) {
        $Id = $_GET['edit'] ;
        $sql = 'SELECT * FROM cap_news WHERE newsId = "'.$Id.'" LIMIT 1' ;
        $rc = mysql_query($sql,$db_link);
        while($data = mysql_fetch_array($rc)) { 
            print '<div id="cap_cadre">
            <form action="admin.php" method="post">
            <strong>Modification d\'une news :</strong><br /><br />
            Titre<br />
            <input type="text" name="titre" maxlength="120"
            value="'.htmlentities($data['titre']).'"/><br />
            Auteur<br />
            <input type="text" name="auteur" maxlenght="60"
            value="'.htmlentities($data['auteur']).'" /><br />
            Date de la News<br />
            <input type="text" name="date" size="10" value="'.$data['date'].'" />
            News (sans html)<br />
            <textarea name="news" cols="40"
            rows="6">'.htmlentities($data['news']).'</textarea>
            <br /><input type="submit" value="Valider" />
            <input type="hidden" name="newsId" value="'.$_GET['edit'].'" />
            <input type="hidden" name="send" value="update" />
            </form>
            <hr /><br />';
        }
    }
    else {
        print '<div id="cap_cadre">
        <form action="admin.php" method="post">
        <strong>Ajouter une news :</strong><br /><br />
        Titre<br />
        <input type="text" name="titre" maxlength="120" /><br />
        Auteur<br />
        <input type="text" name="auteur" maxlenght="60" /><br />
        News (sans html)<br />
        <textarea name="news" cols="40" rows="6"></textarea>
        <br /><input type="submit" value="Valider" />
        <input type="hidden" name="send" value="new" />
        </form>
        <hr /><br />
        <strong>Gestion des News :</strong><br /><br /><ul>';
    
        $sql = 'SELECT * FROM cap_news ORDER BY newsId DESC' ;
        $rc = mysql_query($sql,$db_link);
        while($data = mysql_fetch_array($rc)) {
            print '<li>
            Le '.$data['date'].' par '.$data['auteur'].', Titre : '.$data['titre'].'
            <br />=> <a href="?delete='.$data['newsId'].'">Supprimer</a> - 
            <a href="?edit='.$data['newsId'].'">Editer</a></li>
            ';
        }
        print'</ul>' ;
    }
    print'</div>';
}


//// Capoune.net ////
?>
0
Archeus01 Messages postés 1681 Statut Membre 452
 
[edit] J'ai rien dit, poste déjà résolu[/edit]
0
Utilisateur anonyme
 
normalement il te suffirait de supprimer tous les htmlentities() présents dans le code, je ne vois pas trop pourquoi cela ne fonctionne pas en les supprimants... tu n'a pas d'erreurs d'affichés ?
0

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

Posez votre question
Hoeneim Messages postés 346 Statut Membre 56
 
J'ai une erreur Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING sur les lignes où se trouvait les htmlentities.
Enfait je dois pas les supprimer correctement (moi et le php... :S )
Tu pourrais m'indiquer quoi supprimer pour éviter l'erreur de syntaxe ?
J'ai essayé plusieurs choses mais j'ai jamais la bonne syntaxe =(
0
Utilisateur anonyme
 
Il te suffie de supprimer le nom de la fonction et les paranthèse :

htmlentities($data['news'])

$_GET[$k] = trim(htmlspecialchars($v)) ;

deviendront
$data['news']

$_GET[$k] = trim($v) ;
0
Hoeneim Messages postés 346 Statut Membre 56
 
Merci beaucoup de m'aider mais malheureusement j'ai toujours l'erreur: Parse error: syntax error, unexpected T_STRING
J'ai remplacé mon textarea par ça :
  <textarea name="news" cols="40"
            rows="6">$data['news']</textarea>
0
Utilisateur anonyme
 
<textarea name="news" cols="40" rows="6">'.$data['news'].'</textarea>

il faut laisser les " '. " et " .' " ;)
0
Hoeneim Messages postés 346 Statut Membre 56
 
Merci beaucoup le html fonctionne.
Tu aurais une solution pour que les accents s'affichent correctement?
J'ai essayé de mettre une meta dans l'index du script (où les news sont écrites ) mais rien y fait. Devrais-je ajouter quelque chose dans ce code-ci ? (posté plus haut)
0
Utilisateur anonyme
 
dans ton meta, tu a mis charset=utf-8 ou charset=iso-8859-1 ? si tu a mis utf-8 essai en remplaçant par isp-8859-1 et vice-versa.
sinon tu peu essayer de remplacer les htmlentities par des " utf8_encode() "
0
Archeus01 Messages postés 1681 Statut Membre 452
 
Ca ne changera pas son problème sur IE à mon avis...
/me va se faire gronder et donne une mauvaise idée. Et si on changeait les é par des & eacute; et les è par des & eagrave; ?

Qu'est-ce que ça t'affiche exactement à la place d'un é? (comme sa on saura si iso ou si UTF-8)
0
Utilisateur anonyme
 
il faudrait le faire manuellement, le faire automatiquement voudrait dire réutiliser htmlentities ...

(merci microsoft pour ce superbe navigateur...)
0
Hoeneim Messages postés 346 Statut Membre 56
 
En tout cas le problème est réglé sous firefox, c'est sur mon site que je devais changer le charset, j'avais due y toucher à force de bidouiller. ^^'
Et j'ai ouvert mon site avec IE et ça à l'air bon.
Merci beaucoup je pense que mes problèmes sont résolu. C'est vrai que IE n'est pas très bon... :/
Quand j'ai réalisé mon site y a fallu que je contrôle sans arrête sous IE pour voir si y avait pas une div qui se faisait la malle :/

*/Merci à Sonik21 pour sa patience ^^' */
0
Utilisateur anonyme
 
J'ai arrêter de vérifier pour IE moi... un peu marre à force ^^

Bonne continuation pour ton site ;)
0
Hoeneim Messages postés 346 Statut Membre 56
 
Merci beaucoup, je passe en résolu ^^
0