使用PHP将变量从一个页面传递到另一个页面

时间:2012-07-05 15:58:37

标签: php

有谁知道下面的代码出了什么问题,导致我无法在File2.php $myusername File1.php中打印变量{。}}。

我只想打印变量$myusername,或者如果您知道如何传递对我来说非常有用的变量的任何其他方式。

以下是我的例子:

File1.php

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

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

File2.php

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

3 个答案:

答案 0 :(得分:4)

我主张使用$_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'] : '');
?>

<强> File2.php

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

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

答案 1 :(得分: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 Variable scope。 您也可以通过$_SESSION传递它。

答案 2 :(得分:1)

按会话。

File1.php

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

File2.php

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