从一个页面读取PHP全局变量,在另一个页面中打印(在同一个PHP类中)

时间:2015-06-24 02:23:11

标签: php jquery post controller html-form

我想知道为什么我的代码可以修剪到以下结构,不打印我认为应该打印的内容。基本上我在同一个php控制器类中有两个方法和两个相应的html页面。我想从mypage.html检索POST请求(html文本输入表单)的值,并在用户在文本框中输入输入后单击“提交”按钮时将其重定向到secondpage.html。

更新:我刚刚阅读了PHP会话,我的程序确实启动了会话。但是,即使用户输入日期保存在数据库中,我也应该使用会话吗?

<? php 

$var; // initializing global variable; 

class MyClass { 

   public function mypage () { 
      global $var; 
      $var = $_POST['form_name']; 
   } 

   public function secondpage () { 
      global $var; 
      print_r($var); 
   } 

}

2 个答案:

答案 0 :(得分:2)

最简单的方法是将值存储在会话中,例如

<? php 
class MyClass { 

   public function mypage () { 
      $_SESSION['var'] = $_POST['form_name']; 
   } 

   public function secondpage () { 
      print_r($_SESSION['var']); 
   } 

}

这需要通过在其他地方调用session_start()来启动会话,但是您说会话已启动。

但是将数据保存在数据库中,为什么不在第二页()中读回来?

答案 1 :(得分:0)

在课堂上使用global很尴尬。 感觉错了。也许尝试使用static变量:

<?php 
class MyClass
    {
        public  static $var;

        public function mypage()
            {
                self::$var = 'test'; 
            } 

        public function secondpage()
            { 
                print_r(self::$var); 
            } 
    }

    $test   =   new MyClass();
    $test->mypage();

    // This will print test
    $test->secondpage();
    // This will also print test
    echo MyClass::$var; 
?>

如果你真的试图从一个页面保存到一个新页面,你需要一个会话。