2012-04-26 3 views
0

ドロップダウンリストのオプションを変更しながらデータベースの値を更新したいとします。 upadationの後、ctrlは注文ページにリダイレクトします。今更新は正常に動作していますが、注文ページに戻ることはできません。私はそれには次のコードを使用しています。 orders.phpでzen-cartのあるページから別のページにリダイレクトするときのエラーの解決方法

コード

<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)); 
} 
} 

>

+0

...とエラーは? –

答えて

0

あなたのコード内のいくつかの問題があります?

  1. あなたはあなたのコード内で深刻なSQLインジェクションの脆弱性を持っています。データベース問合せで使用する前に入力をサニタイズする必要があります。誰かがあなたのページを発見し、不正な入力を使用しようとすると、データベースに重大な損害を与える可能性があります。

  2. 文字列値と比較するときに、データベースオブジェクトをオペランドとして使用することはできません。

    if($manufacturers == '1'){ 
        zen_redirect(zen_href_link('orders', '', $request_type)); 
    } 
    

あなたは関係なく、リダイレクトをやるので、あなたはおそらく、もし()文なしで、ちょうどzen_redirectラインでそれを置き換えることができます。

  1. まず、管理者特権を持たない店頭のページで管理者による更新タスクを実行する理由が全体的に分かります。
関連する問題