Passer plusieurs variables via l'URL et la lecture de tous sur la page suivante
J'ai un lien qui pointe vers une page web par exemple "land.php".
Le lien ressemble à ceci:
<a href="land.php?id=1&cd=a">link</a>
cela m'amène à la page land.php où je peux lire la première parametere avec $id
(et il est égal à 1, correctement), mais je ne peut pas lire le second. Je l'ai essayé avec $cd
ou $_GET['cd']
. Aucun d'entre eux travaille.
si j'ai essayé isset($cd)
il dit false
. Même chose pour isset($_GET['cd'])
.
Comment puis-je passer le deuxième paramètre (et lire!)?
EDIT:
du code (donc, les gens sont heureux. Je pense que c'est inutile dans ce cas..).
land.php
<?php
if($_GET['cd']==a)
echo "<h2>HI</h2>";
else
echo "<h2>BY</h2>";
?>
si j'utilise $cd
au lieu de $_GET['cd']
il ne fonctionne pas de toute façon..
EDIT2 je n'obtiens aucune erreur de syntaxe, il juste ne se comportent pas de la façon attendue.
var_dump($_GET);
vous donner? Aussi, vérifiez si les paramètres sont encore sur l'URL lorsque vous arrivez à land.php
, il y a peut être quelque chose d'autre dans votre code déconner.rien. il imprime une chaîne vide. que voulez-vous dire si elles sont toujours là? quand je souris sur le lien de mon navigateur me montre tous les paramètres, de sorte qu'ils sont là.
Je voulais dire quand vous arrivez à la
land.php
page. Assurez-vous d'exécuter la var_dump()
fonction de la land.php
fichier (après avoir cliqué sur le lien).Pouvez-vous montrer plus de code à partir de
land.php
(s'il vous plaît copiez et collez)? J'ai le sentiment que le problème est làTotalement erronée. Le
$_GET
super mondial est rempli avec les paramètres de l'URL de la chaîne de requête. Vous n'avez pas besoin d'arriver par l'intermédiaire d'un formulaireOriginalL'auteur Danny | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
La valeur est stockée dans
$_GET['cd']
.Essayez d'imprimer les
$_GET
tableau, avecprint_r($_GET);
print_r($_GET) devrait sortir
Cela devrait bien sûr être dans le
land.php
page, comme obtenir des variables sont uniquement disponibles dans la page demandée.ne doit jamais affichage
1
. Au moins il devrait êtreArray()
Utilisation
print_r($_GET, true)
si elle est utilisée dans l'écho de la déclaration. Voir php.net/manual/en/function.print-r.php pour l'utilisation.si je ne l'utilise pas dans le cadre d'echo il imprime rien.
Essayez de les placer au début du fichier:
<?php die("<pre>".print_r($_GET, true)."</pre>"); ?>
. imprimer l'intégralité de l'$_GET
tableau. En le déplaçant vers le bas, ligne par ligne, vous donnera une indication de ce qui est mal.OriginalL'auteur Ragnar123
Votre serveur peut être configuré pour accepter le point-virgule au lieu de les esperluettes. Essayez de remplacer le & avec ;
C'est incorrect. $_GET doit être remplie avec les paramètres dans la chaîne de requête, quelle que soit son origine. Donc manuellement les Url tapées, les Url à partir d'ancres et de Url générées sont toutes les entrées valides.
pourquoi "&" est en fait utilisé comme séparateur, mais un seul paramètre (la première) est passé à la page suivante?
Il coutures comme la déclaration que j'ai soutenu ont été supprimés. Je ne sais pas pourquoi un seul paramètre est passe, mais je soupçonne que sa soit une mauvaise config ou si vous avez accidentellement unset quelque part. Vous devriez essayer de votre recherche de code pour unsets ou essayez de lancer votre script sur un serveur différent.
OriginalL'auteur Andreas Hagen
$_GET['cd']
est la syntaxe correcte. Vous êtes réellement sur laland.php
page, c'est à dire est-ce que votre barre d'adresse du navigateur lire quelque chose commeAussi, il semble que vous avez
register_globals
activé si vous pouvez lire$id
. C'est une très mauvaise idée.Mise à jour
Votre extrait de code contient des erreurs de syntaxe. Je recommande ce qui suit, y compris l'activation décent, rapport d'erreur pour le développement
donc, ce que je devrais utiliser? $cd? Il ne fonctionne pas de toute façon. C'est pourquoi je ne voulais pas le code de la poste car j'ai essayé beaucoup de choses différentes.
Merci de voir mon jour de réponse
non, mon navigateur se termine dans example.com/land.html. il y a une redirection apparemment, mais ce n'est pas prevernt "id" est votée. pourquoi la même chose ne se produise pas "cd"?
OriginalL'auteur Phil