0

私は、あるページから別のページに変数を渡す方法に取り組んできました。それは私の試験のためであり、私の先生が私が助けのためにインターネットを使うことができると言ったので、私はそれについて助けが必要です。変数を渡すために作成したこのリンクは、学生証または電子メールがリンクに渡されると想定されているため、機能していません。これは相対コードです:

echo "<table border=1><th colspan=7>Placed Orders</th></tr><tr><td>Student ID or Email</td><td>Name</td><td>Phone Number</td><td>Room Number</td><td>Order</td><td>Approval</td><td>&nbsp;</td></tr>";
while ($row=mysql_fetch_array($result)) {
    $id = $row["StudentIDorEmail"];
    $name = $row["Name"];
    $phone = $row["Phone"];
    $roomnumber = $row["RoomNumber"];
    $order = $row["Orders"];
    $approval = $row["Approved"];
    echo "<tr><td align='center'>" . $id . "</td><td align='center'>" . $name . "</td><td align='center'>" . $phone . "</td><td align='center'>" . $roomnumber . "</td><td align='center'>" . $order . "</td><td align='center'>" . $approval . "</td><td align='center'><a href='approve.php?id=".$id."'>Fill Order</a></td></tr>";
}
echo "</table>";

変数をapprove.phpページに渡して、その行を1に設定し、1に変更すると、データベースから削除されるようにしようとしています。それは私にエラーを続けさせています、そして私は何が悪いのか分かりません。これは、ページとの間で受け渡されると想定されるページの相対コードの他の部分です。

$id = $_GET["StudentIDorEmail"];
$query = "UPDATE tracker WHERE StudentIDorEmail=$id";
if (mysql_query($query, $con)) {
$query1 = "DELETE FROM tracker WHERE Approved=1";
if(mysql_query($query1, $con)) {
    echo "Order was filled successfully!";
} else {
    echo "Error: " . mysql_error();
}

}

これは私の試験の要件であり、ほぼ終了しているので、助けてください。

4

2 に答える 2

7

あなたのリンクは'approve.php?id=".$id."'

これは、にアクセスする必要があることを意味します。にアクセスする必要はあり$_GET['id']ません$_GET['StudentIDorEmail']

将来の参考のために、var_dump($_GET)どの変数が存在するかを確認してみてください。

編集:SQLインジェクションについて学ぶ必要があります。

XKCD

この場合、を使用$id = intval($_GET['id'])して、数字のみを取得できるようにすることができます。

于 2013-01-02T15:17:21.290 に答える
1

これは本当に簡単です、

<a href='approve.php?id=".$id."'>

これを次のように変更します。

<a href='approve.php?StudentIDorEmail=".$id."'>
于 2013-01-02T15:18:26.333 に答える