Versio

registreer script laat registratie toe met lege velden

Overzicht Reageren

Thomas de vries

thomas de vries

08/02/2012 20:10:56
Quote Anchor link
Hallo mede leden,
Ik heb een probleem en ik zie zo 1,2,3 niet waar het aan kan liggen.

Ik ben bezig met een registreer script te maken met een aantal controles erin
maar als ik geen velden in vul dan zegt het script alsnog je bent geregistreerd.

Dit is de code die ik nu heb.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST['register']))
    {

        if(empty($_POST['username']) || empty($_POST['pass1']) || empty($_POST['pass2']) || empty($_POST['email'])) //Controle op lege velden
        {
            $melding = "Je bent vergeten om een veld in te vullen";
        }

        if(!$email = checkmail($_POST['email']))//Controle op valid email
        {
            $melding = "Je email adres is niet geldig probeer opnieuw";
        }

        if($_POST['pass1'] !== $_POST['pass2']) //Controle of wachtwoorden overeen komen met elkaar
        {
            $melding = "Je wachtwoorden komen niet overeen probeer opnieuw!";
        }

        else
        {
            //Nog een laaste controle om te kijken of de user naam en ipadress en email adress al bestaan.
            $sql_check = "SELECT login,email,IP,maxaccounts FROM users WHERE login = '".$mysqli->real_escape_string($_POST['username'])."'";
            if(!$res_check = $mysqli->query($sql_check))
            {

                $dbfout = "Er ging iets mis met de connectie naar de database toe probeer opnieuw of neem contact met de beheerder op.";
            }

            else
            {
                $check = $res_check->fetch_object();
                if($_POST['username'] == $check->login)
                {

                    $melding = "Deze gebruikersnaam bestaat al probeer een andere!";
                }

                if($_POST['email'] == $check->email)
                {

                    $melding = "Dit email adres is al in gebruik probeer een andere!";
                }

                //Kijken of er in de tabel registered ip het ip adress nog een keer voor komt.
                $sql_check2 = "SELECT ip FROM registered_ip WHERE ip = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'";
                if(!$res_check2 = $mysqli->query($sql_check2))
                {

                    $dbfout = "Er ging iets mis met de connectie naar de database toe probeer opnieuw of neem contact met de beheerder op.";
                }

                else
                {
                    $check2 = $res_check2->fetch_object();
                    if($_SERVER['REMOTE_ADDR'] == $check2->ip)
                    {

                        $melding = "Sorry maar je mag niet meer dan met 1 ipadress spelen!";
                    }

                    else
                    {
                        $melding = "je bent geregristreerd.";
                    }
                }
            }
        }  
    }
}

?>


De velden worden wel meegenomen dit gecontroleerd met var_dump($_POST).
Wie kan mij in de goede richting sturen en ook tips hoe het beter kan zijn welkom.

Met vriendelijke groet,

Thomas de Vries.
Gewijzigd op 08/02/2012 20:12:24 door Thomas de vries
 
PHP hulp

PHP hulp

17/05/2012 13:12:44
Gesponsorde koppelingen:
 
Bas IJzelendoorn
Moderator

Bas IJzelendoorn

08/02/2012 20:15:42
Quote Anchor link
Maak is van regel 10 en 14

elseif() in plaats van if()
 
Thomas de vries

thomas de vries

08/02/2012 20:18:23
Quote Anchor link
Hallo Bas bedankt voor uw snelle reactie en ja dat zag ik dus niet meer en ook niet aan gedacht om eerlijk te zijn.
Dat was inderdaad de oplossing.
 
Bas IJzelendoorn
Moderator

Bas IJzelendoorn

08/02/2012 21:32:57
Quote Anchor link
Mooi :)

let erop dat je dit ook op regel 33 en 39 doet ;) anders kom je hetzelfde probleem later nog eens tegen :P
 
Obelix en Idefix

Obelix en Idefix

08/02/2012 21:51:23
Quote Anchor link
Afgaande op Noppes: empty is geen goede manier om te controleren!
 
Thomas de vries

thomas de vries

08/02/2012 22:15:47
Quote Anchor link
@bas ja daar was ik al achtergekomen.
@obelix en idefix
waarom is een empty geen goede controle? wat kan er mee gedaan worden
en hoe kan het bijvoorbeeld wel.
Ik zou het op prijs stellen want dan leer ik het gelijk goed.
 
- SanThe -

- SanThe -

08/02/2012 22:20:00
Quote Anchor link
ALs je met empty werkt dan kan je geen 00000 (nullen) invullen bijvoorbeeld. Kijk ook eens naar isset().
 
Thomas de vries

thomas de vries

08/02/2012 22:46:01
Quote Anchor link
@santhe
Aah oke op die manier maar om als een user zich registreerd dan gaat een user neem ik niet aan een password van nullen invullen(hoop ik dan).
Maar om inderdaar het zekere voor het onzekere te nemen zal ik dit toch gaan vervangen.

Zal dit wel een goede afhandeling zijn?
if(isset($_POST['username']) == "" AND $_POST['pass1']) enz
 
- SanThe -

- SanThe -

08/02/2012 23:19:54
Quote Anchor link
Thomas de vries op 08/02/2012 22:46:01:
Zal dit wel een goede afhandeling zijn?
if(isset($_POST['username']) == "" AND $_POST['pass1']) enz


Nee. Een isset() geeft een true of false terug en dat is natuurlijk niet te vergelijken met "". En AND $_POST['pass1'] daar veronderstel je eigenlijk dat $_POST['pass1'] true of false is.
 



Overzicht Reageren