我展示了类似的线程,但无法通过它们得到清楚。
page1.php中
<?php
$id = 1234;
//Post $id to page2.php
?>
使page2.php
<?php
$user_id=$_POST['id']; //should receive id posted from page1.php
?>
答案 0 :(得分:1)
实际上您没有将id
参数发送到 Page2.php
<强> Page1.php
强>
<?php
$id = 1234;
header("location:page2.php?id=$id");//Post $id to page2.php
?>
<强> Page2.php
强>
<?php
echo $user_id=$_GET['id']; //should receive id posted from page1.php
?>
答案 1 :(得分:0)
您也可以使用sessions来显示您的选项。
这适用于 POST 方法(在表单方法中使用all in one file)
表单方法(page1.php)
<?php
session_start();
$id = $_SESSION["id"] = $_POST['id'];
if(isset($_POST["submit"])){
echo $id;
echo "<br>";
echo "<a href='page2.php'>Click to see session ID on next page</a>";
}
?>
<form action="" method="post">
Enter ID:
<input type="text" name="id">
<br>
<input type="submit" name="submit" value="Submit">
</form>
使page2.php
<?php
session_start();
$user_id=$_SESSION["id"];
echo $user_id; // will echo 1234 if you entered "1234" in the previous page.
常规会话方法(page1.php)
<?php
session_start();
$id = $_SESSION["id"] = "1234";
echo $id; // will echo 1234
使page2.php
<?php
session_start();
$user_id=$_SESSION["id"];
echo $user_id; // will echo 1234
<强>脚注:强>
然后,您可以为成员的登录区域使用相同的(会话)变量,例如数据库。
重要使用会话在所有页面中保留session_start();
,并在顶部。
如果您将header()
与此结合使用,则需要在ob_start();
之前添加session_start();
否则(正如Eitan在评论中所述)“$_SESSION
值将无法解析。”
header()
示例:
<?php
ob_start();
session_start();
$user_id=$_SESSION["id"];
if(isset($_SESSION["id"])){
header("Location: members_page.php");
exit;
}
else{
header("Location: login_page.php");
exit;
}
您还可以将if(isset($_SESSION["id"]))
替换为if(!empty($_SESSION["id"]))
要实施注销页面,您需要使用session_destroy();