$_GET est vide lorsque l'url a des variables
J'ai une url qui ressemble à ce reg.php?lang=no_NO&passkey=test
et im essayant d'obtenir le mot de passe variable, mais il continue de s'afficher en blanc.
Quand j'essaie print_r($_GET);
il imprime Array ( )
?! Comment cela peut-il arriver?
Le site de ressembler à quelque chose comme ceci
<?php
print_r($_GET);
include('..\libs\Smarty.class.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Activate account</title>
(...html code.. )
$smarty = new Smarty;
//$smarty->force_compile = true;
$smarty->debugging = false;
$smarty->caching = false;
$smarty->cache_lifetime = 120;
//PHP gettext api
define('PROJECT_DIR', realpath('./'));
(... define gettext ... )
$passkey=$_GET['passkey'];
(...work with passkey ...)
$smarty->display('templates\site.tpl');
?>
</body>
</html>
c'est tout. Je ne comprends pas pourquoi les $_GET s'affiche en blanc. Il a été me rend fou pendant un certain temps maintenant..
êtes-vous à l'aide de tout type de réécriture d'url ou est reg.php un fichier existant?
Êtes-vous par hasard à l'aide de CodeIgniter ou un autre cadre? Parfois, ils stomp sur le $_REQUEST variables.
même si reg.php est un vrai fichier - mod_rewrite peut perdu la chaîne de requête, si elle a été écrite mal
CI auto-filtres tout DEVIENT comme une mesure de sécurité. _POST fonctionne exactement comme vous le souhaitez. Vous pouvez également utiliser la _GET si vous voulez, suffit de l'activer de manière explicite.
pour éviter certaines mauvaises pratiques autour d'eux.
Êtes-vous par hasard à l'aide de CodeIgniter ou un autre cadre? Parfois, ils stomp sur le $_REQUEST variables.
même si reg.php est un vrai fichier - mod_rewrite peut perdu la chaîne de requête, si elle a été écrite mal
CI auto-filtres tout DEVIENT comme une mesure de sécurité. _POST fonctionne exactement comme vous le souhaitez. Vous pouvez également utiliser la _GET si vous voulez, suffit de l'activer de manière explicite.
pour éviter certaines mauvaises pratiques autour d'eux.
OriginalL'auteur ganjan | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Quand je tombe sur quelque chose que les souches de moi comme ça, je prends toujours mon script droit vers le bas pour l'essentiel. Essayez ceci tout en haut de votre script:
Ensuite, vous pouvez voir si, en fait, c'est l'obtention de la rva à partir du crochet. Si pas, alors il y a peut être quelque chose de plus profond... comme PHP est vraiment en cours d'exécution avec Apache? Si cela fonctionne, commencer à ajouter d'autres choses jusqu'à ce qu'il s'arrête de nouveau et vous pouvez commencer à réduire le coupable.
Cela signifie que rien n'est à venir dans la requête GET. Essayez $_REQUEST. Êtes-vous sûr que vous n'êtes pas poster?
OriginalL'auteur Chuck Burgess
Déplacement de ce dans une réponse de mes commentaires ci-dessus. Deux raisons pour OBTENIR votre params est peut-être manquant. Soit vous avez un mode de réécriture, que les supprime ou que vous utilisez un framework, tels que CodeIgniter qui se déplace ailleurs.
Dans le cas où vous êtes à l'aide de CodeIgniter vous pouvez les réactiver avec
parse_str($_SERVER['QUERY_STRING'], $_GET);
$_SERVER['QUERY_STRING']
n'est pas un mauvais endroit pour commencer quel que soit le cadre.Je voudrais ajouter que, pour certains cadres/Maîtrisons la raison pourrait être que le mod_rewrite n'est pas activé.
OriginalL'auteur Matt Williamson
Assurez-vous que votre php.fichier ini n'est pas définie
max_input_vars
à0
. J'ai accidentellement mis le mien à autre chose donc rien ajouter $_GET créé un PHP warning.OriginalL'auteur user1345650