unset() и refresh

2 отговора 80 прегледа
#1

unset() и refresh

shopping cart application

юзъра добавя продукт в кошницата, обаче решава (незнам защо) да натисне F5, т.е. рефреш. Или пък отива на друга страница обаче с BACK бутона на браузъра решава да се върене обратно (въпреки че има View Cart линк). И в двата случая продукта се добявя отново.


//в предишния файл: <input type=submit name=s1 value="Add To Cart">

//cart.php

if(isset($_POST[s1]))
{
//добавя в кошницата

//това не работи
unset($_POST[s1]);
}


//следва код за View Cart (един и същ файл го използвам за "Add To Cart" & "View Cart")

Как да направя така, че при рефреш продукта да не се добавя отново?

Отговор
в отговор на $burov #2

Re: unset() и refresh

Не можеш да правиш unset на данни, които идват от вън...просто защото при Refresh, browser-ът пак ги праща.

Направи submit към себе си + header("Location: ..."); redirection...така Back ще те върне във формата преди submit.

Great minds discuss ideas;
Average minds discuss events;
Small minds discuss people.
Отговор
в отговор на Dakota #3

Благодаря

Благодаря, получи се много елегантно - във файла от който преди изпращах инфромация към cart.php сега го предавам на себе си, и после redirect със header към cart.php а този пък файл вече го изплозвам само за View Cart. Сега вече каквото и да пради юзъра, няма начин да добави нов продукт, освен ако не кликне отново на бутона Add To Cart

Благодаря.

Отговор