Validatie mail blijft zeggen email adress is gevalideerd.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

14/02/2011 19:59:16
Quote Anchor link
Goeden avond.

Ik zit met een probleempje en dat is als volgt
Ik ben bezig met een validatie script te maken.
Maar nu loop ik tegen het volgende probleem aan.

Als pietje een link krijgt met
http://www.blaat.com/activeren/pietje@hotmail.com/1

Dan zegt ie van email adres is gevalideerd.
Dit is goed omdat nummer 1 een uniek id is vanuit de db,
en wat hoort bij dat email adres.

Maar als ik nummer 1 verander naar 4 blijft mijn script aangeven
van email adres is geverifieerd.
Hoe kan ik er voor zorgen dat als het id niet bij het email adres hoort
dat ik dan de melding krijg van dit id hoort niet bij dit email adres.

Dit 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
37
38
39
40
41
<?php
//activeren van email//
if($_GET['p'] == "activeren")
{

    $email = $mysqli->real_escape_string($_GET['a']);
    $id = $mysqli->real_escape_string(is_numeric($_GET['r']));
    
    $sql = "SELECT userid,email,emailvalid FROM users WHERE email = '".$email."' AND userid = '".$id."'";
    if(!$result = $mysqli->query($sql))
    {

        echo "Er ging iets mis met de database connectie";    
    }

    else
    {
        $row = $result->fetch_assoc();
        if($row['email'] !== $email AND $row['userid'] !== $id)
        {

            echo "Dit email adress met id wordt niet herkend";    
        }

        else
        {
            if($row['emailvalid'] == 0)
            {

                echo "Dit email adress is al geverifeerd";
            }

            else
            {
                $sql = "UPDATE users SET emailvalid = '0' WHERE userid = '".$id."' AND email = '".$email."'";
                if(!$result = $mysqli->query($sql))
                {

                    echo "Er ging iets mis met de connectie naar de database";    
                }

                else
                {
                    echo "Email adress is met succes geveriffeerd";    
                }
            }
        }
    }
}

?>


Alvast bedankt.

Met vriendelijke groet,

Thomas de Vries.
 
PHP hulp

PHP hulp

09/01/2025 09:32:22
 
- SanThe -

- SanThe -

14/02/2011 20:18:29
Quote Anchor link
Hier:
$id = $mysqli->real_escape_string(is_numeric($_GET['r']));

Staat dus dit:
$id = $mysqli->real_escape_string(true);
Of dit:
$id = $mysqli->real_escape_string(false);

En dat zal dus resulteren bij true in een 1.
 
Thomas de vries

thomas de vries

14/02/2011 20:22:42
Quote Anchor link
Ik heb id in een echo gestopt en blijft idd altijd een 1 aangeven.
Hoe kan ik het dan controleren dat als bijvoorbeeld het geen 1 is dat ie een foutmelding geeft.

Is dat toevallig met een if statement?
 
- SanThe -

- SanThe -

14/02/2011 20:24:05
Quote Anchor link
Maak er gewoon dit van:

$id = $mysqli->real_escape_string($_GET['r']);
 
Thomas de vries

thomas de vries

14/02/2011 20:25:19
Quote Anchor link
Probleem al opgelost
Door die is_numeric gewoon weg te laten.

Edit je was sneller dan mij
Gewijzigd op 14/02/2011 20:26:08 door thomas de vries
 
B a s
Beheerder

B a s

14/02/2011 20:29:38
Quote Anchor link
Mooi zo Thomas. Voortaan kun je wel gewoon in je eerste topic vragen blijven stellen als je nog een probleem tegenkomt die over dezelfde kwestie gaat.
 
Thomas de vries

thomas de vries

14/02/2011 20:43:42
Quote Anchor link
Bas Kreleger op 14/02/2011 20:29:38:
Mooi zo Thomas. Voortaan kun je wel gewoon in je eerste topic vragen blijven stellen als je nog een probleem tegenkomt die over dezelfde kwestie gaat.


Dat zal ik dan in vervolg 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.