Grave problème de version de PHP !!! 4.2.0 ==> 4.2.3 - PHP - Programmation
Marsh Posté le 10-09-2002 à 11:25:03
comment tu as géré les passages de paramètres ? (?var1=xxx&var2=yyy)
avec :
- $var1
- $HTTP_GET_VARS['var1']
- $_GET['var1']
Les dernières versions de php n'accèptent que les 2 dernières solutions.
Marsh Posté le 10-09-2002 à 11:56:10
ethernal a écrit a écrit : comment tu as géré les passages de paramètres ? (?var1=xxx&var2=yyy) avec : - $var1 - $HTTP_GET_VARS['var1'] - $_GET['var1'] Les dernières versions de php n'accèptent que les 2 dernières solutions. |
Pourquoi ils ont fait ça?
Marsh Posté le 10-09-2002 à 11:58:34
ReplyMarsh Posté le 10-09-2002 à 12:00:28
omega2 a écrit a écrit : Pourquoi ils ont fait ça? |
question de sécurité il me semble
Marsh Posté le 10-09-2002 à 12:03:30
C'est quoi cette merde ?
C'est pas vrai hein, c'est une blague ?
Marsh Posté le 10-09-2002 à 12:05:57
bah spa si grave, suffit de récupérer, tout au début de ton code, les variables, et d'assigner avec ça les variables que tu utilisais avant (les classiques $nomvar)
Marsh Posté le 10-09-2002 à 12:07:22
antp a écrit a écrit : bah spa si grave, suffit de récupérer, tout au début de ton code, les variables, et d'assigner avec ça les variables que tu utilisais avant (les classiques $nomvar) |
Mais faut quand même changer de dizaines de pages?
Marsh Posté le 10-09-2002 à 12:08:31
antp a écrit a écrit : question de sécurité il me semble |
En bref, faut que je repasses sur tout mes scripts pour les rendre compatible avec les dernières versions de php4.
Quand a la question de sécurité, je vois pas le problème.
Soit la personne programme n'importe comment et n'inialise jamais les variables qu'elle utilise soit elle les initialise comme il faut et il y a aucun problème.
Bon, pour les variables provenant des cookies, ont peut toujours y accéder a partir des nom en $cookie_nom ou faut passer par une variable de type tableau ???
Marsh Posté le 10-09-2002 à 12:13:11
Freekill a écrit a écrit : Mais faut quand même changer de dizaines de pages? |
dans mon cas 1 seule : index.php, qui se charge d'appeler les pages nécessaires
Marsh Posté le 10-09-2002 à 12:16:01
antp a écrit a écrit : dans mon cas 1 seule : index.php, qui se charge d'appeler les pages nécessaires |
Dans mon cas toutes les pages.
bechat.php3 (futur index.php3) qui appelle ensuite la page qui créé le menu (appel d'une page php3 par module) et les diférentes pages corespondant aux diférents modules.
Dans presque tous ces fichiers, j'ai des variables qui sont passé en paramêtre.
Marsh Posté le 10-09-2002 à 12:16:23
antp a écrit a écrit : dans mon cas 1 seule : index.php, qui se charge d'appeler les pages nécessaires |
Merci de ta solidarité?
Marsh Posté le 10-09-2002 à 12:20:36
omega2 a écrit a écrit : Dans mon cas toutes les pages. bechat.php3 (futur index.php3) qui appelle ensuite la page qui créé le menu (appel d'une page php3 par module) et les diférentes pages corespondant aux diférents modules. Dans presque tous ces fichiers, j'ai des variables qui sont passé en paramêtre. |
heu si tu as une page qui appelle les autres normalement t'en as qu'une à changer, non
Marsh Posté le 10-09-2002 à 12:21:06
Qu'est-ce que c'est que cette histoire ?
Je viens de foutre la 4.2.3 et je ne remarque aucun problème?
Marsh Posté le 10-09-2002 à 12:21:40
Freekill a écrit a écrit : Merci de ta solidarité? |
c'était une participation cachée au troll "index.php qui inclu les pages VS pages qui incluent les différents éléments communs"
Marsh Posté le 10-09-2002 à 12:23:56
antp a écrit a écrit : c'était une participation cachée au troll "index.php qui inclu les pages VS pages qui incluent les différents éléments communs" |
Bah ouais mais j'ai pas qu'un site hein, et j'aime bien expérimenter alors ils ne fonctionnent pas tous sur le même principe.
Les derniers n'ont souvent qu'un index.php, mais ce n'est pas le cas de tous?
Marsh Posté le 10-09-2002 à 12:24:27
pour les cookies idem, variables serveurs aussi, post aussi, tout quoi...
maintenant j'ai trouvé le truc :
define(GET_VARS,'$_GET'; //--> ${GET_VARS}['var']
define(POST_VARS,'$_POST'; //--> ${POST_VARS}['var']
define(COOKIE_VARS,'$_COOKIE'; //--> ${COOKIE_VARS}['var']
define(SERVER_VARS,'$_SERVER'; //--> ${SERVER_VARS}['http_referer']
...
comme ça la prochaine fois qu'ils changent, je suis tranquille
Marsh Posté le 10-09-2002 à 12:24:53
Freekill a écrit a écrit : Bah ouais mais j'ai pas qu'un site hein, et j'aime bien expérimenter alors ils ne fonctionnent pas tous sur le même principe. Les derniers n'ont souvent qu'un index.php, mais ce n'est pas le cas de tous? |
t'es pas obligé de te justifier sur le choix de la mauvaise solution
Marsh Posté le 10-09-2002 à 12:25:57
antp a écrit a écrit : t'es pas obligé de te justifier sur le choix de la mauvaise solution |
Marsh Posté le 10-09-2002 à 12:25:58
Freekill a écrit a écrit : Qu'est-ce que c'est que cette histoire ? Je viens de foutre la 4.2.3 et je ne remarque aucun problème? |
--> php.ini : register_globals= off
Marsh Posté le 10-09-2002 à 12:27:35
Tiens c'est bizarre, on dirait que contrairement à ce qu'ils disaient ils ont refoutu register_globals sur "on" par défaut dans la version 4.2.3, ce qui explique pourquoi ça fonctionne chez moi?
Marsh Posté le 10-09-2002 à 12:28:14
ethernal a écrit a écrit : --> php.ini : register_globals= off |
Ouais ouais, je regardais justement? (cf. supra)
Marsh Posté le 10-09-2002 à 12:38:32
Rhâââaaa !
Et comment on fait si on peut accéder à une page depuis un lien (GET) et un formulaire (POST), hein ?
Quelle merde !
Edit:
Bon ok, il vaut mieux utiliser $_REQUEST que $_POST ou $_GET on dirait?
Request variables: $_REQUEST |
Marsh Posté le 10-09-2002 à 12:55:24
antp a écrit a écrit : heu si tu as une page qui appelle les autres normalement t'en as qu'une à changer, non |
Ben non, par ce que tout les modules n'utilisent pas derrières exactement les mêmes variables et j'ai pas envie de devoir modifier le fichier index.php3 à chaque fois que je rajoute un module.
En plus, je risques de passer mon code à un ami pour son site alors si c'est pour ce retrouver avec des problèmes de versions du fichier index.php3 par ce qu'on aura tout les deux bossé sur des modules diférents sans s'être envoyé desuite le fichier ca serait vraiment con.
Bref, les variables utilisé par le code du fichier index.php3 sera modifié à ce niveaux là et celles qui corespondent à un module seront modifié au niveau du module.
A moins que t'ai une solution à me proposer qui marche aussi bien en php3 que php4 et qui transforment en variable simple toutes les variables passé en paramêtre.
Marsh Posté le 10-09-2002 à 13:08:44
omega2 a écrit a écrit : Ben non, par ce que tout les modules n'utilisent pas derrières exactement les mêmes variables et j'ai pas envie de devoir modifier le fichier index.php3 à chaque fois que je rajoute un module. En plus, je risques de passer mon code à un ami pour son site alors si c'est pour ce retrouver avec des problèmes de versions du fichier index.php3 par ce qu'on aura tout les deux bossé sur des modules diférents sans s'être envoyé desuite le fichier ca serait vraiment con. Bref, les variables utilisé par le code du fichier index.php3 sera modifié à ce niveaux là et celles qui corespondent à un module seront modifié au niveau du module. A moins que t'ai une solution à me proposer qui marche aussi bien en php3 que php4 et qui transforment en variable simple toutes les variables passé en paramêtre. |
Perso j'envisage cette "solution" pour le moment :
extract($_REQUEST); |
($_REQUEST n'existe pas avant 4.1.0, il faut utiliser $HTTP_POST_VARS, $HTTP_GET_VARS et $HTTP_COOKIE_VARS)
Marsh Posté le 10-09-2002 à 13:24:49
Ca pourra peut etre vous aider --> http://www.phpinfo.net/?p=articles&rub=globals
Marsh Posté le 10-09-2002 à 13:51:39
AAAAAAAAAH
mais je suis perdu ! foutu !
je suis pas programmeur php professionnel moi !!!
je fais quoi maintenant ????
je modifie tout mes "$rubrique" par cette merde http_GEt_chépakoi...... ?????????
Marsh Posté le 10-09-2002 à 14:46:45
sysman a écrit a écrit : AAAAAAAAAH mais je suis perdu ! foutu ! je suis pas programmeur php professionnel moi !!! je fais quoi maintenant ???? je modifie tout mes "$rubrique" par cette merde http_GEt_chépakoi...... ????????? |
if isset($_GET);
extract($_GET);
if isset($_POST);
extract($_POST);
if isset($_COOKIE);
extract($_COOKIE);
Voilà ce que je vais mettre dans mon code.
Comme ça, il continuera à tourner, mais normalement, je n'y avais pas laissé de gros trous de sécurité.
Marsh Posté le 10-09-2002 à 15:32:17
omega2 a écrit a écrit : if isset($_GET); extract($_GET); if isset($_POST); extract($_POST); if isset($_COOKIE); extract($_COOKIE); Voilà ce que je vais mettre dans mon code. Comme ça, il continuera à tourner, mais normalement, je n'y avais pas laissé de gros trous de sécurité. |
et suffirait de mettre ca pour que ca fonctionne ? sorry mais chui vraiment pas une grosse dale en php... je connais les bases et c tout...
Marsh Posté le 10-09-2002 à 17:04:06
sysman a écrit a écrit : help ! je comprends pas kes ki faut faire... |
Théoriquement, oui, ca devrait sufire.
Je peux rien te promettre n'ayant pas encore testé tout ça.
Si les variables que ca va remplir existe déjà, alors il va les remplacer. Faut surement le faire au tout début des pages appellé par le navigateur pour éviter d'avoir affecter les valeurs à une variable qui risquerait alors d'être écrasé.
Le seul problème, c'est pour les variables provenant des cookies, faut que je voyes, si ca marchera très bien comme ça ou si faut modifier un peu le code.
Je testerais ça plus tard.
Marsh Posté le 10-09-2002 à 18:58:46
Moi pour recuperais mes variables d'un $_POST et les remettre comme avant j'ai fais ce code :
reset ($_POST); |
Bien sur ou peut mettre tous le autre comme _GET, _COOKIE et _SERVEUR !!
Marsh Posté le 10-09-2002 à 22:29:15
omega2 a écrit a écrit : if isset($_GET); extract($_GET); if isset($_POST); extract($_POST); if isset($_COOKIE); extract($_COOKIE); Voilà ce que je vais mettre dans mon code. Comme ça, il continuera à tourner, mais normalement, je n'y avais pas laissé de gros trous de sécurité. |
j'utilise ca aussi
Marsh Posté le 11-09-2002 à 09:12:40
ben en fait, suffit de mettre register_goal sur "ON"..
c'est tetre pas l'idéal mais ca marche au moins...
Marsh Posté le 11-09-2002 à 10:14:21
bozocarzu a écrit a écrit : Moi pour recuperais mes variables d'un $_POST et les remettre comme avant j'ai fais ce code :
|
Et si ton script est utilisé a partir d'un php3, tu te payes une superbe erreur grace au "each".
Marsh Posté le 11-09-2002 à 10:15:09
sysman a écrit a écrit : ben en fait, suffit de mettre register_goal sur "ON".. c'est tetre pas l'idéal mais ca marche au moins... |
Si c'est dans le fichier php.ini, tout le monde n'y a pas toujours accés. D'où utilisation de la ruse ci dessus pour arriver à ses fins.
Marsh Posté le 11-09-2002 à 14:17:23
omega2 a écrit a écrit : Si c'est dans le fichier php.ini, tout le monde n'y a pas toujours accés. D'où utilisation de la ruse ci dessus pour arriver à ses fins. |
ouais c'est juste !
j'ai de la chance d'avoir un serveur dédié !!
Marsh Posté le 11-09-2002 à 15:16:02
sysman a écrit a écrit : ouais c'est juste ! j'ai de la chance d'avoir un serveur dédié !! |
Et de ne pas avoir à partager tes sources avec une personne qui n'en a pas.
Marsh Posté le 12-09-2002 à 19:06:52
omega2 a écrit a écrit : Et si ton script est utilisé a partir d'un php3, tu te payes une superbe erreur grace au "each". |
Marsh Posté le 12-09-2002 à 20:46:11
Arrétez votre délire les mecs, ça a été intégré à partir de PHP 4.1 et ça date pas d'aujourd'hui.
Marsh Posté le 10-09-2002 à 11:17:13
mon problème :
j'ai fini la nouvelle version de mon site en local chez moi, avec easyphp pour faire tourner tout ca, php 4.2.0 comme version de php installé ! hop tout content j'upload sur mon serveur, version php 4.2.2 et hop ! plus rien ne marche !
J'update ma version local de php à la 4.2.3 (la toute dernière) ! et plus rien de marche !!!!!!!
quand je clique sur un lien il me renvoie automatiquement sur la page ou j'étais précedemment !
exemple :
http://www.tuning-auto.com/forum