我想知道为什么我的代码可以修剪到以下结构,不打印我认为应该打印的内容。基本上我在同一个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);
}
}
答案 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;
?>
如果你真的试图从一个页面保存到一个新页面,你需要一个会话。