将变量从php文件发布到另一个php文件

时间:2014-01-29 10:16:38

标签: php

我展示了类似的线程,但无法通过它们得到清楚。

page1.php中

<?php
   $id = 1234;
   //Post $id to page2.php   
?>

使page2.php

<?php
      $user_id=$_POST['id']; //should receive id posted from page1.php
?>

2 个答案:

答案 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();