我尝试创建用户个人资料页面。所有访问者都可以看到此页面
www.sample.com/details.php?id=1
<?php
foreach($db->query('SELECT * FROM uyeler') as $row) {
echo "<tr><td>" .$row['id'] . "</td>";
echo "<td>" .$row['username'] . "</td>";
echo "<td>" .$row['sex'] . "</td>";
echo "<td>" .$row['country'] . "</td>";
echo "<td>" .$row['age'] . "</td>";
echo "<td>" .$row['twitter'] . "</td>";
echo "<td>" .$row['instagram'] . "</td>";
echo "<td>" .$row['snapchat'] . "</td>";
echo ('<td><a href="details.php?id=' .$row['id'] . '" title="Panel">Details</a></td>');
echo "</tr>";
}
?>
当他们点击此链接时。详情页面将会打开。
我尝试使用这些代码创建details.php
<?php
include('connect.php');
foreach($db->query("SELECT country FROM uyeler WHERE id =' .$row['id'] . '") as $row)
echo $row['id'];
?>
我该如何解决这个问题?感谢
答案 0 :(得分:1)
您可能从$ _GET变量而不是$行获取查询的ID。在尝试数据库查询以防止注入攻击之前,您应该检查它是否是正确的格式(即if(is_numeric($_GET['id']))
条件。
您还在选择“国家/地区”列,然后查找“ID”。试试这个:
<?php
include('connect.php');
if (is_numeric($_GET['id'])) {
foreach($db->query("SELECT country FROM uyeler WHERE id =' .$_GET['id'] . '") as $row)
echo $row['country'];
}
?>