Geen melding na versturen formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

accountmanager cybercrime Publiek-Private Samenwer

Wat ga je doen? Een effectieve bestrijding van cybercrime is alleen mogelijk in nauwe samenwerking met publiek-private partners. Om veiligheidsproblemen aan te kunnen pakken worden slimme samenwerkingsverbanden gevormd. Als accountmanager cybercrime PPS bouw je nieuwe netwerken op buiten de eigen organisatie of benut je bestaande netwerken ten behoeve van de vorming van nieuwe publiek-private samenwerkingsverbanden. Het gaat hierbij om een projectmatige insteek waarbij de politie als een betrouwbare partner samenwerkingsverbanden opbouwt en zo uitvoering geeft aan PPS projecten. Als bruggenbouwer breng je mensen met verschillende achtergronden en belangen bij elkaar. Je spreekt met techneuten, beslissers, academici, overheidsfunctionarissen en mensen uit

Bekijk vacature »

Analist passantendata

Bureau RMC is misschien wel het beste retailadviesbureau van Nederland. We zijn een snel groeiende organisatie en helpen gemeenten, retailers en vastgoedpartijen met smart retailing. We formuleren detailhandelsbeleid, bepalen de positionering voor winkelgebieden, doen vestigingsplaatsonderzoek en hebben onze eigen database met passantendata. Met deze CityTraffic-methode verzamelen we 24/7 op een vooruitstrevende, door ons zelf ontwikkelde manier, passantenaantallen van winkelstraten, winkelgebieden, parkeerplaatsen en evenementterreinen. Deze datarapporten we aan klanten zoals Apple, Vodafone, C&A, Hudson’s Bay, Perry, Pearle of gemeentes Den Haag, Alkmaar en Leiden, die met deze informatie betere beslissingen kunnen nemen. Meer informatie vind je op www.citytraffic.nl en www.rmc.nl. Vanwege

Bekijk vacature »

Pagina: « vorige 1 2

Thomas van den Heuvel

Thomas van den Heuvel

13/03/2019 16:59:34
Quote Anchor link
- Ariën - op 13/03/2019 11:17:44:
Het voorkomt ook een berichtenflood.

Nee, dat doet het niet. Bots maken doorgaans niet zulke nette/uitgebreide HTTP-requests. Cookies worden dus naar alle waarschijnlijkheid niet meegestuurd. De link naar je sessie is dus elke POST weg. Dus de teller begint bij elke aanroep opnieuw te lopen. Deze antiflood aanpak biedt dus geen enkele bescherming. Mede omdat je met deze aanpak niet afhankelijk bent van de sessie.

Je zou sessies wel kunnen gebruiken in combinatie met een CRSF-token, dat helpt waarschijnlijk stukken beter. In dit geval kun je namelijk niets POSTen zonder de aanwezigheid van een sessie, in deze opzet kun je dus niet zonder.
Gewijzigd op 13/03/2019 17:01:35 door Thomas van den Heuvel
 
PHP hulp

PHP hulp

26/05/2019 16:20:12
 
- Ariën -
Beheerder

- Ariën -

13/03/2019 17:42:36
Quote Anchor link
Toch wel hoor...
Berichtfloodings hoeven niet alleen van botjes vandaan te komen.
Het is puur bedoeld tegen vervelio's of mensen die vaak blijven klikken.

Tegen bots is het inderdaad niet bedoeld. CSRF zou een stuk netter zijn, maar ook re-Captcha zou niet misstaan. Die pikt de meeste botjes er wel uit aan de hand van hun gedrag.
Gewijzigd op 13/03/2019 17:48:26 door - Ariën -
 
Michael -

Michael -

13/03/2019 17:46:57
Quote Anchor link
Marina Koster op 13/03/2019 16:07:55:
Ik heb het nu werkend, het formulier wordt verstuurd en ik krijg een melding op de plek van het formulier, dus dat is ook goed. Alleen verspringt de site na het verzenden weer naar het begin van de pagina. Is er een manier om te zorgen dat de site op #contact blijft staan na verzenden?

Dat kan door dit aan te passen:
<form method="post" action="/test/index.php">
Naar:
<form method="post" action="/test/index.php#contact">

Maar als je toch op de zelfde pagina blijft, kun je de action ook prima weglaten.

EDIT: Daarnaast zou ik de 'foutmeldingen' opsparen en allemaal weergeven. Niet alleen 'Uw voornaam is niet ingevuld' terwijl de rest ook niet is ingevuld.
Gewijzigd op 13/03/2019 17:49:20 door Michael -
 
Thomas van den Heuvel

Thomas van den Heuvel

13/03/2019 17:51:02
Quote Anchor link
- Ariën - op 13/03/2019 17:42:36:
Het is puur bedoeld tegen vervelio's of mensen die vaak blijven klikken.

En die kunnen geen cookies weggooien? :/
 
- Ariën -
Beheerder

- Ariën -

13/03/2019 18:27:30
Quote Anchor link
Thomas van den Heuvel op 13/03/2019 17:51:02:
- Ariën - op 13/03/2019 17:42:36:
Het is puur bedoeld tegen vervelio's of mensen die vaak blijven klikken.

En die kunnen geen cookies weggooien? :/

Die kunnen dat ook wel als ze willen. Onder normale omstandigheden werkt het prima.
Misschien kan ik het eens 'forken' (kopiëren en aanpassen) naar iets wat van deze tijd is.
Gewijzigd op 13/03/2019 18:37:41 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

13/03/2019 19:14:07
Quote Anchor link
Laat ik het anders formuleren.

De huidige antispam beveiliging is gebaseerd op (een) normale operatie (van browsers), maar spam volgt dit uitgangspunt zelden tot nooit. Daarom heeft deze oplossing op voorhand al de verkeerde insteek en is daarom gewoon ongeschikt als beveiliging.
 
- Ariën -
Beheerder

- Ariën -

13/03/2019 19:34:53
Quote Anchor link
Dat weet ik! Maar het werkt wel om per ongeluk gebruik in normale situaties tegen te gaan van mensen die te vaak klikken. CSRF is, zoals ik al bevestigde, een beter idee.
het script is ook gedateerd, en daar moet verandering in komen, vind ik.
Gewijzigd op 13/03/2019 19:35:17 door - Ariën -
 
Marina Koster

Marina Koster

14/03/2019 08:48:45
Quote Anchor link
Michael - op 13/03/2019 17:46:57:
EDIT: Daarnaast zou ik de 'foutmeldingen' opsparen en allemaal weergeven. Niet alleen 'Uw voornaam is niet ingevuld' terwijl de rest ook niet is ingevuld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
    // naam controle
    if (empty($_POST['voornaam']))
        $voornaam_fout = 1;
    // achternaam controle
    if (empty($_POST['achternaam']))
        $achternaam_fout = 1;
    // bedrijfsnaam controle
    if (empty($_POST['bedrijfsnaam']))
        $bedrijfsnaam_fout = 1;
    // e-mail controle
    if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
            $email_fout = 1;
    // antiflood controle
    if (!empty($_SESSION['antiflood']))
    {

        $seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
        $tijd = time() - $_SESSION['antiflood'];
        if($tijd < $seconde)
            $antiflood = 1;
    }
}


// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['voornaam']) || !empty($voornaam_fout) || empty($_POST['achternaam']) || !empty($achternaam_fout) || empty($_POST['bedrijfsnaam']) || !empty($bedrijfsnaam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{

    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {

        if (!empty($voornaam_fout))
            echo '<p>Uw voornaam is niet ingevuld.</p>';
        elseif (!empty($achternaam_fout))
            echo '<p>Uw achternaam is niet juist.</p>';
        elseif (!empty($bedrijfsnaam_fout))
            echo '<p>Uw bedrijfsnaam is niet juist.</p>';
        elseif (!empty($email_fout))
            echo '<p>Uw e-mailadres is niet juist.</p>';
        elseif (!empty($antiflood))
            echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
        else
            echo '<p>U bent uw naam, bedrijfsnaam, e-mailadres of bericht vergeten in te vullen.</p>';
    }

?>


Hoe zou ik dat kunnen oplossen? Heeft dat met 'elseif' te maken?

Toevoeging op 14/03/2019 08:50:39:

- Ariën - op 13/03/2019 16:22:08:
Is een bericht dat 'het versturen gelukt is' niet veel praktischer. Nu kom ik op de index uit, wat verwarrend is.


Ik heb het nu zo neergezet dat je na verzenden op het kopje contact blijft staan. Maar hoe zou jij het oplossen? Als een popup geen slimme zet is, wat zou ik dan kunnen doen?
 
- Ariën -
Beheerder

- Ariën -

14/03/2019 08:59:12
Quote Anchor link
Beste oplossing is om het formulier na afloop niet te tonen en een melding te tonen.

Het opsparen kan door de elseif'jes te vervangen door ifjes. En dan elke foutmelding in een array laten zetten. En deze na versturen controlen met count() op het aantal: Is dit 0, dan is alles prima. Is het meer dan 0, dan doorloop je de foutmeldingen met foreach.
 

Pagina: « vorige 1 2



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.