1
我在index.php文件下面的代碼(簡化):
<?php
print_r($_GET);
if ($_GET['f'] == "activate") {
//do stuff
}
if ($_GET['f'] == "disable") {
//do stuff
}
?>
,並進一步下跌的一頁,一些HTML:
<tr>
<td style='font-size: 0.9em;'>[email protected]</td>
<td style='font-size: 0.75em;'><span style="color: #00AF28;">Active</span></td><td style='font-size: 0.75em;'><a href="?f=disable&[email protected]">Disable</a></td>
</tr>
的兩個超鏈接將瀏覽器指向URL index.php?f=disable&[email protected]
和index.php?f=disable&[email protected]
。
在點擊超鏈接(和指導瀏覽器index.php?f=disable&[email protected]
)的print_r($_GET)
結果是:
Array ([f] => disable [id] => [email protected])
然而, '如果' 聲明:
if ($_GET['f'] == "disable") {
//do stuff
}
不執行,直到我刷新頁面,或按地址欄上的回車鍵。
我在OSX上使用Chrome 16,使用PHP5。
非常感謝
你能舉一個這樣的現場例子嗎?這聽起來很奇怪。 – 2012-01-05 10:34:42
確定if語句未執行?你有沒有用簡單的回聲或從上面的print_r來試用它? – Armin 2012-01-05 10:36:29
問題:通過$ _GET參數發送「禁用」或「激活」命令是否安全? – 2012-01-05 10:37:12