Как устранить ошибку при перенаправлении с одной страницы на другую в zen-cart

Я хочу обновить значение базы данных при изменении параметров в раскрывающемся списке. После обновления 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));
}
}

?>

1 ответ

В вашем коде есть несколько проблем:

  1. В вашем коде есть серьезные уязвимости SQL-инъекций. Вам необходимо очистить ваши входные данные перед использованием их в запросе к базе данных. Если кто-то обнаружит вашу страницу и попытается использовать мошеннические данные, он может нанести СЕРЬЕЗНЫЙ ущерб вашей базе данных.

  2. Вы не можете использовать объект базы данных в качестве операнда при сравнении со строковым значением.

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

Возможно, вы могли бы заменить это только строкой zen_redirect без оператора if(), так как вы будете выполнять перенаправление независимо от этого.

  1. И еще одна проблема - почему вы выполняете задачи административного обновления на страницах витрин, которые изначально не имеют прав администратора.
Другие вопросы по тегам