Ga naar inhoud
Log in om dit te volgen  
job

PHP/MySQL probleem

Aanbevolen berichten

Hallo allemaal,
Ondanks mijn afwezigheid hier zit ik niet stil. Nu heb ik een probleem waar ik tegenaan loop. Waarschijnlijk kijk ik gewoon ergens overheen maargoed. Ik probeer n registreer-script te maken.

Codeblok (registreren.php):
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
<html>
    <?php include(header.php); ?>
        <div id="page">            
            
            <?php include(profilediv.php); ?>
            <div id="register">
            <form method="post" action="registreerv.php">
                <table>
                    <tr>
                    <td>Gebruikersnaam:</td>
                    <td><input type="text" name="user" value="" placeholder="Gebruikersnaam"></td>
                    </tr>
                    <tr>
                    <td>E-mailadres:</td>
                    <td><input type="text" name="email" value="" placeholder="E-mailadres"</td>
                    </tr>
                    <tr>
                    <td>Wachtwoord:</td>
                    <td><input type="password" name="password" value="" placeholder="Wachtwoord"</td>
                    </tr>
                    <tr><td></td>
                    <td><input type="submit" name="submit" value="Registreren">
                    </td></tr>
                </table>
            
            </form>
            </div>
            
        </div>
    <?php include(footer.php); ?>
</html>


Codeblok (registreerv.php):
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
<html>
    <?php include(header.php); ?>
        <div id="page">            
            
            <?php include(profilediv.php); ?>
            
            <?php
            if(isset($_POST[submit])) {
                if(!empty($_POST[user]) AND !empty($_POST[password]) AND !empty($_POST[email])) {
                    $user    =    mysql_real_escape_string($_POST[user]);
                    $password    =    sha1($_POST[password]);
                    $mail    =    mysql_real_escape_string($_POST[email]);
                    $sql = ("SELECT user FROM users WHERE user=". $user . "");
                    $uitvoer = mysql_query($sql);        
            
                    $controle = mysql_num_rows($uitvoer);
                
            if($controle == 0) {
            mysql_query("INSERT INTO users (user, password, email) VALUES (," . $user . ", " . $password . ", " . $mail . ")");
            echo U bent succesvol geregistreerd!;
            
            }
else{
                echo Er is iets foutgegaan;
            }
            }
            }

                
            
            
            
            
            ?>

        </div>
    <?php include(footer.php); ?>
</html>

De gegevens komen niet in Phpmyadmin terecht! Wel krijg ik de melding "U bent succesvol geregistreerd!". Weet iemand hoe dit op te lossen?

Groeten Job

Deel dit bericht


Link naar bericht
Delen op andere sites
Hey Job. @Job

De INSERT query klopt niet. Je geeft in de query aan dat je 3 velden meegeeft (user, password, email), maar daar wil je 4 waarden in stoppen (leeg, user, password, mail)

Ik raad je overigens aan om PDO te gebruiken voor je verbinding met MySQL.

Deel dit bericht


Link naar bericht
Delen op andere sites
Hi Sjoerd, allereerst dankjewel voor je reactie. Ik ga zo kijken of het werkt. Vraagje wat betreft PDO, is PDO een grote stap om te maken vanaf regulier PHP/MySQL? Of als in, gaat er heel veel tijd in zitten?

Edit!
Registreren werkt nu, inloggen alleen nog niet! Hij herkent bij de controle de gegevens niet.
Codeblok:
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
<html>
    <?php include(header.php); ?>
        <div id="page">            
            
            <?php include(profilediv.php); ?>
            <div id="register">
            <form method="post" action="inloggen.php">
                <table>
                    <tr>
                    <td>Gebruikersnaam:</td>
                    <td><input type="text" name="user" value="" placeholder="Gebruikersnaam"></td>
                    </tr>
                    
                    <tr>
                    <td>Wachtwoord:</td>
                    <td><input type="password" name="password" value="" placeholder="Wachtwoord"</td>
                    </tr>
                    <tr><td></td>
                    <td><input type="submit" name="submit" value="Inloggen">
                    </td></tr>
                </table>
            
            </form>
            </div>
                        
            <?php
            
if( $_SERVER[REQUEST_METHOD] == POST)        // Controle of er op de knop is gedrukt.
{
          
    if(!empty($_POST[user]) AND !empty($_POST[password]))
    {

        $user    = mysql_real_escape_string($_POST[user]);  
        $password        = sha1($_POST[password]);  
        $sql = ("SELECT user, password FROM users WHERE user=" . $user . " AND password=" . $password . "");
        $uitvoer = mysql_query($sql);
        
        $controle = mysql_num_rows($uitvoer);
            if($controle != 0)
            {

                echo Test;
            }

            else
            {
                header(Refresh: 2; url=inloggen.php);
                exit (Verkeerde gebruikersnaam of wachtwoord.);        // Negatieve melding van ingevoerde gegevens.
            }            
    }
}

?>

        </div>
    <?php include(footer.php); ?>
</html>

Geen idee waar het fout gaat..

Deel dit bericht


Link naar bericht
Delen op andere sites
Job (link):
Hi Sjoerd, allereerst dankjewel voor je reactie. Ik ga zo kijken of het werkt. Vraagje wat betreft PDO, is PDO een grote stap om te maken vanaf regulier PHP/MySQL? Of als in, gaat er heel veel tijd in zitten?

Edit!
Registreren werkt nu, inloggen alleen nog niet! Hij herkent bij de controle de gegevens niet.
Codeblok:
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
<html>
    <?php include(header.php); ?>
        <div id="page">            
            
            <?php include(profilediv.php); ?>
            <div id="register">
            <form method="post" action="inloggen.php">
                <table>
                    <tr>
                    <td>Gebruikersnaam:</td>
                    <td><input type="text" name="user" value="" placeholder="Gebruikersnaam"></td>
                    </tr>
                    
                    <tr>
                    <td>Wachtwoord:</td>
                    <td><input type="password" name="password" value="" placeholder="Wachtwoord"</td>
                    </tr>
                    <tr><td></td>
                    <td><input type="submit" name="submit" value="Inloggen">
                    </td></tr>
                </table>
            
            </form>
            </div>
                        
            <?php
            
if( $_SERVER[REQUEST_METHOD] == POST)        // Controle of er op de knop is gedrukt.
{
          
    if(!empty($_POST[user]) AND !empty($_POST[password]))
    {

        $user    = mysql_real_escape_string($_POST[user]);  
        $password        = sha1($_POST[password]);  
        $sql = ("SELECT user, password FROM users WHERE user=" . $user . " AND password=" . $password . "");
        $uitvoer = mysql_query($sql);
        
        $controle = mysql_num_rows($uitvoer);
            if($controle != 0)
            {

                echo Test;
            }

            else
            {
                header(Refresh: 2; url=inloggen.php);
                exit (Verkeerde gebruikersnaam of wachtwoord.);        // Negatieve melding van ingevoerde gegevens.
            }            
    }
}

?>

        </div>
    <?php include(footer.php); ?>
</html>

Geen idee waar het fout gaat..


Nou niet per se PDO maar wel MySQLi aangezien MySQL sterk verouderd is.
Ik vind persoonlijk PDO niet fijn werken.

Deel dit bericht


Link naar bericht
Delen op andere sites
je bent in iedergeval vergeten je password input af te sluiten.

verder zie ik niks verkeerd zo snel.

Al kun je beter overstappen op Mysqli IPV mysql

Deel dit bericht


Link naar bericht
Delen op andere sites
Hmm, ook na dat verholpen te hebben krijg ik nog steeds de melding dat de combinatie verkeerd is.

Deel dit bericht


Link naar bericht
Delen op andere sites
Hoe lang is het veld voor password in je database? Misschien is de sha1 hash van je wachtwoord langer dan de maximale lengte, waardoor hij de sha1-hash afkort bij de insert..


toevoeging op 28 november 2015, 20:22:50:
@Job

Deel dit bericht


Link naar bericht
Delen op andere sites
@Sjoerd , Ja, het werkt, inderdaad was de lengte van het veld de issue. Tnx voor je hulp!

Deel dit bericht


Link naar bericht
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Maak een account aan in onze gemeenschap. Het is makkelijk!

Registreer een nieuw account

Aanmelden

Ben je al lid? Meld je hier aan.

Nu aanmelden
Log in om dit te volgen  

×