Archief - refresh pagina

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

kimjanssens

Legacy Member
<?php
if(isset($_POST['email'])){
$name=$_POST['naam'];
$email=$_POST['email'];
$message=$_POST['message'];
mail($email,'Bericht op website',"Naam:".$name."\n Bericht: ".$message,'From: [email protected]');
}
?>

Dit zorgt ervoor dat je een mail kan sturen zonder eerst naar outlook gestuurd te worden. Maar als ik F5 indruk staat de info nog opgeslagen en kan men dezelfde berichten blijven sturen.. Hoe reset ik deze inhoud?

shadowstep0705

Legacy Member
Probeer eens
<?php
if(isset($_POST['email'])){
$name=$_POST['naam'];
$email=$_POST['email'];
$message=$_POST['message'];
mail($email,'Bericht op website',"Naam:".$name."\n Bericht: ".$message,'From: [email protected]');
unset($_POST['naam'];
unset($_POST['email'];
}
?>

[ka0z]

Legacy Member
voeg een Header('Location: index.php'); toe of een <meta>/JS redirect.

adrianhates

Legacy Member
shadowstep0705 zei:
Probeer eens
<?php
if(isset($_POST['email'])){
$name=$_POST['naam'];
$email=$_POST['email'];
$message=$_POST['message'];
mail($email,'Bericht op website',"Naam:".$name."\n Bericht: ".$message,'From: [email protected]');
unset($_POST['naam'];
unset($_POST['email'];
}
?>
unset($_POST['naam'];
unset($_POST['email'];

=

unset($_POST);

De form gewoon verbergen en uw bevestiging tonen doe ik meestal. Dan automatisch via JS redirecten naar de pagina en een link voorzien dat hetzelfde mogelijk maakt.

d-zilla

Legacy Member
adrianhates zei:
unset($_POST['naam'];
unset($_POST['email'];

=

unset($_POST);

De form gewoon verbergen en uw bevestiging tonen doe ik meestal. Dan automatisch via JS redirecten naar de pagina en een link voorzien dat hetzelfde mogelijk maakt.

Waarom niet gewoon meteen een redirect vanuit php?

adrianhates

Legacy Member
d-zilla zei:
Waarom niet gewoon meteen een redirect vanuit php?

om bijvoorbeeld een succes melding te tonen als in "Wij hebben uw reactie goed ontvangen".
Dat redirecten met JS zou pas na bvb 5-10 seconden gebeuren.

een alternatief is inderdaad direct redirecten naar een page via php met ?success=1 en dan op basis daarvan uw succesmelding tonen. Maar dan vervuilt ge die url onnodig imo :).

Zero Grav

Legacy Member
Zoiets kan ook simpelweg opgevangen worden door een sessie of een individuele succespagina. CodeIgniter heeft daar bijvoorbeeld Flashdata voor, basically sessies die maar één pageload geldig zijn.
Door met een header location te werken hebt ge het voordeel dat uw browser die zelfs niet op de history stack pushed, waardoor het probleem zichzelf oplost.

Also, als ge op uw back knop klikt dan wordt die request normaal automatisch opnieuw ingevuld door de browser (of er wordt toch gevraagd aan de gebruiker of em dat wilt), en dan maakt het ook niet uit dat ge die unset van uw post variabele hebt gedaan.

W0utR

Legacy Member
Wat je heel makkelijk kan doen is gewoon een hidden field meesturen met een random waarde (current tijd in millisec bv), wanneer je dan refresht zal deze waarde anders zijn dan de huidige waarde in het veld, kost je 3 lijntjes code.

dJeez

Legacy Member
Zero Grav zei:
CodeIgniter heeft daar bijvoorbeeld Flashdata voor, basically sessies die maar één pageload geldig zijn.
Even ter aanvulling hierbij : bijna elk php framework (dat ik ken) heeft dergelijke flash messages (Zend & Symfony zijn de gekendste).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan