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...


<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
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;

<?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/
@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

...
Probleem opgelost!
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/

Reageren