老问题。我已经尝试了所有可以想到的方法,在此网站上进行了多次搜索。
我的示例网址是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>
答案 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
指令,默认情况下,表单将张贴到它们所在的同一页面。