起初我想用 $_POST 传递一个隐藏变量,但我开始意识到用户可以像 $_GET 一样轻松地更改 $_POST。是否有可能以某种方式限制这种能力,还是有其他方法可以做到这一点?此外,您似乎不能在下面这个简单的示例中使用 $_POST ?:
索引.php
<a href="test.php?variable=<?php echo $row['recipe_id'];?>"><view recipe</a>
测试.php
$variable = $_GET['variable'];
$query = $database->query("SELECT name, description, date_added from recipe where recipe_id = $variable");
(编辑:我确实检查了输入确实是一个整数,尽管我在上面跳过了这个以最小化示例的代码。我应该早点说清楚)。我想用户在这里可以做的唯一边缘“恶意”事情是循环通过 recipe_id:s 来找出数据库中有多少食谱,甚至是通过更改 $variable 添加的第一个食谱。并不是说我在乎这种特殊情况,但我确信在涉及其他示例时我会。我意识到我想让信息可用,我只是想让它通过我猜的“适当渠道”。这只是事情的方式还是我错过了一些重要的事情?
人们总是写诸如“验证您的输入”之类的东西。我同意这一点。但在这种情况下,它只是用户“输入”的一个整数。除了验证之外还能做什么?再说一次,我在慢慢进步/学习这个,所以如果我似乎犯了简单的错误,请耐心等待。
(使用PHP、PDO、Mysql)谢谢!