1

假设我在 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 的值?

4

2 回答 2

1

您需要序列化该类,将其设置为隐藏输入字段,然后在下一页取消序列化。

例如:

<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.

于 2013-06-24T18:56:35.053 回答
1

我倾向于将此类信息存储在会话变量中:

session_start();
$somevar = new foo( 'someclassname' );
$_SESSION['somevar'] = $somevar;

然后在下一页检索它:

session_start();
$somevar = $_SESSION['somevar'];
echo $somevar->bar;

您可以在 php.net上阅读有关PHP 会话的更多信息。

于 2013-06-24T19:01:17.600 回答