我想在更改下拉列表中的选项时更新数据库的值。升级后ctrl重定向回订单页面。现在更新工作正常,但无法返回订单页面。我正在使用以下代码。
orders.php中的代码
<select name="order_status" onchange="update(this.value,<?php echo $row['orders_id'];?>)">
<option value="1" <?php if($row['orders_status']=='1'){ ?>selected="selected"<?php } ?>>In process</option>
<option value="2"<?php if($row['orders_status']=='2'){ ?>selected="selected"<?php } ?>>Processed</option>
<option value="3"<?php if($row['orders_status']=='3'){ ?>selected="selected"<?php } ?>>Dispatched</option>
</select>
<script>
function update(vals,order){
window.location="index.php?main_page=orders&val="+vals+"&id="+order;
}
</script>
<?php
if(($_REQUEST['id']) && ($_REQUEST['val'])){
$manufacturers = $db->Execute("update orders set orders_status = '{$_REQUEST['val']}'
where orders_id ='{$_REQUEST['id']}'");
if($manufacturers == '1'){
zen_redirect(zen_href_link('orders', '', $request_type));
}
}
&GT;
答案 0 :(得分:0)
您的代码中存在几个问题:
您的代码中存在严重的SQL注入漏洞。在数据库查询中使用它们之前,需要清理输入。如果有人发现您的页面并尝试使用恶意输入,他们可能会对您的数据库造成严重损害。
在与字符串值进行比较时,不能将数据库对象用作操作数。
if($manufacturers == '1'){
zen_redirect(zen_href_link('orders', '', $request_type));
}
您可能只使用zen_redirect行替换它,而不使用if()语句,因为无论如何都会进行重定向。