假设我在PHP中定义了一些类,如下所示:
class foo
{
var $bar;
function foo($name)
{
$this->bar = $name;
}
}
现在让我们假设我已经创建了这样一个类的实例
<form action="somenewform.php" method="POST">
<div name="somename">
<?PHP
$somevar = foo("someclassname");
?>
</div>
</form>
我对PHP还比较陌生,只是想知道如何在另一个页面上检索这些数据。我知道你需要做$_POST[‘name’]来检索数据,但我该如何检索bar的值?
我倾向于将这类信息存储在会话变量中:
session_start();
$somevar = new foo( 'someclassname' );
$_SESSION['somevar'] = $somevar;
然后在下一页检索:
session_start();
$somevar = $_SESSION['somevar'];
echo $somevar->bar;
您可以在PHP.net上阅读更多关于PHP会话的信息。
您需要序列化该类,将其设置为隐藏的输入字段,然后在下一页上取消序列化。
例如:
<form action="somenewform.php" method="POST">
<div name="somename">
<?php
$somevar = foo("someclassname");
?>
<input type="hidden" name="foo" value="<?php echo serialize($somevar); ?>" />
</div>
</form>
然后在你的目的地页面上反序列化它
$somevar = unserialize($_POST['foo']);
echo $somevar->bar; //echos "someclassname"
请记住,用户有可能操作隐藏输入字段中的数据,并且您不应该相信数据没有被篡改。请确保在取消序列化之前检查数据。如果需要更安全的方法,请考虑使用类似$_SESSION
的方法。