0

我想在用户登录时更新我的​​产品。这是我在edit.php中的代码

                <?php
                $id= (int)$_GET['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'];?>" name="gameName"/></div>
                <div class="myLabel">Developer</div><div>: <input type="text" value="<?php echo $data['gameDeveloper'];?>" name="gameDeveloper"/></div>
                <div class="myLabel">Price</div><div>: <input type="text" value="<?php echo $data['gamePrice'];?>" name="gamePrice"/></div>

                <br/>

                <div id="txtError" style="color:#D70005">
                    <?php
                        if(isset($err))
                        {
                            if($err==1) echo"All Fields must be filled";
                            else if($err==2) echo"Price must be numeric";
                            else if($err==3) echo"Price must be between 1-10";
                        }
                    ?>
                </div>
                <input type="submit" value="Submit"/>
                <a href="product.php"><input type="button" value="Cancel"/></span></a>
                <?php
                }
                ?>
            </form>

这是我在 doUpdate.php 中的代码

<?php
$nama = $_POST['gameName'];
$dev = $_POST['gameDeveloper'];
$harga =$_POST['gamePrice'];
$id= (int)$_REQUEST['id'];

if($nama == "" || $dev == "" || $harga == "" )
{
    header("location:edit.php?err=1");  
}
else if(!is_numeric($harga))
{
    header("location:edit.php?err=2");  
}
else if($harga < 1 || $harga >10)
{
    header("location:edit.php?err=3");  
}
else
{
    $query = "UPDATE game SET gameName='".$nama."', gameDeveloper='".$dev."', gamePrice=".$harga." where gameId=".$id.""; 
    mysql_query($query);
    header("location:product.php");
}

?>

为什么我不能更改名称、开发商或价格,即使我已经在表格中给出了操作?为什么如果我删除名称、开发人员和价格以了解验证是否有效,它表示 edit.php 中的未定义索引 $id= (int)$_GET['id']; ?

4

1 回答 1

0

您试图进入$_REQUEST['id']doUpdate.php 但表单中没有这样的字段。
您必须将其添加为隐藏字段。

你也必须格式化你的字符串。
您要查询的每个字符串都必须转义其中的特殊字符。

于 2012-05-05T05:00:31.567 回答