QUERY_STRING toujours vide

QUERY_STRING toujours vide - PHP - Programmation

Marsh Posté le 13-09-2007 à 10:22:08    

Bonjour à tous !
 
J'essaye de migrer mon site sur un serveur privé virtuozzo d'Amen.
Mes scripts php fonctionnent sauf qu'il m'est impossible de récupérer une variable par les méthode GET ou POST.
QUERY_STRING reste toujours vide.
 
voici le script tout bête pour comprendre le problème
 
la page appelée est essai2.php?id=1
 
<?php
echo('SERVER->');var_dump($_SERVER);echo("<br>" );
echo('GET->');var_dump($_GET);
?>
 
et le résultat est le suivant :
 
" ["SERVER_SOFTWARE"]=>  string(22) "Apache/2.0.51 (Fedora)" ["SERVER_NAME"]=>  string(22) "neodream-creations.com" ["SERVER_ADDR"]=>  string(14) "62.193.192.144" ["SERVER_PORT"]=>  string(2) "80" ["REMOTE_ADDR"]=>  string(14) "62.193.192.144" ["DOCUMENT_ROOT"]=>  string(50) "/home/httpd/vhosts/neodream-creations.com/httpdocs" ["SERVER_ADMIN"]=>  string(15) "user@domain.tld" ["SCRIPT_FILENAME"]=>  string(61) "/home/httpd/vhosts/neodream-creations.com/httpdocs/essai2.php" ["REMOTE_PORT"]=>  string(5) "59135" ["GATEWAY_INTERFACE"]=>  string(7) "CGI/1.1" ["SERVER_PROTOCOL"]=>  string(8) "HTTP/1.1" ["REQUEST_METHOD"]=>  string(3) "GET" ["QUERY_STRING"]=>  string(0) "" ["REQUEST_URI"]=>  string(12) "//essai2.php" ["SCRIPT_NAME"]=>  string(12) "//essai2.php" ["PHP_SELF"]=>  string(12) "//essai2.php" ["PATH_TRANSLATED"]=>  string(61) "/home/httpd/vhosts/neodream-creations.com/httpdocs/essai2.php" ["argv"]=>  array(0) { } ["argc"]=>  int(0) }

GET->array(0) { }

 
Je n'y comprend rien, quelqu'un a-il une idée d'ébauche de probable solution ?
 
Merci

Reply

Marsh Posté le 13-09-2007 à 10:22:08   

Reply

Marsh Posté le 13-09-2007 à 10:57:10    

C'est quelle info que t'essaye d'obtenir?

Reply

Marsh Posté le 13-09-2007 à 11:00:15    

omega2 a écrit :

C'est quelle info que t'essaye d'obtenir?


 
Normalement quand je fais $_GET['id'] j'ai la valeur 1 (en supposant que j'ai appelé essai2.php?id=1)
et là, je me retrouve systématiquement avec rien.
C'est la même chose avec $_POST.
 
Est-ce que le problème vient de php.ini, de httpd.conf ?
 
 

Reply

Marsh Posté le 13-09-2007 à 11:09:19    

Pour le $_GET, Ca peut venir aussi bien du php.ini (désactivation des variables de type $_GET) que du httpd.conf (en cas d' "Url Rewriting" ).
Pour le QUERY_STRING à vide, ça peut venir soit de la version du serveur web (si le serveur ne donne pas l'info, on ne peut pas l'avoir) soit du httpd.conf .
 
Si $_GET est vide alors essaye avec $HTTP_GET_VARS.
Si t'as rien là dedans, alors vérifie le contenu du $var correspondant. Si t'as toujours rien alors vérifie que tu n'as pas de .htaccess qui traine et qui génerait sinon préviens ton hébergeur ou change en.

Reply

Marsh Posté le 13-09-2007 à 11:19:09    

Bon, $HTTP_GET_VARS retse vide, mais je m'y attendais un petit peu.
Je n'ai pas URL_REWRITING donc je me tourne vers php.ini.
 
Comment peut-on réactiver les variables de type $GET ?
 

Reply

Marsh Posté le 13-09-2007 à 12:00:24    

Pour les HTTP_*_VARS, c'est register_long_arrays qui permet de dire qu'on ne veut pas les remplir (php 5.x uniquement).
Pour les $_*, il faut qu'il soit référencé dans "variables_order" sinon elles ne sont pas créé.
 
Pour plus de détails, voir :
http://fr2.php.net/variables.predefined
http://fr2.php.net/manual/fr/ini.c [...] ong-arrays
http://fr2.php.net/manual/fr/ini.c [...] bles-order

Reply

Marsh Posté le 13-09-2007 à 13:09:59    

variable_order est bien défini dans php.ini
("EGPCS" )... :cry:
de plus j'ai bien track_vars à 1 et register_global à off.
 
C'est bien-sûr là que j'ai regardé en premier avant de poster dans le forum...

Reply

Marsh Posté le 13-09-2007 à 14:42:16    

Bizarre. D'après ce que tu dis, ça ne viendrait pas de la configuration de php ou du moins pas des réglages que je connais.
Du coup il va falloir fouiller les réglages d'apache pour voir s'il n'y a rien qui bloquerait de ce côté mais là je ne peux pas vraiment t'aider.

Reply

Marsh Posté le 13-09-2007 à 17:31:40    

Et avec $_REQUEST :??:

Reply

Sujets relatifs:

Leave a Replay

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