使用PHP将变量从一个页面传递到另一个页面
问题描述:
是否有人知道下面的代码有什么问题,导致我无法在File2.php
中打印变量$myusername
,从File1.php
。使用PHP将变量从一个页面传递到另一个页面
我只是想打印变量$myusername
,或者如果您知道任何其他方式如何通过该变量,这将对我非常有用。
这是我的例子:
File1.php
<?php
$myusername=$_POST['myusername'];
function getusername()
{
return $myusername;
}
?>
File2.php
<?php
require_once('File1.php');
getusername();
?>
答
需要声明$myusername
全球,当您试图访问它在功能范围内,你也需要以某种方式打印(例如echo
);)
File1.php
<?php
$myusername=$_POST['myusername'];
function getusername()
{
global $myusername; // declare as global
return $myusername;
}
?>
File2.php
<?php
require_once('File1.php');
echo getusername(); // echo value
?>
了解更多:PHP Variable scope。 您也可以通过$_SESSION传递它。
答
按会话。
File1.php
<?php
session_start();
$_SESSION['myusername'] = $_POST['myusername'];
File2.php
<?php
session_start();
echo $_SESSION['myusername'];
答
我会主张利用$_SESSION
。
PHP中的会话支持包括在后续访问中保留某些数据 的方法。这使您可以构建更多自定义的 应用程序,并增加您网站的吸引力。
访问您的网站的访问者被分配了一个唯一的ID,即 所谓的会话ID。这可以存储在用户 一侧的cookie中或者在URL中传播。
会话支持允许您在$ _SESSION超全局数组中的请求之间存储数据。当访问者访问您的站点时,PHP 将自动检查(如果session.auto_start设置为1)或 您的请求(明确地通过session_start()或通过 session_register())隐式地检查特定会话ID是否已经发送 请求。如果是这种情况,则先前保存的环境是 重新创建。
File1.php
<?php
session_start();
$_SESSION['myusername'] = (isset($_POST['myusername']) ? $_POST['myusername'] : '');
?>
文件2。PHP
<?php
session_start();
echo $_SESSION['myusername'];
?>
您还会注意到,在所提供的File1.php
代码,如果该值首次提供的$_SESSION['myusername']
声明检查。如果是,则将会话变量设置为该值,否则将其设置为空。
尝试阅读会话 – Gntem 2012-07-05 16:00:00
“无法打印”是什么意思?你能在这里粘贴你得到的任何错误信息吗? – taz 2012-07-05 16:00:41