1

有谁知道下面的代码有什么问题,阻止我在File2.php变量$myusername中打印File1.php.

我只是想打印变量$myusername,或者如果您知道如何传递该变量的任何其他方式,这对我非常有帮助。

这是我的例子:

文件1.php

<?php 
$myusername=$_POST['myusername']; 

function getusername() 
{ 
   return $myusername;    
} 
?>

文件2.php

<?php 
require_once('File1.php'); 
getusername(); 
?>
4

3 回答 3

4

我会提倡使用$_SESSION.

PHP 中的会话支持包括一种在后续访问中保留某些数据的方法。这使您能够构建更多定制的应用程序并增加您网站的吸引力。

访问您的网站的访问者被分配一个唯一的 id,即所谓的会话 id。这要么存储在用户端的 cookie 中,要么在 URL 中传播。

会话支持允许您将请求之间的数据存储在 $_SESSION 超全局数组中。当访问者访问您的站点时,PHP 将自动检查(如果 session.auto_start 设置为 1)或根据您的请求(显式通过 session_start() 或隐式通过 session_register())检查是否已随请求发送了特定会话 ID。如果是这种情况,则重新创建先前保存的环境。

文件1.php

<?php
session_start();
$_SESSION['myusername'] = (isset($_POST['myusername']) ? $_POST['myusername'] : '');
?>

文件2.php

<?php
session_start();
echo $_SESSION['myusername'];
?>

您还会注意到,在提供的File1.php代码中,$_SESSION['myusername']声明正在检查是否首先提供了值。如果是,则将会话变量设置为该值,否则将其设置为空。

于 2012-07-05T16:04:37.690 回答
3

$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 变量范围。您也可以通过$_SESSION传递它。

于 2012-07-05T16:00:02.670 回答
1

按会话。

文件1.php

<?php
session_start();
$_SESSION['myusername'] = $_POST['myusername'];

文件2.php

<?php
session_start();
echo $_SESSION['myusername'];
于 2012-07-05T16:01:48.753 回答