在POST上传输PHP类数据

时间:2013-06-24 18:50:55

标签: php

说我已经在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的值?

2 个答案:

答案 0 :(得分: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"

请记住,用户可以操作隐藏输入字段中的数据,您不应该相信数据没有被篡改。确保检查数据 BEFORE ,然后将其取消序列化。如果您需要更安全的方法,请考虑使用$_SESSION

之类的内容

答案 1 :(得分:1)

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

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

然后在下一页检索它:

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

您可以在php.net上的PHP Sessions上阅读更多内容。