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

Lef*_*008 20 php variables post

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

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

//Original page
$message1 = "A message";
$message2 = "Another message";
Run Code Online (Sandbox Code Playgroud)

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

//I don't want
'page2.php?message='.$message1.'&message2='.$message2
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*mak 39

会议对你来说是个不错的选择.看一下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>';
?>
Run Code Online (Sandbox Code Playgroud)

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>';
?>
Run Code Online (Sandbox Code Playgroud)

要清理东西 - SID是PHP的预定义常量,它包含会话名称及其ID.示例SID值:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick 7

以下是简要列表:

  • JQuery与JSON的东西.(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大量使用这个.