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");
}

?>

すでにフォームでアクションを提供しているにもかかわらず、名前、開発者、または価格を変更できないのはなぜですか? そして、検証が機能するかどうかを知るために名前、開発者、および価格を削除すると、編集.php $id= (int)$_GET['id']; で Undefined index と表示されるのはなぜですか。?

4

1 に答える 1

0

$_REQUEST['id']doUpdate.phpを取得しようとしていますが、フォームにそのようなフィールドはありません。
非表示フィールドとして追加する必要があります。

また、文字列をフォーマットする必要があります。
クエリに入れる文字列はすべて、特殊文字をエスケープする必要があります。

于 2012-05-05T05:00:31.567 に答える