【发布时间】:2012-01-26 04:26:59
【问题描述】:
我有一个多页表单,我正在尝试在我的网站上实现它,它的工作原理如下:
1 输入客户详细信息 -- $_POST --> 2 确认客户详细信息 --$_SESSION--> 3 从客户详细信息生成 PDF
正如您在我的第二页上看到的,我从 $_POST 获取表单中的值。在同一页面上,我从名为 customer 的类中创建了一个名为“customer”的对象,该对象存储从我的第一页发布的所有值。
然后我设置一个名为“customer”的 $_SESSION 变量并将其分配给我的对象。
session_start();
//includes html header part of page
include("includes/page/header.php");
//customer class
include("classes.php");
$customer = new customer();
$_SESSION['customer'] = $customer;
现在在我网站的最后一页上,我有以下代码:
session_start();
//assign customer to equal object stored in session
$customer = $_SESSION['customer'];
//to test if successfull , nothing is displayed!
echo $customer->first_name;
return 0;
测试这个没有显示在我的页面上,所以我的会话没有做我认为它会做的事情。
仅供参考:
- 我的班级客户很好,工作正常,所有值都正确存储!
- 我的帖子数组工作正常
最后一页上会话的 var_dump。
object(__PHP_Incomplete_Class)#1 (15) { ["__PHP_Incomplete_Class_Name"]=> string(8) "customer" ["first_name"]=> string(5) "Iain" ["second_name"]=> string(6) "Taylor" ["company_name"]=> string(10) "Wired Ltd." ["address_1"]=> string(15) "14 Joseph St" ["address_2"]=> string(8) "West End" ["city"]=> string(7) "Glasgow" ["postcode"]=> string(7) "G45 NP4" ["county"]=> string(29) "Scotland" ["country"]=> string(14) "United Kingdom" ["email"]=> string(31) "somebody@somebody.com" ["phone"]=> NULL ["cid"]=> NULL ["reg_date"]=> NULL ["tel"]=> string(11) "01413395678" }
任何想法如何让它工作?
谢谢
圣诞快乐!
【问题讨论】:
-
你试过用
var_dump($_SESSION['customer'])查看内容吗? -
$customer->first_name在分配给会话之前是否有值? -
您是否在设置会话后验证可以直接读取会话?
-
我注意到您在首页添加了
classes.php,但在您的最后一页中没有添加include。故意的? -
您需要确保可以序列化该对象以将其存储在会话中(因为会话数据在存储时被序列化).. 请参阅 __sleep 和 __wakeup php 魔术方法.. 不是您保存的时候需要序列化..保存session的时候需要能够序列化