如何使用$ _GET?

Joh*_*ohn 2 php session get fetch

我有以下登录脚本,我在那里使用会话.

<?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();
Run Code Online (Sandbox Code Playgroud)

start.php将是:

<?php
echo $_GET['id'];
?>
Run Code Online (Sandbox Code Playgroud)

我以为$ _GET ['id']会存储在服务器上,以便显示$ _GET.fetch_object正在运行.我知道,因为它将在浏览器的"id = $ id"中以正确的方式显示.所以有人会友好,可以帮助我.谢谢!

小智 5

$ _GET超全局定义为URL字符串的一部分:

http://example.org/index.php?foo=bar&baz=1
Run Code Online (Sandbox Code Playgroud)

在index.php中:

echo $_GET['foo']; // bar
echo $_GET['baz']; // 1
Run Code Online (Sandbox Code Playgroud)

因此$ _GET不会存储在服务器上,而是与每个HTTP请求一起传递,就像$ _POST一样,但它会在HTTP标头中传递,而不是简单地附加到URL的末尾.