22

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

例如,假设我有这两个变量:

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

我想将它们从 page1.php 传递到 page2.php。我不想通过 URL 传递它们。

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

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

4

6 回答 6

41

会话将是您的不错选择。看看PHP 手册中的这两个示例:

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 是 PHP 的预定义常量,其中包含会话名称及其 id。示例 SID 值:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
于 2013-05-27T18:12:00.487 回答
7

以下是简要清单:

  • 带有 JSON 内容的 JQuery。( http://www.w3schools.com/xml/xml_http.asp )

  • $_SESSION - 可能是最好的方式

  • 自定义 cookie -不会*总是*工作。

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

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

  • APC - 类似于数据库,不会*总是*工作。

  • HTTP_REFERRER

  • URL 散列参数,例如http://domain.com/page.php#param - 你需要一些 JavaScript 来收集散列。- gmail大量使用这个。

于 2013-05-27T18:18:52.377 回答
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'];
?>
于 2013-05-27T18:11:55.783 回答
3

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

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

<?php
session_start();
于 2013-05-27T18:10:25.897 回答
2

使用会话

第 1 页:

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

第2页:

session_start();
var_dump($_SESSION['message']);
于 2013-05-27T18:11:30.517 回答
0

MVC中,您可以将变量一页传递到另一页,如下所示:

<?php $this->load->view('Overview', ['customer' => $customer , 'job_id' => $job_id , 'email' => $emailid]);?> 

在 Overview.php 页面中,您可以像这样显示可变数据

echo $customer; // it will display customer value
echo $job_id; 
echo $email; // it will display email id
于 2021-11-25T06:30:28.477 回答