0

我一直在研究一种将变量从一个页面传递到另一个页面的方法。这是我的考试,我需要帮助,因为我的老师说我可以使用互联网寻求帮助。我为传递变量而创建的这个链接不起作用,因为学生 ID 或电子邮件应该被传递到链接中。这是相关代码:

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 回答