Aanmeldformulier: niet alle velden zijn ingevuld

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jack de boer

Jack de boer

28/10/2015 16:54:43
Quote Anchor link
Hallo,

Ik ben sinds gister begonnen met het leren van PHP en loop nu al tegen een probleem aan, die ik nog niet zelf kan oplossen. Het probleem is dat mijn registratieformulier steeds de melding geeft dat niet alle velden ingevuld zijn, al zijn ze dit wel.

Ik heb een half uur naar mijn code zitten staren, maar kon niet vinden waar de fout zat. Ik denk dan ook dat het iets kleins is, wat nogal moeilijk vindbaar is.

De registratie gebeurt volledig op mijn home pagina (index.php).

Graag hoor ik jullie advies.

Alvast bedankt.

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
include("inc/header.inc.php");
?>

<?php
$reg
     = @$_POST['reg'];
// declaring variables to prevent errors
$fn      = ""; //voornaam
$ln      = ""; //achternaam
$un      = ""; //gebruikersnaam
$em      = ""; //Email
$em2     = ""; //Email 2
$pswd    = ""; //Wachtwoord
$pswd2   = ""; //Wachtwoord 2
$d       = ""; // Aanmeld datum
$u_check = ""; //controleren of gebruikersnaam bestaat

//registratie formulier

$fn    = strip_tags(@$POST['fname']);
$ln    = strip_tags(@$POST['lname']);
$un    = strip_tags(@$POST['username']);
$em    = strip_tags(@$POST['email']);
$em2   = strip_tags(@$POST['email2']);
$pswd  = strip_tags(@$POST['password']);
$pswd2 = strip_tags(@$POST['password2']);
$d     = date("d-m-Y");

if ($reg) {
    if ($em == $em2) {
        // controleren of gebruiker al bestaat
        $u_check = mysql_query("SELECT username FROM users WHERE username='$un'");
        // tel het aantal regels waar gebruikersnaam = $un
        $check   = mysql_num_rows($u_check);
        if ($check == 0) {
            // controleer of alle velden ingevuld zijn
            if ($fn && $ln && $un && $em && $em2 && $pswd && $pswd2) {
                // controleer of de wachtwoorden overeenkomen
                if ($pswd == $pswd2) {
                    // controleer of de maximum lengte van gebruikersnaam/voornaam/achternaam niet meer dan 25 tekens bevat
                    if (strlen($un) > 25 || strlen($fn) > 25 || strlen($ln) > 25) {
                        echo "Het maximale limiet voor de gebruikersnaam/voornaam/achternaam is 25 tekens";
                    }
else {
                        //Controleer of de maximale lengte van het wachtwoord niet meer dan 30 tekens is en niet minder dan 5 karakters.
                        if (strlen($pswd) > 30 || strlen($pswd) < 5) {
                            echo "Uw wachtwoord moet tussen de 5 en 30 tekens langs zijn!";
                        }
else {
                            //encrypt wachtwoord en wachtwoord 2 voordat ze naar de database gestuurd worden
                            $salt   = "?ZdAJsr_3bppTE-pNYTq^XD";
                            $pepper = "UqwJnAMrZB$_=54GGGhHDpUiUhlNbaowWerdVBX048eZDH!@&m#&*#CZ6B&6";
                            
                            $pswd  = sha1(md5(sha1($salt . $pswd . $pepper)));
                            $pswd2 = sha1(md5(sha1($salt . $pswd2 . $pepper)));
                            $query = mysql_query("INSERT INTO users VALUES('','$un','$fn','$ln','$em','$pswd','$d','0')");
                            echo "<h2>Welkom op Socialia</h2>. Login om te beginnen ...";
                        }
                    }
                }
else {
                    echo "Uw wachtwoorden komen niet overeen";
                }
            }
else {
                echo "Niet alle velden zijn ingevuld";
            }
        }
else {
            echo "Gebruikersnaam wordt al gebruikt...";
        }
    }
else {
        echo "Uw emailadressen komen niet overeen!";
    }
}

?>


<div id="join">
    <h2>Join ... vandaag nog!</h2>
</div>
<div id="signup">
    <h2>Meld je aan!</h2>
    <form action="#" method="POST">
        <table>
        <tr>
            <td><input type="text" name="fname" size="25" placeholder="Voornaam" /></td>
        </tr>
        <tr>
            <td><input type="text" name="lname" size="25" placeholder="Achternaam" /></td>
        </tr>
        <tr>
            <td><input type="text" name="username " size="25" placeholder="Gebruikersnaam" /></td>
        </tr>
        <tr>
            <td><input type="text" name="email" size="25" placeholder="Emailadres" /></td>
        </tr>
        <tr>
            <td><input type="text" name="email2" size="25" placeholder="Emailadres (controle)" /></td>
        </tr>
        <tr>
            <td><input type="password" name="password" size="25" placeholder="Wachtwoord" /></td>
        </tr>
        <tr>
            <td><input type="password" name="password2" size="25" placeholder="Wachtwoord (controle)" /></td>
        </tr>
        <tr>
            <td><input type="submit" name="reg" value="Aanmelden" /></td>
        </tr>
        </table>
    </form>
</div>
Gewijzigd op 28/10/2015 16:57:34 door Jack de boer
 
PHP hulp

PHP hulp

28/03/2024 15:12:18
 
- Ariën  -
Beheerder

- Ariën -

28/10/2015 16:58:47
Quote Anchor link
Als eerste: Haal alle @'jes weg uit je script. Je wilt bij de uitvoer van het script zeker zijn dat je geen foutmeldingen in de doofpot stopt.

Verder mis je de underscore bij de POST-variabelen, dus wordt het:
$_POST['fname'].

Verder wou ik je even attenderen van de mysql-functies terzijde gaan in de eerst volgende PHP-versie.
Dus stap over op MySQLi of PDO.
 
Jack de boer

Jack de boer

28/10/2015 17:03:42
Quote Anchor link
- Ariën - op 28/10/2015 16:58:47:
Als eerste: Haal alle @'jes weg uit je script. Je wilt bij de uitvoer van het script zeker zijn dat je geen foutmeldingen in de doofpot stopt.

Verder mis je de underscore bij de POST-variabelen, dus wordt het:
$_POST['fname'].

Verder wou ik je even attenderen van de mysql-functies terzijde gaan in de eerst volgende PHP-versie.
Dus stap over op MySQLi of PDO.


Dank voor je reactie.

Ik heb de @tjes verwijderd en de underscores toegevoegd. Dat ik dat niet gezien had is echt gewoon dom, maar het heeft het probleem helaas niet verholpen.

Dat MySQL er binnenkort uit gaat, daar ben ik van op de hoogte, dit ga ik dan ook zo snel mogelijk omzetten naar MySQLi.
 
Obelix Idefix

Obelix Idefix

28/10/2015 17:14:09
Quote Anchor link
Jack de boer op 28/10/2015 16:54:43:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
//encrypt wachtwoord en wachtwoord 2 voordat ze naar de database gestuurd worden
$pswd  = sha1(md5(sha1($salt . $pswd . $pepper)));
$pswd2 = sha1(md5(sha1($salt . $pswd2 . $pepper)));
?>

Vraag 1: waarom sla je 2x het wachtwoord op?
Volgens mij is deze wijze van een wachtwoord beveiligen (sha1, md5 en nog een keer sha1) niet veilig (meer). Kijk bv. naar bcrypt.
 
Thomas van den Heuvel

Thomas van den Heuvel

28/10/2015 18:01:07
Quote Anchor link
name="username "

:)
 
Jack de boer

Jack de boer

28/10/2015 19:05:10
Quote Anchor link
Obelix en Idefix op 28/10/2015 17:14:09:
Jack de boer op 28/10/2015 16:54:43:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
//encrypt wachtwoord en wachtwoord 2 voordat ze naar de database gestuurd worden
$pswd  = sha1(md5(sha1($salt . $pswd . $pepper)));
$pswd2 = sha1(md5(sha1($salt . $pswd2 . $pepper)));
?>

Vraag 1: waarom sla je 2x het wachtwoord op?
Volgens mij is deze wijze van een wachtwoord beveiligen (sha1, md5 en nog een keer sha1) niet veilig (meer). Kijk bv. naar bcrypt.


Dat is inderdaad raar om te doen, zal het tweede wachtwoord weghalen, doe hoeft helemaal niet opgeslagen te worden. Zal kijken naar alternatieve beveiliging.



Toevoeging op 28/10/2015 19:06:11:

Thomas van den Heuvel op 28/10/2015 18:01:07:
name="username "

:)


Dit is echt heel erg. Dat was het hele probleem dus en daar heb ik gewoon overheen gekeken.
Gewijzigd op 28/10/2015 19:10:27 door Jack de boer
 



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.