FILTER_VALIDATE_EMAIL op meerde email adressen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Piet Jansen

Piet Jansen

23/05/2013 17:16:12
Quote Anchor link
Beste mensen,

Ik had een vraagje. Ik heb een formulier met 3 invulvelden. Minstens 1 van de invulvelden is verplicht om in te vullen, de rest niet. De invulvelden zijn ervoor om e-mailadressen in toe voeren. Hierdoor gebruik ik FILTER_VALIDATE_EMAIL om er zeker van de te zijn dat de ingevulde gegevens wel degelijk e-mailadressen zijn.

Het probleem is dus dat als bijv. 1 van de 3 of 2 van de 3 velden alleen zijn ingevuld, de FILTER_VALIDATE_FUNCTION de lege velden als een invalid e-mailadressen ziet. Hoe zorg ik ervoor dat de FILTER_VALIDATE_EMAIL functie lege velden negeert?

Hier is mijn code:

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
<?php

    // includes
    include ("config.php");

    // input verification
    $inv1 = strip_tags($_POST['inv1']);
    $inv2 = strip_tags($_POST['inv2']);
    $inv3 = strip_tags($_POST['inv3']);
    
    $doubleCheck = mysql_query("SELECT email FROM beta_users WHERE email = '". $inv1 ."' OR  email = '". $inv2 ."' OR email = '". $inv3 ."'");
    
    if (empty($_POST['inv1']) && empty($_POST['inv2']) && empty($_POST['inv3'])) {
        echo 'Fill in at least one email adress to invite';
        //header('Location: http://www.google.com');
    }
    
    // check if the provided email adress is a real and valid email adress
    elseif (!filter_var($inv1, FILTER_VALIDATE_EMAIL)) {
        echo 'You have provided an invalid email adress';
    }

    
    elseif (!filter_var($inv2, FILTER_VALIDATE_EMAIL)) {
        echo 'You have provided an invalid email adress';
    }

    
    elseif (!filter_var($inv3, FILTER_VALIDATE_EMAIL)) {
        echo 'You have provided an invalid email adress';
    }

    
    // check if the invited user is already registered
    elseif (mysql_num_rows($doubleCheck) > 0) {
        echo 'One or more of the email adresses you have provided is/are already registered';
        //header('Location: http://www.google.com');
    }
?>


Mvg,
Piet
 
PHP hulp

PHP hulp

29/03/2024 10:14:06
 
Erwin H

Erwin H

23/05/2013 17:23:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
elseif (!filter_var($inv2, FILTER_VALIDATE_EMAIL) && trim($inv2) != '')
?>


Toevoeging op 23/05/2013 17:24:36:

Wel vreemd overigens dat je elke keer een check uitvoert NADAT je iets al gebruikt hebt.... Niet erg handig. Als er nu een hacker bezig is dan is je database al leeg voor je uberhaupt op sql injectie controleert.
 
Marvin H

Marvin H

23/05/2013 17:34:35
Quote Anchor link
@Piet Offtopic: 'Email Adress'... het moet zijn met dubbel dd :) 'Address'
 
Piet Jansen

Piet Jansen

23/05/2013 17:40:12
Quote Anchor link
Dankjewel Erwin en Marvin erg bedankt voor de waarschuwing, maar gelukkig is het gewoon een persoonlijk opdrachtje dan maakt het niet zoveel uit :D.
 
Erwin H

Erwin H

23/05/2013 17:49:11
Quote Anchor link
Piet Jansen op 23/05/2013 17:40:12:
maar gelukkig is het gewoon een persoonlijk opdrachtje dan maakt het niet zoveel uit :D.

Dat moet je helemaal zelf weten, maar bedenk je wel dat als je iets verkeerd aanleert, je het altijd verkeerd gaat doen.
 



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.