$_Get not getting url id


$_Get not getting url id

*固定****

echo "<li><a href='"product_display?id=$id'">" . $row['iname'] . "</a></li>";

缺少什么?

.php

/facepalm


我似乎无法将id值传递给$_get。我试过添加会话和各种各样的东西。

即使我只是自己做print_r($GET),它也会给我:

页面重定向不正确

Firefox检测到服务器正在重定向这个地址永远不会完成

这不是为了生产,而是一个项目,所以我不担心注射等。。我已经使用GET与旧的php-mysql语法,它工作,只是不确定问题是什么。不,代码是野蛮的,所以任何帮助都将不胜感激。

第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();
}
?>

此语句

$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注入漏洞。请参见此处
所以你应该像一样重写它

$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']));