【发布时间】:2015-09-06 07:50:28
【问题描述】:
我创建了一个电子商务网站,在下订单后,我将用户重定向到带有订单号的成功页面。如果订单号不存在,则 id 将被传递。但是如果没有订单号和订单ID,那么如果粘贴直接URL,那么成功页面也会显示一些以前的订单。例如:www.mywebsite.com/order/success/5000,这里 5000 不存在,所以它应该将我重定向到 404 错误页面。
MY_控制器
$order_num = $this->order_model->getOrderNum($order_id);
if(empty($order_num)){
$order_num = $order_id.'/id';
}
$redirect_url = 'order/success/'.$order_num.'/';
?>
<script>
function redirect_success(url) {
location.assign(url);
}
var success = '<?=$redirect_url?>';
redirect_success(success);
</script>
我的模型
public function getOrderNum($order_id = ''){
$returnVal = false;
$sql = "SELECT order_num FROM order_table";
$sql .= " WHERE order_id = '{$order_id}'";
$query = $this->db->query($sql);
if($query->num_rows() > 0){
$result = $query->result_array();
$row = $result[0];
$returnVal = $row;
}
return $returnVal['order_num'];
}
【问题讨论】:
-
伙计,我对 codeigniter 了解不多,但您可能应该在重定向之前进行检查以确保 id 存在,例如:
if(isset($order_num)){ //redirect -
它不工作@HawasKaPujaari。它仍然显示我以前的一些订单
标签: php codeigniter url restrict