【发布时间】:2012-05-05 03:24:36
【问题描述】:
我要在我的网站上制作编辑菜单。所以我将页面从产品引导到编辑页面。我感到困惑的是如何从产品页面获取产品 ID 以在编辑页面中使用? 这是我在产品中的代码
<?php $query= "SELECT * FROM game";
$rs = mysql_query($query);
while($data = mysql_fetch_array($rs)) { ?>
<div class="gameBox">
<div style="margin:5px;">
<?php echo "<image src=\"images/".$data['gameId'].".png\" alt=\"gameImage\" </image>"?>
<div class="cleaner"></div>
<div class="myLabel">Name</div><div>: <?php echo $data['gameName'];?></div>
<div class="myLabel">Developer</div><div>: <?php echo $data['gameDeveloper']; ?></div>
<div class="myLabel">Price</div><div>: $ <?php echo $data['gamePrice']; ?></div>
<br />
<a href="edit.php" <?php $id=$data['gameId'];?>><input type="button" value="Edit"/></a>
<a href="<!-- Delete -->"><input type="button" value="Delete"/></a>
</div>
</div>
<?php } ?>
这是我在编辑页面中的代码
<?php include("connect.php");
$id[0] = $_REQUEST['id'];
$query = "SELECT * FROM game WHERE gameId=".$id."";
$rs = mysql_query($query);
while($data = mysql_fetch_array($rs)) { ?>
<form action="doUpdate.php" method="post">
<?php echo "<image src=\"images/".$id.".png\" alt=\"gameImage\" </image>"?>
<div class="cleaner"></div>
<div class="myLabel">Name</div><div>: <input type="text" value="<?php echo $data['gameName'];?>" id="gameName" name="gameName"/></div>
<div class="myLabel">Developer</div><div>: <input type="text" value="<?php echo $data['gameDeveloper'];?>" id="gameDeveloper" name="gameDeveloper"/></div>
<div class="myLabel">Price</div><div>: <input type="text" value="<?php echo $data['gamePrice'];?>" id="gamePrice" name="gamePrice"/></div>
<br/>
<div id="txtError">
<!--error message here-->
</div>
<input type="submit" value="Submit"/>
<a href="product.php"><input type="button" value="Cancel"/></span></a>
<?php } ?>
当我尝试访问编辑页面时,出现错误提示
"Undefined index:$id[0] = $_REQUEST['id'];"
在编辑页面中。 谁能帮帮我?
【问题讨论】:
-
您的脚本易受 SQL 注入攻击。至少,调用
intval()将字符串 $id 转换为整数:$id = intval($_REQUEST['id']); -
@Michael:我通常会做类似
$id = (int)$_GET[...]的事情——知道哪个更好吗?一样吗? -
@jedwards 它们基本上是等价的。如果需要,
intval()作为基数选项。确实,最好检查该事物是否为预期的整数,如果不是,则根本不要对数据库执行任何操作。 -
@jedwards 许多 PHP 程序员只会接受脚本接收到的值而不检查类型和边界,但这是一种糟糕的做法。