goldmen Posté 11 Février 2007 Posté 11 Février 2007 Bonjour J'ètais sur un serveur sur lequel les variables PHP d'une page peuvent être récupérées sans les avoir déclarées, même chose sur XAMPP et au contaire de EasyPHP. Maintenant, je viens de transferer mon site sur un autre serveur et mon script marche plus... apparement il faut tout dèclarer et cela risque de me prendre beaucoup de temps Ya t-il une autre solution ! Merci
KaRaK Posté 11 Février 2007 Posté 11 Février 2007 (modifié) Bonsoir, Tu peux mettre dans ton PHP.ini la variable register_globals à ON mais ça n'est pas conseillé pour des raisons de sécurité. (oops j'avais mal lu ton problème, un modo peut effacer mon message) Modifié 11 Février 2007 par KaRaK
TheRec Posté 11 Février 2007 Posté 11 Février 2007 Bonsoir, Je suppose que tu parle des variable GET, POST et COOKIE, si c'est le cas c'est la création de ces variable est réalisée par une directive qui est appelé register_globals. Lorsque ce mode est activé, chaque variable définie soit par GET, POST ou COOKIE (et autres variables d'environnement et de serveur) est assignée automatiquement à une variable globale du même nom sous PHP. Lorsque ce mode est désactivé il faut utiliser les tableau de variables super-globals $_GET, $_POST et $_COOKIE ($_ENV, $_FILES, $_SERVER, etc.). Pour activer ce mode tu as plusieurs possibilités mais il n'est pas possible de l'activer avec la fonction ini_set. En revanche tu peux le faire depuis un fichier.htaccess si tu en a l'autorisation (sur le serveur HTTP, Apache généralement), voici la ligne a ajouter dans ton fichier.htaccess : php_flag register_globals on Attention: Il faut que tu sois conscient que cette directive, lorsqu'elle est activée, est potentiellement très dangereuse et peut créer des failles de sécurité si tu utilises des variables sans les déclarer auparavant par exemple. Tu vas réellement intérêt à remplacer ces variables par l'utilisation des tableaux super-globals du point de vue de la sécurité et également de l'évolutivité (PHP 6.0 n'implémentera plus cette directive). P.S. : Il y a des chances pour que sur uns serveur mutualisé cette ligne dans le fichier .htaccess ne soit pas autorisé et provoque une erreur "500 Internal Error", si c'est le cas tu n'as pas d'autre possibilité que remplacer le nom de tes varaible... et sérieusement c'est un mal plus que nécessaire !
Anonymus Posté 12 Février 2007 Posté 12 Février 2007 Bonjour, Remplaces le nom de tes variables, c'est plus que nécessaire En attendant, tu as toujours une solution de secours : foreach(array("_POST","_GET","_COOKIE") as $v) foreach($$v as $k2 => $v2) $$k2 = $v2; Nico.
goldmen Posté 12 Février 2007 Auteur Posté 12 Février 2007 J'ai complètement changé de script, encore une fois merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant