PHP: удалить URL-адрес?

У меня есть функция, которую я вызываю с помощью « ?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 }