Registeren gaat niet volgens plan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tolga

Tolga

05/06/2009 13:30:00
Quote Anchor link
Beste mensen,

Ik ben bezig met een nieuwe website, maar dan voor mezelf.
Alleen heb ik een probleem met mijn script.
Wanneer er mensen willen aanmelden moeten ze aan alle
eisen voldoen zoals: alle velden moeten ingevuld zijn, wachtwoord
moet gelijk zijn aan de andere, etc ,etc. Maar het probleem bij mij is dat als je gaat aanmelden en
je vult alleen de gebruikersnaam in en de rest van de velden
niet, dan dat er alsnog een gebruiker aangemaakt wordt in de db...

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<html>
    <head>
    <title>Registeren</title>
    <style type="TEXT/CSS">
        
        #head
        {
            background-image: url(logo_bg.jpg);
        }
        #login_menu
        {
            background-image: url(logo_bg.jpg);
        }
        #nieuws
        {
            background-color: #EEEEEE;
        }
        #linker_menu
        {
            background-color: #EEEEEE;
            
        }
        
        
    </style>
    </head>
    <body bgcolor="black">
        <center>
        <table border="1" style="border-color: white;">
        <tr><td><div id="head" style="overflow:auto;width:600px;height:135px;padding:10px;border:0px solid #eee">
        </div></td><td><div id="login_menu" style="width: 150px; height: 135px;">
        <table>
        <form method="post" action="">
        <tr><td>
        <font color="white">Gebruikersnaam:</td></tr><tr><td></font>
        <center>
        <input type="text" name="logGebruiker"></td></tr><tr><td>
        </center>
        <font color="white">Wachtwoord:</td></tr><tr><td></font>
        <center>
        <input type="password" name="logWachtwoord"></td></tr><tr><td align="right">
        <input type="submit" name="registeren" value="registeren">
        <input type="submit" name="login" value="login">
        </center>
        </td></tr>
        </form>
        </table>
        </div>
        <tr><td><div id="nieuws" style="overflow:auto;width:600px;height:480px;padding:10px;border:0px solid #eee">
        <?php
                    
            // Verbinding maken met de localhost.
            $con = mysql_connect("localhost", "root", "");
            If (!con)
            {
   // Als er geen verbinding gemaakt kan worden, geef dan een foutmelding.
                die('Communicatie foutmelding: ' . mysql_error());
            }

            else
            {   // Verbinding succes!
                mysql_select_db("mijn_db", $con);
                
            }

            
        ?>

        <?php
            
            $user
= $_POST['regGebruiker'];
            $password = $_POST['regWachtwoord'];
            $pass = md5($password);
            $passC = $_POST['regWachtwoordControl'];
            $passControl = md5($passC);
            
            // de register menu wordt zichbaar gemaakt met daarin algemene voorwaardes van de gebruiks regels.
            if(isset($_POST['registeren']) || isset($_POST['terug'])){
                $regPlug = <<<message
                <form method="POST" action="">
                    <table>
                    <tr><td colspan="6">
                    <table border="1" bgcolor="white">
                    <center>
                    <tr><td>
                    <div id="AGR" style="width:560px;height:220px;padding:10px;border:1px solid #eee">
                    </center>
                    <ul>
                    Algemene gebruiks regels:<br><br>
                    
                    #1 = Je mag geen scheldwoorden gebruiken, op wat voor een manier dan ook. <br>
                    #2 = Laat geen spam mailtjes achter, en val mensen niet lastig.<br>
                    #3 = Alles wat vies, eng of tot sexuele aandoeningen leidt is verboden. <br>
                    #4 = Laat leesbare berichten achter alleen in het Nederlands of in het Engels. <br>
                    #5 = Wees vriendelijk tegen iedereen, vooral als het om de admin gaat. <br>
                    #6 = Je mag geen illegale overleg uitvoeren over roms, "warez", CD-Keys,<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO spellen, piraterij en alle andere onwettige activiteiten. <br>
                    #7 = Laat geen dubbele posten achter.
                    
                    </ul>
                    </center>
                    </td></tr>
                    </table><br>
                    <tr><td>
                    <font color="red">*</font> Gebruikersnaam</td><td>:</td><td>
                    <input type="text" name="regGebruiker">
                    </td></tr><tr><td>
                    <font color="red">*</font> Wachtwoord</td><td>:</td><td>
                    <input type="password" name="regWachtwoord">
                    </td><td>
                    <font color="red">*</font> Herhaal wachtwoord</td><td>:</td><td>
                    <input type="password" name="regWachtwoordControl">
                    </td></tr><tr><td>
                    <input type="submit" name="regKnop" value="registeren">
                    </td></tr>
                    </table>
                </form>
message
;
                echo $regPlug;
            }

            // Als er op de register knop geklikt wordt,
            if(isset($_POST['regKnop'])){
                // controlleer dan of de velden leeg staan.
                if (empty($pass) || empty($passControl) || empty($user)){
                    $errRegMessage = <<<errRegMessage
                    Als je wilt aanmelden, dan ben je verplicht om alle velden te gaan invullen.
                    <br>
                    <form method="POST" action="">
                    <input type="submit" name="terug" value="terug">
                    </form>
errRegMessage
;
                    echo $errRegMessage;
                }

                // Hier wordt de wachtwoord gecontrolleerd.    
                elseif ($pass != $passControl){
                    $errRegMessage = <<<errRegMessage
                    De ingevoerde wachtwoorden komen niet met elkaar overheen. Typ het a.u.b. opnieuw.
                    <br><br>
                    <form method="POST" action="">
                    <input type="submit" name="terug" value="terug">
                    </form>
errRegMessage
;
                    echo $errRegMessage;
                }
else{
                    // De variabel $user wordt verbonden met de Username dat in de database zit.
                    $result = mysql_query("select * from user_registery where Username = '". $user . "'; ");
                    
                    // Controleren of de gebruikernaam al bestaat, zo ja, dan krijg je een melding dat de gebruiker al bestaat...
                    if (mysql_num_rows($result) == 1){
                        echo '<font color="red">' . "De gebruikersnaam bestaat al." . '</font>' . "<br>";
                    }

                    else
                    {
                        // De gebruikernaam en de wachtwoord wordt in de database genoteerd en ook krijgt de persoon een notificatie van zijn aangemaakte gebruikernaam.
                        $result = mysql_query("insert into user_registery (Username, Password) values ('". $user . " ',' ". $pass ."');");
                        echo '<font color="green">' . "Gebruikersnaam aangemaakt!" . '</font>' . "<br>";
                    }
                }

            
            // Mysql afsluiten.
            mysql_close($con);
            }

        
        ?>

        </div></td><td><div id="linker_menu" style="height:480px;padding:10px;border:0px solid #eee">
            
        </div></td></tr>
        </table>
        </center>
    </body>
</html>


Kan iemand mij hiermee a.u.b. helpen?

gr,

Tolga
Gewijzigd op 01/01/1970 01:00:00 door Tolga
 
PHP hulp

PHP hulp

25/04/2024 07:06:09
 
Mr.Ark

Mr.Ark

05/06/2009 13:36:00
Quote Anchor link
1. error_reporting(E_ALL); bovenaan je pagina.

2. Gebruiker mysql_real_escape_string voor je query's.

3. Je code is niet echt overzichtelijk en zal je niet snel een fout kunnen vinden.

4. Een veld kan je op de volgende manier controleren;

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

/* Veld controle. */
if(isset($_POST['blaat']) && !empty($_POST['blaat']))
{

      /* Doet iets, Veld is niet leeg. */
}
else
{
      /* Veld is niet ingevuld. */
      echo 'Vul A.U.B blaat in.';
}


?>


5. Waar is je fouten afhandeling van query's?

Mijn conclusie is dat je net zo goed overnieuw kan beginnen met een script te schrijven, Want dit is 3 maal niets. (No offense).

/* Edit */

Je zou naar een voorbeeld kunnen kijken:

=> http://phphulp.vindme.nl/
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Tolga

Tolga

05/06/2009 13:46:00
Quote Anchor link
@ark

Ik ben pas ermee bezig geweest en ik wil het later pas goed beveiligen
nadat alles volgens plan werkt. En hier heb je de foutmelding.

Notice: Use of undefined constant con - assumed 'con' in C:\Users\Administrator\Desktop\Website\Index.php on line 57

Notice: Undefined index: regGebruiker in C:\Users\Administrator\Desktop\Website\Index.php on line 70

Notice: Undefined index: regWachtwoord in C:\Users\Administrator\Desktop\Website\Index.php on line 71

Notice: Undefined index: regWachtwoordControl in C:\Users\Administrator\Desktop\Website\Index.php on line 73

...
 
Tolga

Tolga

05/06/2009 14:04:00
Quote Anchor link
Probleem opgelost!
Gewijzigd op 01/01/1970 01:00:00 door Tolga
 
Afra ca

Afra ca

05/06/2009 15:01:00
Quote Anchor link
Ben het met Ark eens dat je code onlogisch is geschreven, dit is totaal andere php dan mij geleerd is.

@ark punt 4: empty controleert ook op isset, dus is je isset niet nodig

Ik raad je sowiezo aan alle punten van Ark er even heel goed in te verwerken. Je database is zo namelijk gevoelig voor SQL injection.

En natuurlijk niet onnodig vars kopieren zoals je dat in het begin doet.....

http://phptuts.nl/view/41/
 



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.