【发布时间】:2013-09-16 18:47:03
【问题描述】:
我无法从链接获取数据
如何在 review.php 页面上检索 $row['review'] 数据?
<td align="left"><a href="review.php?id='. $row['review'] . '"> Read Review </a>
【问题讨论】:
我无法从链接获取数据
如何在 review.php 页面上检索 $row['review'] 数据?
<td align="left"><a href="review.php?id='. $row['review'] . '"> Read Review </a>
【问题讨论】:
在您的reviews.php 中,您可以这样做:
$reviewID = $_GET['id'];
为了确保已设置好,我会执行以下操作:
$reviewID = ( isset($_GET['id'] ) : $_GET['id'] ? NULL;
说明:
超链接的 href 值类似于review.php?id=XXX。查询字符串(作为名称/值对)在 GET 请求的 URL 中发送。由于请求方法是GET,因此您需要使用$_GET 超全局数组,因此$_POST 将不起作用。
如果您想检查 REQUEST 类型,可以使用$_SERVER['REQUEST_METHOD']:
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
//do something
}
希望这能回答你的问题。
【讨论】:
is_null 不是必需的,因为isset 检查它是否存在并且不为空。
isset() 不会返回 true,因此实际上不需要 is_null()。
使用$_GET 超全局集合,它包含每个查询字符串值。
$review = $_GET['id'];
【讨论】:
$_GET['id']。
? 之后的参数是 GET 请求的一部分
总是最好在尝试获取 GET 变量之前检查它是否存在。要检查它是否可用且不为空,您可以这样做:
$__review_ID = isset($_GET['id']) ? $_GET['id'] : FALSE;
【讨论】:
作为 PHP 最佳实践,您可以使用 filter_input:
PHP's new input_filter does not read $_GET or $_POST arrays
那是因为您需要清理传递的数据,以确保您的应用免受注入代码、xss 等的影响...
FILTER_SANITIZE_ENCODED
FILTER_SANITIZE_NUMBER_INT
FILTER_SANITIZE_EMAIL
FILTER_SANITIZE_URL
我认为这个问题是重复的,需要关闭。
【讨论】:
【讨论】:
$_GET['id']。