nouvelle gestion des objets...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : nouvelle gestion des objets...

Re: nouvelle gestion des objets...

par Aureusms » 11 nov. 2009, 11:15

Je suis d'accord, c'est pourquoi je fais toujours dans ces cas là un : switch + case + defaut. Au moins on sait quoi inclure ou pas...

Re: nouvelle gestion des objets...

par fab » 11 nov. 2009, 02:29

<?php
$tpl = $_GET["tpl"];
include_once ("$tpl.php") ;
$variable = new $tpl() ;
$variable->submit($data) ;
?>

Niveau sécurité c'est pareil d'inclure directement la variable provenant que $_GET que ce que tu viens de montrer, si je place un fichier sans extension ( exemple : http://toto.com/hack.php et en get je passe http://toto.com/hack ) le contenu du fichier distant hack.php sera interprété et là bonjour les dégats ...

Re: nouvelle gestion des objets...

par Aureusms » 10 nov. 2009, 22:16

Bonsoir,

je dirai d'abord que d'inclure des variable venant de $_GET sans tests est vraiment dangeureux (mais je pense que tu nous a pas montré tout le code).
Je ne connais pas cette écriture :
${$tpl} = new $tpl() ;
Si je reste conforme à ce que je connais j'écrirais :
<?php
$tpl = $_GET["tpl"];
include_once ("$tpl.php") ;
$variable = new $tpl() ;
$variable->submit($data) ;
?>
Sinon éclaires moi sur les accolades dans les variables...

EDIT : je viesn de voir qu'il s'agissait de variables dynamiques....
Dans ce cas est ce que $_GET["tpl"] est renseigné ?

Re: nouvelle gestion des objets...

par ouckileou » 10 nov. 2009, 15:00

Utilise <?php au lieu de <?, la config par défaut de php a changé depuis...

Je déplace dans PHPDebutant

nouvelle gestion des objets...

par unpetitpeudetout » 10 nov. 2009, 14:40

flute ! mon code générique écrit en easyPHP 1.8 ne fonctionne plus ! quelqu'un a une idée ?

<?
$tpl = $_GET["tpl"];
include_once ("$tpl.php") ;
${$tpl} = new $tpl() ;
${$tpl}->submit($data) ;
?>

submit étant une méthode publique qui se trouve dans toutes mes classes passées en paramètre du code générique ($tpl = $_GET["tpl"];)

Résultat ? au lieu d'appeler submit($data), il affiche "submit($data) ;?>" à l'écran !!