Résultat fonction PHP différente

Résultat fonction PHP différente - PHP - Programmation

Marsh Posté le 14-03-2006 à 13:18:39    

Bonjour,
 
J'ai un fichier php qui gère des pseudos-frames.
En local ou chez Free ça fonctionne, mais chez Alice, ça fonctionne pas. C'est à dire que le changement de page ne se fait pas et reste sur la page par défaut.
 
Voici mon code php (y'a peut-être un option particulière à ajouter pour Alice, mais laquelle ? Ou devrais-je employer une autre méthode, mais laquelle ?) :
 

Code :
  1. <?php
  2. // On définit le tableau contenant les pages autorisées
  3.   // ----------------------------------------------------
  4.   $pageOK = array('contact' => 'contact.htm',
  5.           'accueil' => 'accueil.htm',
  6.           'presentation' => 'presentation.htm',
  7.            'liens' => 'liens.htm');
  8.   // On teste que le paramètre d'url existe et qu'il est bien autorisé
  9.   // -----------------------------------------------------------------
  10.   if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
  11.   include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  12.   } else {
  13.   include('accueil.htm');   // Page par défaut quant elle n'existe pas dans le tableau
  14. }
  15. ?>


 
Les pages à ouvrir ainsi que ce code sont bien hébergés par Alice.
 
Il me reste plus que ce problème à résoudre ..........
Merci pour vos lumières ......
 

Reply

Marsh Posté le 14-03-2006 à 13:18:39   

Reply

Marsh Posté le 14-03-2006 à 13:53:35    

Que donne un `echo $_GET['page']` ?

Reply

Marsh Posté le 14-03-2006 à 17:32:19    

Master p a écrit :

Que donne un `echo $_GET['page']` ?


 
Rien !!! Mais je crois qu'il y a un pb de version.  
 
Moi j'ai la version 4.3.6  
Alice a la version 4.0.5  
Free à la version 4.3.10  
 
Si c'est un problème de version, comment passer outre ???  
Y'a bien une solution ......... !!!???  
 
Merci

Reply

Marsh Posté le 14-03-2006 à 17:36:49    

$HTTP_GET_VARS()

Reply

Marsh Posté le 14-03-2006 à 17:48:00    

fredko a écrit :

$HTTP_GET_VARS()


 
C'est pareil : je boucle sur la pâge d'accueil ..........  :(  
Et pourtant j'y croyais .............  :(


Message édité par t671 le 14-03-2006 à 17:48:14
Reply

Marsh Posté le 14-03-2006 à 17:57:10    

$page [:spamafote]


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 17:59:40    

1) Vérifie que ton formulaire est bien de type GET
2) Essaye :
echo $_GET("page" );
echo $HTTP_GET_VARS("page" );
echo $page;
 
Si ca marche pas c'est qu'alice c'est vraiement une grosse daube en hébergement php lol

Reply

Marsh Posté le 14-03-2006 à 17:59:48    


 
Tu veux dire quoi ???

Reply

Marsh Posté le 14-03-2006 à 18:00:10    

Les explications du pourquoi
Avec tes 2 versions diffférentes, dont celle d'Alice vraiment obsolète, tu seras obligé de jongler entre la variable $_GET['page'] et $page selon le serveur sur lequel tu te trouve :/


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 18:00:41    

Master p j'avais pas vu ton post.
 

Reply

Marsh Posté le 14-03-2006 à 18:00:41   

Reply

Marsh Posté le 14-03-2006 à 18:01:41    

Remarque que si $page ne contient rien, faut s'inquiéter [:ddr555]


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 18:11:45    

Master p a écrit :

Remarque que si $page ne contient rien, faut s'inquiéter [:ddr555]


 
Si j'enlève le test du paramètre URL (2° partie) et que je met simplement echo $page; j'ai une page blanche en résultat.
Si j'enlève le test du paramètre URL (2° partie) et que je met simplement echo $_GET("page" ); ou  
echo $HTTP_GET_VARS("page" ); j'ai un message Call to undefined function: array() in D:\www\php\Pcigales\frame.php on line 15. Ligne 15 correspond à la commande echo $....
 
J'ai fait uniquement les tests en local (là où ils devraient au moins fonctionner). Mais je m'y suis peut-être mal pris pour placer la commande ......... ?
 

Reply

Marsh Posté le 14-03-2006 à 18:20:45    

En fait, sur ton serveur en local (en php 4.3.xxx), en mode register_global off (par défaut habituellement), la valeur donnée en url est stockée dans la variable $_GET['page'], alors qu'elle est dans la version php d'Alice (php 4.0.xxx) stockée dans la variable $HTTP_GET_VARS['page'], et, si et seulement si en mode register_global on, dans la variable $page.


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 18:20:55    

fais toi une page que tu nommes test.php
dedans tu copies colles ça :

Code :
  1. <?php
  2. echo 'GET : ', $_GET['page'], '<br />';
  3. echo 'HTTP : ', $HTTP_GET_VARS['page'], '<br />';
  4. echo 'GLOBAL : ', $page, '<br />';
  5. ?>


Tu upload ça chez Alice et ensuite tu appelles la page avec :
http://www.monSiteChezAlice.fr/test.php?page=ok
 
et tu nous dis ce que ça affiche
 
 
D'après ce qu'on t'a dit précédemment, ça devrait ne pas t'afficher ok pour le GET, mais t'afficher ok pour le HTTP


Message édité par Djebel1 le 14-03-2006 à 18:23:55
Reply

Marsh Posté le 14-03-2006 à 18:27:14    

+1

Reply

Marsh Posté le 14-03-2006 à 18:33:49    

J'ai fait ce que tu m'as dit.
Et j'ai comme résultat  
 
GET :  
HTTP :  
Fatal error: Call to undefined function: array() in test/test.php on line 3

 
Là je commence à être paumé .................  :pt1cable:  
 

Reply

Marsh Posté le 14-03-2006 à 18:37:43    

Sur FREE j'ai GET = ok

Reply

Marsh Posté le 14-03-2006 à 19:05:02    

hummm...  fait un phpinfo() pour qu'on essaye de comprendre comment la blondasse est configuré :)
 
<?
phpinfo();
>

Reply

Marsh Posté le 14-03-2006 à 19:06:53    

Il faut chercher :  REQUEST_METHOD et register_global
 
fred

Reply

Marsh Posté le 14-03-2006 à 19:15:18    

Tu peux voir le phpinfo d'Alice là : http://th11.free.fr/phpinfo-alice.htm
 
Pour REQUEST_METHOD et register_global, j'ai déjà cherché aujourd'hui, mais sans résultat .....
 
 

Reply

Marsh Posté le 14-03-2006 à 19:19:33    

register_globals -> On
Si tu fais un `echo $'page`, ça devrait afficher le contenu de la variable passé en url
 
De plus, vu les variables d'envrionenment, je suis étonné que le $HTTP_GET_VARS soit vide


Message édité par Master p le 14-03-2006 à 19:21:35

---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 19:20:46    

CTRL+F  "REQUEST_METHOD" = GET
CTRL+F  register_global = on
 
Normalement echo $page; devrait marcher...

Reply

Marsh Posté le 14-03-2006 à 19:21:40    

lol master t encore + rapide que moi

Reply

Marsh Posté le 14-03-2006 à 19:29:10    

fredko a écrit :

CTRL+F  "REQUEST_METHOD" = GET
CTRL+F  register_global = on
 
Normalement echo $page; devrait marcher...


 
Si j'écris mon script comme cela :
 

Code :
  1. <?php
  2. // On définit le tableau contenant les pages autorisées
  3.   // ----------------------------------------------------
  4.   $pageOK = array('contact' => 'contact.htm',
  5.              'accueil' => 'accueil.htm',
  6.  'presentation' => 'presentation.htm',
  7.              'liens' => 'liens.htm');
  8. echo "$page";
  9. exit;
  10. ?>


 
J'ai une page blanche en retour ...........  :??:  

Reply

Marsh Posté le 14-03-2006 à 19:32:49    

Sur le serveur d'Alice ?
Le problème se situerait-t-il pas entre la chaise et le clavier :gratgrat:
 
Sinon franchement, je vois vraiment pas [:spamafote]


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 19:40:18    

Master p a écrit :

Sur le serveur d'Alice ?
Le problème se situerait-t-il pas entre la chaise et le clavier :gratgrat:
 
Sinon franchement, je vois vraiment pas [:spamafote]


 
Avec le même script, chez Free, j'obtient uniquement le nom de la page (sur une page blanche ..... )

Reply

Marsh Posté le 14-03-2006 à 19:42:34    

Master p a écrit :

Sur le serveur d'Alice ?
Le problème se situerait-t-il pas entre la chaise et le clavier :gratgrat:
 
Sinon franchement, je vois vraiment pas [:spamafote]


 
Chez Alice aussi. J'l'avais pas vu, c'était caché ............ :fou:

Reply

Marsh Posté le 14-03-2006 à 19:46:14    

t671 a écrit :

Avec le même script, chez Free, j'obtient uniquement le nom de la page (sur une page blanche ..... )


Normal, Free est en mode register_globals ON
Je récapitule :

     |         Variable       |    Register Global
Local |      $_GET['page']     |      OFF      
Free  |     $_GET['page']      |      ON
Alice | $HTTP_GET_VARS['page'] |      ON

En  supposant que tu disposes d'une version récente de php en local (ce qui est sûrement le cas.
 
Edit: Quoique le mystère du $HTTP_GET_VARS chez Alice reste entier [:jagstang]

Message cité 1 fois
Message édité par Master p le 14-03-2006 à 19:47:56

---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 14-03-2006 à 19:58:02    

D'après toi, le $HTTP_GET_VARS devrait fonctionner ???
 
Je réessaierais demain .........
 

Reply

Marsh Posté le 14-03-2006 à 19:59:57    

t671 a écrit :

D'après toi, le $HTTP_GET_VARS devrait fonctionner ???


devrait ... oui
Mais bon, contente-toi d'utiliser la variable globale si tu veux pas te prendre la tête


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 15-03-2006 à 02:18:11    

Master p a écrit :


Edit: Quoique le mystère du $HTTP_GET_VARS chez Alice reste entier [:jagstang]


clair, le "Call to undefined function: array()" est fort mystérieux.
Enfin de toute façon un hébergeur qui te propose du PHP 4.0, y a pas à chercher, c'est un hébergeur de merde

Reply

Marsh Posté le 15-03-2006 à 12:09:12    

Master p a écrit :

devrait ... oui
Mais bon, contente-toi d'utiliser la variable globale si tu veux pas te prendre la tête


 
J'ai réessayé ce matin (à la fraîche) avec $HTTP_GET_VARS['page'], et c'est OK !!!  :bounce:  
 
En fait, j'avais oublié de remplacer un $_GET ...........  
 
Merci à tous ceux qui m'ont aidé .......  ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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