webForumDet fria alternativet

Rensa post-variabler

PHP

9 svar · 713 visningar · startad av haagel

Medlem sedan feb. 2006134 inlägg
Frågan#1

Hej!

Finns det något enkelt sätt att rensa bort post-variabler?

Jag har en webbsida med ett formulär där besökaren fyller i namn och andra uppgifter. När besökaren sedan postar formuläret så skickas han/hon vidare till en annan webbsida där lite validering sker och sedan skickas uppgifterna med email och besökaren får en bekräftelse. Problemet är att om användaren uppdaterar sidan med bekräftelsen så kommer ännu ett mail att skickas (identiskt med det första). Jag vill att det inte ska skickas något mer mail även om besökaren uppdaterar sidan.

Därför tänkte jag att det kanske var ett bra sätt att rensa bort postvariablerna. Då kommer inget mail att skickas då jag har ett test mot detta. Eller finns det kanske nån bättre lösning?

Medlem sedan mars 20025 907 inlägg
#2

Låt formuläret posta sitt innehåll till sidan x.php. När mailet har skickats från den sidan så skickar du vidare besökaren till sidan y.php (med hjälp av header("location: y.php");).

Medlem sedan okt. 20001 285 inlägg
#3

...

Medlem sedan mars 20025 907 inlägg
#4

Fuel skrev:

+ kanske...

unset($_POST['variabel1'],$_POST['variabel2'],$_POST['variabel3']);

.. fast om man refreshar sidan så skickas post-variablerna på nytt, så det där hjälper inte.

Medlem sedan okt. 20001 285 inlägg
#5

...

Medlem sedan mars 20025 907 inlägg
#6

Fast redirectar man till y.php så följer inte post-variablerna med. Så det tillför inget att tömma dem innan man redirectar.

Medlem sedan feb. 2006134 inlägg
#7

Tack för hjälpen! Jag får väl ta och göra två sidor/skript.

En liten fråga bara...

Om formulärets data skickas till x.php och jag därifrån skickar besökaren vidare till y.php med "header("location: y.php");", kommer då någon information från x.php skickas till besökarens browser, eller kommer denna att uppfatta det som att den gick direkt till y.php? Förstår ni vad jag menar (jag tycker själv att det låter lite luddigt)? Jag fattar att sidan x.php aldrig kommer att visas då jag inte har någon utskrift på sidan, men kommer besökarens browser att få några headers eller liknande när x.php "besöks"?

Medlem sedan okt. 20001 285 inlägg
#8

...

Medlem sedan mars 20025 907 inlägg
#9

haagel skrev:

Om formulärets data skickas till x.php och jag därifrån skickar besökaren vidare till y.php med "header("location: y.php");", kommer då någon information från x.php skickas till besökarens browser, eller kommer denna att uppfatta det som att den gick direkt till y.php?

I adressfältet kommer det stå x.php ett tag, sen byts det till y.php. Inget annat kommer märkas av besökaren.

Fuel skrev:

x.php postar till sig själv ( validerar & kollar , steg 2 ) är allt OK klicka continue --> till sig själv igen ( steg 3 ) mailar eller lägger i db eller whatever, unset eller töm alla variabler --> redirect till y.php ( eller sig själv igen, steg 4 ) & där står det tack! och den behöver inga variabler...

Eftersom man redirectar behöver man fortfarande inte tömma några post-variabler. De försvinner av sig själv när man byter sida. :)

Medlem sedan okt. 20001 285 inlägg
#10

...

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)