我试图测试访问特定PHP页面时是否设置了$ _GET变量:
我有一个表单,它返回到同一页面(见下文)下面,表单是PHP代码,用于检查product_id
变量是否已设置并相应地执行操作。
FORM
<form action="form_update_products.php" method="post" name="search" id="search">
<table width="100%" cellspacing="0" cellpadding="2">
<tr>
<td colspan="2" class="text-18">
View / Update Product Barcodes by Product ID:
</td>
</tr>
<tr>
<td colspan="2" align="right">
<img src="images/spacer.png" width="100" height="4" />
</td>
</tr>
<tr>
<td width="12%" align="right">
<input name="product_id" type="text" class="size-box" id="product_id"
onclick="this.value = '';" style="font-size: 22px; width:500px"/>
</td>
<td width="88%">
<input name="submit" type="submit" class="submit-button"
id="submit" value="View Product Barcodes" />
</form>
form_update_products.php
<?php
$product_id=$_POST['product_id'];
header('Location: update_products.php?id='.$product_id.'');
?>
PHP
if (isset($_GET['id']))
{
$product_id = $_GET['id'];
}
if (!isset($product_id))
{
echo '';
}
else { // output something }
由于某些原因,$_GET['id']
变量似乎始终默认为相同的product_id
,并且仅在表单中输入其他product_id
时才会更改。即使关闭浏览器并重新打开页面,也会设置$_GET['id']
变量。
有人能告诉我为什么$_GET['id']
变量似乎总是被设定?
答案 0 :(得分:1)
始终设置ID,您需要执行empty()
检查empty()
与isset()
相同,但也会检查是否输入了内容
if(!empty($_GET['id'])) {
$product_id = $_GET['id'];
//your code
} else {
echo '';
}