У меня есть функция, которую я вызываю с помощью « ?clear-cart
добавленной к концу моей страницы; как вы можете догадаться, эта функция очищает корзину пользователя.
Я называю это так
<a href="?clear-cart">Clear Cart</a>
Что отлично работает (при этом загружается одна и та же страница, но теперь тележка очищается), за исключением того, что URL-адрес в адресной строке теперь читается
http://test.local/cart?clear-cart
Есть ли вообще позвонить ?clear-cart
но вернуть URL-адрес без параметра? (Скрыть его от пользователя, так как я использую его только для вызова внутренней функции?)
Вы можете очистить корзину, а затем сразу перенаправить использование заголовка (очевидно, перед любым выходом!).
<?php header('Location: http://test.local/cart'); ... clear the cart ... ?>
Дополнительную информацию см. В справочном руководстве по PHP .
Вместо запроса GET используйте POST-запрос?
Что-то вроде этого должно делать то, что вы хотите:
if (isset($_GET['clear-cart'])) { clear_cart(); header('Location: http://test.local/'); }
Модифицируйте в соответствии с вашими потребностями.
Вы можете написать код очистки корзины в другом скрипте и перенаправить его обратно на свою страницу, когда это будет сделано.
Ну, в функции, которая очищает корзину, вы можете перенаправить пользователя на правильный URL-адрес, используя функцию header ().
У вас есть страница http: //test.local/cart на странице http: //test.local/cart? Clear-cart , которая затем перенаправляет пользователя обратно на http: //test.local/cart .
/ cart -> / cart? clear-cart -> / cart
if (isset($_GET['clear-cart'])) { // Do some cart clearing... // Redirect back header('Location: /cart'); exit; // Very important, otherwise the script will continue until it finally redirects }