[PHP] Du code dans un echo

Du code dans un echo [PHP] - PHP - Programmation

Marsh Posté le 22-12-2007 à 21:41:47    

Bonjours, j'ai ( encore ) un probleme de concatenation :(
 
C'est pour faire le rendu du texte d'un article, a l'aide de la variabl $texte
 
Donc j'ai un

Code :
  1. echo "$texte"


 
le $texte est chargé de la base de donnée.
 
cela contient les info et le texte des article, pour l'instant il n'ya que du code html. ( un peu comme le forum avec les balise )
 
Je voulait savoir si il est possible de rajouter du code php dedans ( du genre <?php [le code] ?> )
 
Mais quand je fait le rendu du texte, systematiquement il ne reconnait pas le code...
 
Au pire j'avait pensser, faire une page de rendu en php dans la page d'admin, avec la tranche de date a selectionner, et que dans une texte area j'ai mon code html tout pret a copier coller
 


---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 22-12-2007 à 21:41:47   

Reply

Marsh Posté le 22-12-2007 à 22:01:16    

j'ai rien compris  
 
si tu veux que le code soit executé, regarde du cote de eval  
 
si tu veux qu'il soit afficher correctement , regarde du cote de htmlspecialchar


---------------

Reply

Marsh Posté le 23-12-2007 à 20:55:29    

J4ai un textarea, qui est a l'interieur d'un echo en php
Et je voudrais pouvoir coller du php et qu'il soit traiter comme du php, dans mon texte area
 
Un peu comme si je collait du code php dans le formulaire de post du forum, et qu'il soit interpreter comme du php


---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 23-12-2007 à 20:59:05    

Dans mon echo j'ai  
 
 

Code :
  1. <div id=\"police_texte\">$texte</div>


 
Et dans le $texte, j'ai les donné de la BDD, qui on été mit grace a un formulaire admin, via un textarea
 
Et c'est dans ce textarea que je voudrai coller mon code php, pour qu'il soit traiter comme du php.
 
Le eval j'ai test, mais sa me renvoit un  
 

Code :
  1. eval( $categorie );


Message édité par _Rit0n_ le 23-12-2007 à 21:00:34

---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 23-12-2007 à 21:12:12    

En faisant un bete script php et l'avoir mit dans mon form, il n'apparait pas, mais quand j'affiche la source du site sa donne :
 

Code :
  1. <div id="police_texte"><?php echo"caca"; ?></div>


---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 24-12-2007 à 10:17:44    

si le code <?php echo"caca"; ?> est mis tel quel dans la base, c'est normal, puisqu'il sort en tant que texte (et non code)... donc il ne sera pas exécuté.
Il faudrait mettre dans ta base uniquement echo"caca"; puis faire eval($champ) pour que tu voies "caca" dans ton textarea.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 24-12-2007 à 19:19:01    

un php dans un formulaire ? quel utilité ? la structure d'un site ne devrait jamais etre touché une fois fini, a quoi te servirait ce script ?  
Pour ton code, j'imagine que ce qui a été inséré dans ta base de donnée sera exprimé dans " echo ''; ",
il faudrait donc ajouter un  
"  '; toncodephp(); echo '  "
Mais, il ne faut pas traiter ton code avec les protections habituelles ( addslashes(); )...
Je ne vois pas d'autre solution ..
 
En esperant t'avoir aidé,


---------------
www.kobhqlt.no-ip.fr
Reply

Marsh Posté le 25-12-2007 à 17:16:55    

un php dans un formulaire ? quel utilité ? la structure d'un site ne devrait jamais etre touché une fois fini, a quoi te servirait ce script ?
 
C'est pour ecrire des news, sur mon site. A la fin de chaque semaine / mois, je voulait poster un resumé avec tout les truc ecrit.
 
Je penssait donc mettre deux variable : $date1 $date2 en debut de news, et ensuite faire un require d'une page genre compte_rendu.php.
 
Ensuite cette page la regarderai les deux variable de date, et me sortirai directement les icone de chaque resumé ainsi que d'autre info.
 
Le truc c'est que c'est pratique, la personne change juste la variable de la date, et sa sort le truc automatiquement.
 
 
Pour l'instant j'utilise un autre procédé temporaire, un form admin ou il faut marquer les deux date, et sa nous envoit une page avec du texte a copier coller dans un text area.
Ensuite je colle le texte dans mon champs text de news, et sa fonctionne.
Le probleme c'est que le code du coup ne contient que du html, donc si un jour je veut changer la mise en page, je pourrait grace au css, mais pas supprimer / ajouter certaines info, parce que le code est html et non php dynamique :(
 
petit exemple ici :
 
http://nobock.fr/page.php?rubrique [...] ic2&id=182
 
Le text area du code des icone ici :  
 
http://nobock.fr/page.php?rubrique [...] eric_rendu
 
Et puis utiliser du passif, le seul probleme c'est que si je change l'url des news, qui passera de generic a news, en html je serai baisé


---------------
Site web : http://nobock.fr
Reply

Marsh Posté le 25-12-2007 à 17:30:08    

Mais, pourquoi ne fais-tu qu'un seul text area ?
 
Si tu as une titre et un contenu, crée un formulaire contenant un <input type="text"> et un textarea, modifie ta table sql et ensuite, automatise avec un fetch_array de base, quel est le probleme ?


---------------
www.kobhqlt.no-ip.fr
Reply

Marsh Posté le 26-12-2007 à 12:53:46    

Stocker de l'html directement dans la base de donnée est une mauvaise idée : qu'est ce qui te dit que personne n'ira y mettre du javascript que ça soit depuis les formulaires du site ou en modifiant la base de donnée (c'est déjà arrivé qu'un employé mécontent fasse de grosses conneries)
 
Utiliser "eval" à partir d'un texte envoyé par un formulaire est une connerie encore plus grande : imagine toi que je mettes un script qui liste la structure de ta base et qu'ensuite je me récupères les données qu'il faut pour me connecter d'où je veux avec les comptes admin. En plus de ça, je pourrais aussi utiliser ton site pour envoyer des milliers de spams sans que tu t'en rendes compte si tu laisses ouvert ce genre de faille. Autre chose que je pourrais faire : lister tous les fichiers de ton site avec envoie du contenu de ces fichiers. Très utile pour y découvrir les autres failles et prendre la main, surtout qu'avec une telle faille, il est aussi possible de créer et modifier des fichiers sur le serveur pour en rajouter d'autres et s'ouvrir pleins de moyen de prendre le contrôle du site sans même que t'en ai conscience.
 
D'ailleurs, si ton problème est juste de récupérer deux dates alors pourquoi tu n'utilises pas simplement un formulaire contenant deux zones qui ne servent qu'a envoyer des dates (ce qui est d'ailleurs vraiment facile à contrôler) ou encore mieux un formulaire dans lequel tu choisis le numéro de semaine ou le numéro de mois voire carrément des liens de demande de créations du résumé de la semaine et du mois courant (ou de la semaine ou du mois précédant)
 
 
Il est tellement facile de faire les choses bien que je ne vois vraiment pas pourquoi tu pars dans des solutions aussi bizarroïdes, dangereuse et peu fiable.

Reply

Marsh Posté le 26-12-2007 à 12:53:46   

Reply

Marsh Posté le 28-12-2007 à 11:37:03    

De manière générale eval() n'est à utiliser que dans le seul cas ou tu controle l'intégralité de ce qui se trouve à l'intérieur, autrement dit : qui ne dépends pas du tout du visiteur. Beaucoup de failles de sécurité , notamment sur des anciennes versions de phpMyAdmin découlaient de l'utilisation abusive de la fonction eval(); A éviter autant que possible.
 
Et enfin, omega2 a raison ! PHP est a mon sens le language le plus souple (trop ? ), le plus accessible et surtout intuitif au possible !
Pas la peine de chercher compliqué quand on veut faire simple, essaye juste d'utiliser le site officiel autant que possible :)

Reply

Marsh Posté le 08-03-2008 à 18:30:24    

Parce que j'y connait rien


---------------
Site web : http://nobock.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed