2 maal returnen in hetzelfde script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

19/08/2019 19:33:07
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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/&parameter=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 -
 
PHP hulp

PHP hulp

29/03/2024 12:41:35
 
- Ariën  -
Beheerder

- Ariën -

19/08/2019 19:54:51
Quote Anchor link
Moet je geen vraagteken (?) gebruiken voor je parameter?
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.
 
Guido  -

Guido -

19/08/2019 21:18:00
Quote Anchor link
Bedankt voor je reactie.

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
 
- Ariën  -
Beheerder

- Ariën -

19/08/2019 21:52:41
Quote Anchor link
Dan heeft WP daar toch wat vervangends voor.. ;-)
https://developer.wordpress.org/reference/functions/wp_redirect/
Gewijzigd op 19/08/2019 21:54:23 door - Ariën -
 
Guido  -

Guido -

19/08/2019 23:26:27
Quote Anchor link
- 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.
 
- Ariën  -
Beheerder

- Ariën -

19/08/2019 23:43:53
Quote Anchor link
Het is een onderdeel van Wordpress voor plugins. Dus waarom zou je het niet kunnen proberen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/08/2019 20:50:59
Quote Anchor link
WP of niet het zou mijn voorkeur niet hebben om een get variabele te gebruiken voor een confirmatie. Ik zou zeggen los het of op met javascript of maak een nieuwe pagina aan waarin een dankjewel getoond wordt.

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
 
- Ariën  -
Beheerder

- Ariën -

21/08/2019 21:14:46
Quote Anchor link
Op grond van veiligheid zou ik geen foutmeldingen in een GET verstoppen, en enkel tonen als de validatie die juist is doorlopen.

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 -
 
Guido  -

Guido -

22/08/2019 12:14:15
Quote Anchor link
In mijn voorbeeld zie je een vaste URL maar in werkelijkheid wordt hij op meerdere websites gebruikt.
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... ?
 
- Ariën  -
Beheerder

- Ariën -

22/08/2019 12:54:10
Quote Anchor link
Persoonlijk zou ik het niet doen.
Het is sowieso ook niet betrouwbaar voor analytische doeleinden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.