unset() и refresh
2 отговора
80 прегледа
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")
Как да направя така, че при рефреш продукта да не се добавя отново?
юзъра добавя продукт в кошницата, обаче решава (незнам защо) да натисне 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")
Как да направя така, че при рефреш продукта да не се добавя отново?
Re: unset() и refresh
Не можеш да правиш unset на данни, които идват от вън...просто защото при Refresh, browser-ът пак ги праща.
Направи submit към себе си + header("Location: ..."); redirection...така Back ще те върне във формата преди submit.
Great minds discuss ideas;
Average minds discuss events;
Small minds discuss people.
Направи submit към себе си + header("Location: ..."); redirection...така Back ще те върне във формата преди submit.
Great minds discuss ideas;
Average minds discuss events;
Small minds discuss people.
Благодаря
Благодаря, получи се много елегантно - във файла от който преди изпращах инфромация към cart.php сега го предавам на себе си, и после redirect със header към cart.php а този пък файл вече го изплозвам само за View Cart. Сега вече каквото и да пради юзъра, няма начин да добави нов продукт, освен ако не кликне отново на бутона Add To Cart
Благодаря.
Благодаря.