在不使用表单或页面URL的情况下在两个PHP页面之间传递变量

时间:2013-05-27 18:07:36

标签: php variables post

我想将一些变量从一个PHP页面传递给另一个PHP页面。我没有使用表格。变量是一些消息,如果出现问题,目标页面将显示。如何将这些变量传递给另一个PHP页面,同时保持它们不可见

e.g。让我们说我有这两个变量:

//Original page
$message1 = "A message";
$message2 = "Another message";

我希望将它们从page1.php传递给page2.php。我不想通过网址传递它们。

//I don't want
'page2.php?message='.$message1.'&message2='.$message2

有没有办法(可能通过$ _POST?)发送变量?如果有人想知道为什么我希望它们不可见,我只是不想在上传文件时想要一个包含"& message = Problem等参数的大URL地址。这不是一个有效的.zip文件"而且我没有太多时间来改变页面的重定向以避免这个问题。

5 个答案:

答案 0 :(得分:39)

会话对你来说是个不错的选择。看一下PHP Manual中的这两个例子:

  

page1.php的代码

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
  

page2.php的代码

<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

清除事物 - SID is PHP's predefined constant,其中包含会话名称及其ID。示例SID值:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1

答案 1 :(得分:7)

以下是简要列表:

  • JQuery与JSON的东西。 (http://www.w3schools.com/xml/xml_http.asp

  • $ _ SESSION - 可能是最好的方式

  • 自定义Cookie - 将 *始终*工作。

  • HTTP标头 - 某些代理可以阻止它。

  • 数据库,如MySQL,Postgres或其他类似Redis或Memcached(例如类似于自制会话,由IP地址“锁定”)

  • APC - 与数据库类似, *总是*工作。

  • HTTP_REFERRER

  • 网址哈希参数,例如http://domain.com/page.php#param - 您需要一些JavaScript来收集哈希值。 - gmail大量使用此功能。

答案 2 :(得分:4)

<?php
session_start();

$message1 = "A message";
$message2 = "Another message";

$_SESSION['firstMessage'] = $message1;
$_SESSION['secondMessage'] = $message2; 
?>

在第1页存储会话,然后在第2页存储

<?php
session_start();

echo $_SESSION['firstMessage'];
echo $_SESSION['secondMessage'];
?>

答案 3 :(得分:3)

您是否尝试将两者都添加到$_SESSION

然后在你的page2.php的顶部添加:

<?php
session_start();

答案 4 :(得分:2)

使用Sessions

第1页:

session_start();
$_SESSION['message'] = "Some message"

2页:

session_start();
var_dump($_SESSION['message']);