Comment utiliser $_GET?
J'ai le texte suivant script de connexion, où je fais des sessions d'utilisation.
<?php
session_start();
if(isset($_SESSION['logged_in'])){
$id = $_SESSION['id'];
header("Location: start.php?id=$id");
exit();
}
if(isset($_POST['submit'])){
$x1 = $_POST['x1'];
$x2 = $_POST['x2'];
...
$query = $db->query("SELECT * FROM table WHERE x1='".$x1."' AND x2='".$x2."'");
if($query->num_rows === 1){
$row = $query->fetch_object();
$id = $row->id;
$_SESSION['logged_in'] = true;
$_SESSION['id'] = $id;
header("Location: start.php?id=$id");
3more queries
exit();
start.php sera juste:
<?php
echo $_GET['id'];
?>
Je pensais que $_GET['id'] serait stocké sur le serveur, de sorte que $_GET doit être affiché. Le fetch_object est de travail. Je sais que, parce qu'il sera affiché de la bonne manière, au "id=$id" dans le navigateur. Si quelqu'un être amical et pourrait m'aider. Merci!
Alors quel est le problème ici?
ce que vous obtenez sur start.php? vide, null, 0, ce qui
bonjour et merci de répondre. droit, il ne s'affiche rien. c'est juste une page vide. ok, je suppose que $_GET seulement seront présentés au cours de l'URL. lors de la "id" sera stocké dans l'URL, alors il devrait être affiché, je pense, ou je me trompe?
Avez-vous essayé juste manuellement va commencer.le php?id=1 pour voir ce qui se passe? S'il affiche "1", alors le problème n'est pas dans start.php. Je remarque aussi qu'il semble que vous faites plus de traitement (3more requêtes) après vous appelez Header('location:...'). Ce n'est pas vraiment une bonne idée. La seule chose que vous devez faire après l'envoi d'une redirection emplacement est un die/sortie.
même si j'essaie manuellement, il ne sera pas affichée quoi que ce soit. j'ai changé les requêtes vers un autre lieu, mais que l'habitude de résoudre le problème.
ce que vous obtenez sur start.php? vide, null, 0, ce qui
bonjour et merci de répondre. droit, il ne s'affiche rien. c'est juste une page vide. ok, je suppose que $_GET seulement seront présentés au cours de l'URL. lors de la "id" sera stocké dans l'URL, alors il devrait être affiché, je pense, ou je me trompe?
Avez-vous essayé juste manuellement va commencer.le php?id=1 pour voir ce qui se passe? S'il affiche "1", alors le problème n'est pas dans start.php. Je remarque aussi qu'il semble que vous faites plus de traitement (3more requêtes) après vous appelez Header('location:...'). Ce n'est pas vraiment une bonne idée. La seule chose que vous devez faire après l'envoi d'une redirection emplacement est un die/sortie.
même si j'essaie manuellement, il ne sera pas affichée quoi que ce soit. j'ai changé les requêtes vers un autre lieu, mais que l'habitude de résoudre le problème.
OriginalL'auteur John | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
$_GET superglobale est défini comme faisant partie de la chaîne de l'URL:
Dans index.php:
Donc $_GET n'est pas stocké sur le serveur, mais il est passé avec chaque requête HTTP, comme c'est $_POST, mais qui est passé dans les en-têtes HTTP, plutôt que de simplement appened à la fin de l'URL.
Avez-vous simplement regarder à travers mes derniers trucs à trouver quelque chose (à tort) de critiquer parce que je l'ai souligné comment retardé votre 4 de profondeur imbriquée fi? Je n'ai jamais dit POST est stocké. En fait, j'ai explicitement dit POST est envoyé de la même manière que pour OBTENIR, avec chaque requête HTTP.
Hmm? Je viens de trouver la réponse à de vagues. Veuillez la corriger, qui que vous soyez.
Depuis ma réponse d'origine a été supprimé, je vais reposter plus gentiment - ce n'est pas vague. Il est très clair. Et vous ne devriez pas aller chasser pour 3 mois postes de critiquer quand quelqu'un n'est pas d'accord avec votre réponse comme étant inefficace et les mauvaises pratiques.
OriginalL'auteur kingcoyote
$_GET
variables sont ceux qui sont passés par l'URL, c'est à direindex.php?foo=bar&baz=qux
(foo
est égal àbar
,baz
est égal àqux
).Ces variables ne sont pas stockées sur le serveur en tant que partie de la session, mais plutôt de simplement exister à cette demande. Si vous voulez stocker des informations sur le serveur en tant que partie de la session, vous devez utiliser
$_SESSION
au lieu de cela, qui existent au sein de la session en cours, quelle que soit la demande.Si vous passer par l'URL de
start.php
dans votre redirection (comme il semble que vous essayez de le faire), alors oui il sera lisible, pas autrement. Je pense qu'il n'aide pas vraiment à passer l'ID de session par le biais d'un$_GET
variable mais vu que vous avez déjà sauvegardées dans$_SESSION
.OriginalL'auteur Neil Alexander