标题中的php变量

时间:2018-08-03 19:56:42

标签: php variables url header

老问题。我已经尝试了所有可以想到的方法,在此网站上进行了多次搜索。

我的示例网址是mydomain.com/login.php?aircraft_id=3542

$aircraft_id = $_GET['aircraft_id'];
echo $aircraft_id;   //This works fine to verify the $_GET is working

...一堆用于验证用户的登录代码 ...如果密码已验证:

 session_start()
 $_SESSION['username'] = $username;
 header('Location: test.php?aircraft_id=' . $aircraft_id);

我无法在我的一生中将此变量传递给下一页。

我尝试过

 header('Location: test.php?aircraft_id=' . $aircraft_id);

 header("Location: test.php?aircraft_id=$aircraft_id");

以及其他形式的单引号/双引号。

$ _ GET正在工作,因为我可以在登录页面上回显$ aircraft_id,但是一旦提交,标头将无法捕获变量并将其传递到下一页。

这是表格代码:

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
        <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
            <label>Username</label>
            <input type="text" name="username"class="form-control" value="<?php echo $username; ?>">
            <span class="help-block"><?php echo $username_err; ?></span>
        </div>    
        <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
            <label>Password</label>
            <input type="password" name="password" class="form-control">
            <span class="help-block"><?php echo $password_err; ?></span>
        </div>
        <div class="form-group">
            <input type="submit" class="btn btn-primary" value="Login">
        </div>
        <p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
    </form>

1 个答案:

答案 0 :(得分:1)

您的问题是$_SERVER["PHP_SELF"]删除了URL中的GET参数。有几种方法可以解决此问题:

向表单添加隐藏字段

<input type="hidden" name="aircraft_id" value="<?=$_GET['aircraft_id'];?>"/>

更改您的action通话

action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?aircraft_id=<?=$_GET['aircraft_id'];?>"

删除您的action通话

您也可以直接从表单中删除action="",它也可以解决此问题。如果没有action指令,默认情况下,表单将张贴到它们所在的同一页面。