似乎最后一段时间越来越难了!
所以我有if语句,如果这些语句是真的,那么代码应该执行。问题是代码正在执行,即使它不是真的。
即使Spproved设置为1
也执行的代码if($user_data['permissions'] >= 1)
{
// If users permission is 1 or 2 they get a field for inputting the index # and a button to change the approve field from 0 to 1 may need to make a new field to record who approved it....
//Determine if the order is already approved. If not approved show index field and allow user to approve it with index number
if($data2[0]['Approved'] == 1)
{
echo " <font color=\"green\"> Approved";
}
else if($data2[0]['Approved'] == 0)
{
echo " Not Approved. Supply an index number and click approve to authorize this order to be completed.";
if (empty ($_GET) === false)
{
$required_fields = array('IndexNum');
foreach ($_GET as $key=>$value)
{
if (empty($value) && in_array($key, $required_fields) === true)
{
$errors[] = 'Fields marked with an asterisk are required';
break 1;
}
}
if (isset($_GET['success']) === true && empty($_GET['success']) === true)
{
echo 'Index has been updated and Order is now set to Approved';
}
else
{
if (empty($errors) === true)
{
$indexnum=$_GET['IndexNum'];
$approvedby=$user_data['lname'];
$vendorid1= $_GET['hidden1'];
update_approved($approvedby, $indexnum, $vendorid1);
header('Location: index.php');
exit();
}
else if(empty($errors) === false)
{
echo output_errors($errors);
}
}
}
?>
<form name="approveform" method="GET" action="">
<input type="hidden" name="hidden1" value="<?php echo $id;?>">"
Index Number*: <input type="text" name="IndexNum">
<input type="submit" value="Approve" action="">
</form>
<?php }
}
if($user_data['permissions'] == 2)
{
// If user is permission 2 they can have a button to say shipped... Do I need to record who shipped it? for now nah. Would be nice to input a data of arrival though. I will think on it .... pretty lazy
if($data2[0]['Approved'] == 1)
{
echo "<br/>";
echo "Confirm order has been ordered";
if(isset($_GET['Ordered']))
{
$vendorid1=$_GET['hidden1'];
echo $vendorid1;
//update_shipped($vendorid1);
//header('Location: index.php');
//exit();
}
?>
<form name="approveform" method="GET" action="">
<input type="hidden" name="hidden1" value="<?php echo $id;?>">
<input type="submit" name="Ordered" value="Ordered" action="">
</form>
<?php
}
}
IT在表单上以绿色显示已批准,并且“有序”按钮显示正常。当我单击提交按钮时,else if($ data [0] ['Approved'] == 0)中的代码激活而不是代码。 Approved设置为1所以我不知道为什么代码正在运行.....
print_r($data2)
的值是
Array ( [0] => Array ( [VendorName] => Newegg [DateRequested] => 2013-09-25
[DateNeeded] => 0000-00-00 [Shipping] => Standard [VendorNumber] => 123123
[VendorFax] => NA [VendorAddress] => 1 ave new [VendorCity] => socorro
[VendorState] => nm [VendorZip] => 87114 [EquipmentConsumable] => Consumable
[GasType] => propane [GasLocation] => United States [UNMTag] => 0
[EquipmentLocation] => [index] => 414141 [totalcost] => 129.88
[Approved] => 1 [Shipped] => 0 ) )
答案 0 :(得分:1)
使用严格的比较,===
和!==
代替==
和!=
。除非另有说明,否则PHP倾向于将1和0评估为布尔值。
此外,使用empty()
等功能,您可以更改:
if( empty($_GET) === FALSE )
至 if( !empty( $_GET ) )
if( empty($_GET) === TRUE )
到 if( empty( $_GET ) )
因为他们返回布尔值。
由于您使用$ _GET,请确保每次传递所需的所有变量都在url中。由于表单元素只能传递嵌套的输入元素,因此您可能需要在提交后传递更多隐藏信息。此外,您应该将文件名放在action=""
中,或者从表单标记中省略它。
答案 1 :(得分:1)
我知道这不会解决你的问题,但......
You have an extra "
right here
|
V
<input type="hidden" name="hidden1" value="<?php echo $id;?>">"
Index Number*: <input type="text" name="IndexNum">
<input type="submit" value="Approve" action="">