0

我需要通过 $_POST 传递一个变量。这个变量永远不会由与表单交互的用户提供。基本上,当您单击一个按钮时,它会从数据库中获取一个数字,我需要将此数字从一个页面传输到一个表单,然后从该表单传输到另一个页面。没有用户看到它或能够编辑它。稍后我需要能够创建一个包含多个数字的数组,现在我从一个小数字开始。我确定这很简单。我认为 cookie 会起作用,但是当我开始必须传输多个号码然后访问它们时,我相信我会遇到问题。除非您可以在 cookie 中存储数组。

也许内爆多个数字的数组,比如说

$MyArray = array(1, 2, 3, 4);
$ArrayToString = implode(",",$MyArray);
setcookie("My_Numbers", $ArrayToString, TIMEHERE);

然后当我访问它们时

$NewArray = explode(","$_COOKIE['My_Numbers']);
setcookie("My_Numbers", "", PASTTIME);
print_r($NewArray);

我只是在写这篇文章的时候想到了这个。希望有一个更安全,也许更简单的方法。

4

2 回答 2

0

使用 $_SESSION 变量,它将在您所在的所有页面中保持活动状态。直到您销毁它们

于 2013-11-13T01:43:20.287 回答
0

<input name="yourName" type="hidden" value="<?php echo $yourVariable; ?>" />

如果您想远离会话变量,请走这条路。否则 $_SESSION 也是一个不错的方法。虽然我不确定数据到底是什么以及它是否真的属于 $_SESSION var

编辑:

使用假设person表格

//form page user sees
<?php
$query = "SELECT * FROM `person` WHERE `personId` = '$_GET['personId']`";

//assume we get the data into $row array
?>

<form action="process.php">
    <input name="id" type="hidden" value="<?php echo $row['personId']; ?>" />

    <input name="firstName" type="text" value="<?php echo $row['firstName']; ?>" />

    <input name="lastName" type="text" value="<?php echo $row['lastName']; ?>" />

    <input name="submit" type="submit" value="submit" />
</form>

//process.php
<?php
$query = "UPDATE `person` SET `firstName` = '$_POST['firstName']', `lastName` = '$_POST['lastName']' WHERE `personId` = '$_POST['personId']";
?>

记住这个例子很容易受到 SQL 注入的影响。请以更好的方式获取您的数据。

于 2013-11-13T01:46:36.517 回答