2 maal returnen in hetzelfde script
Ik heb een contact formulier en als deze succesvol is verstuurd toon ik een dank je notificatie, door gebruik van een GET parameter:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
// als verzenden lukt stuur door en voeg parameter toe
if ($sent == true) {
return '<script type="text/javascript">window.location="mijn-domein/contact-pagina/¶meter=success"</script>';
}
// toon dank je notificatie op pagina
if ( isset( $_GET['parameter'] ) ) {
if ( $_GET['parameter'] == 'success' ) {
return 'Bedankt voor je bericht';
}
}
if ($sent == true) {
return '<script type="text/javascript">window.location="mijn-domein/contact-pagina/¶meter=success"</script>';
}
// toon dank je notificatie op pagina
if ( isset( $_GET['parameter'] ) ) {
if ( $_GET['parameter'] == 'success' ) {
return 'Bedankt voor je bericht';
}
}
Dit werkt, alleen vraag ik me af of dit juist gebruik is. Omdat, voor zover ik weet, het script zou stoppen nadat (de eerste) return klaar is. In dit geval direct na het doorsturen. Of komt dit doordat een nieuwe pagina geladen wordt en het script dan dus ook opnieuw geladen wordt?
Guido
Gewijzigd op 19/08/2019 19:36:00 door Guido -
Normaal begin je met een ? om de parameters van je URL en path te scheiden, en daarna gebruik je steeds een ampersand (&) per argument en waarde. En verder is return niet bepaalde een vervanger voor echo/print.
Ikzelf raad aan om door te sturen met een location-header in PHP, en hierbij zorgen voor een goede opbouw van je script, waarbij je de output als laatste laadt.
Vraagteken klopt idd, foutje in mijn voorbeeld.
Header location is geen optie, want ik gebruik het script binnen WordPress en de headers zijn dan al verzonden.
Guido
https://developer.wordpress.org/reference/functions/wp_redirect/
Gewijzigd op 19/08/2019 21:54:23 door - Ariën -
- Ariën - op 19/08/2019 21:52:41:
Dan heeft WP daar toch wat vervangends voor.. ;-)
Maakt ook gebruik van de header Location.. zie de code als je het uitklapt.
Het is een onderdeel van Wordpress voor plugins. Dus waarom zou je het niet kunnen proberen?
Get variabelen zijn meer bedoeld om bijvoorbeeld een zoekopdracht of filters op de content toe te passen of de volgorde van de content aan te tonen. En ook om de huidige pagina te bepalen bij pagination.
Maar het is misschien hoe ik er over denk.. don't shoot me please :p
Pas kwam ik nog een phishingsite tegen die linkte naar een site zoals:
http://www.echte-website.nl/login?loginstatus=error
Dan schep je natuurlijk al een hoop vertrouwen als iemand op www.de-foute-website.nl/login zijn wachtwoord invult, en daarna doorgestuurd wordt naar een fouten-pagina van de goede website. Ze bekijken de link en zien dan dat ze op de juiste site zitten, niet wetend dat ze daarvoor op een andere zitten. Iemand die goed oplet zou het meteen opvallen, maar als ze halverwege opletten, dan zijn ze de sjaak.
Gewijzigd op 21/08/2019 21:15:29 door - Ariën -
Ik wil voorkomen dat het formulier middels verversen vd pagina steeds opnieuw ingediend kan worden, vandaar de pagina-redirect. En dus dmv GET toon ik het "dank u" bericht (meer doe ik niet met de GET overigens).
De URL met parameter kan ook weer gebruikt worden binnen analytics (hoe vaak formulier ingediend is).
Kortom, dit leek mij een goede combi. Maar blijkt dus toch niet ideaal te zijn... ?
Het is sowieso ook niet betrouwbaar voor analytische doeleinden.