*的 固定 ** * *
echo "<li><a href=\"product_display?id=$id\">" . $row['iname'] . "</a></li>";
缺少什么?
.PHP
/捂脸
我似乎无法将id值传递给$ _GET。我尝试过添加会话和各种各样的东西。
即使我只是自己做print_r($GET)
,它也会给我:
该页面未正确重定向
Firefox检测到服务器正在重定向请求 这个地址永远不会完成
这不是用于生产,而是用于项目,所以我不担心注射等。 我已经使用旧的php mysql语法使用GET,它可以工作,只是不确定问题是什么。 Alos没有任何代码是野蛮的,所以任何帮助将不胜感激。
第1页:
<?php
require('lib/inc/db_inc.php');
$sql = "SELECT items.itemID, items.iname, items.idesc, items.iprice,iimg.imgURL FROM items JOIN iimg ON items.itemID = iimg.pid WHERE items.itype = 'usb_controllers'";
$stmt = $db->query($sql);
while ($row = $stmt->fetch()){
$id = $row['itemID'];
echo "<div class=\"prodMain\">";
echo "<div class=\"img\">";
echo "<a href=\"#\"><img src=\"" . $row['imgURL'] ."\"/></a>";
echo "</div>";
echo "<ul>";
echo "<li><a href=\"product_display?id=$id\">" . $row['iname'] . "</a></li>";
echo "<li><a href=\"#\">" . $row['idesc'] . "</a></li>";
echo "<li><a href=\"#\">" . $row['iprice'] . "</a></li>";
echo "</ul>";
echo "</div>";
}
?>
第2页:
<?php
require('../lib/inc/db_inc.php');
if (!isset($_GET['id'])) {
die("missing query parameter");
}
$id = intval($_GET['id']);
if ($id === '') {
die("Invalid query parameter");
}
$sql = "SELECT items.itemID, items.iname, items.idesc, items.iprice,iimg.imgURL FROM items JOIN iimg ON items.itemID = iimg.pid WHERE itemID = '$id'";
$stmt = $db->query($sql);
$row = $stmt->fetch();
echo print_r($row);
?>
db_inc.php
<?php
try {
$db = new PDO('mysql:host=******;dbname=*****', '*********', '********');
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
答案 0 :(得分:0)
本声明
$sql = "SELECT items.itemID, items.iname, items.idesc, items.iprice, iimg.imgURL FROM items JOIN iimg ON items.itemID = iimg.pid WHERE itemID = '$id'";
$stmt = $db->query($sql);
SQL注入的漏洞。见here。
所以你应该像
$sql = "SELECT items.itemID, items.iname, items.idesc, items.iprice, iimg.imgURL FROM items JOIN iimg ON items.itemID = iimg.pid WHERE itemID = ?";
$stmt = $db->prepare($sql);
$stmt->execute(array($_GET['id']));