我已經創建了電子商務網站,在下訂單後,我將用戶重定向到具有訂單號的成功頁面。如果訂單號不存在,那麼id將被傳遞。但是,如果沒有訂單編號和訂單編號,則存在問題,那麼如果直接鏈接被粘貼,成功頁面就會顯示以前的一些訂單。例如:www.mywebsite.com/order/success/5000
,這裏5000不存在,所以它應該重定向到404錯誤頁面。阻止codeigniter中的直接url訪問
MY_controller
$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>
My_Model
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'];
}
男人,我不t對codeigniter有很多瞭解,但是你應該在重定向前確認id是否存在,如:if(isset($ order_num)){// redirect' – user5173426
它不工作@HawasKaPujaari。 stil顯示我以前的訂單 – nishu