[php] waarde sql query in een variabele zetten

Pagina: 1
Acties:
  • 177 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hebt het volgende script voor een soort van login systeem. Het onderstaande script moet gebruikt worden om iemand te laten aanmelden:

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
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
<?php
include('base.php');

if(!$_POST['aanmelden'])
{
?>

    <table>
        <form action="register.php" method="post">
            <tr><td>Naam: </td><td><input type="text" name="gebruiker"></td></tr>
            <tr><td>Wachtwoord: </td><td><input type="password" name="pass"> (minimaal 6 tekens)</td></tr>
            <tr><td>Wachtwoord herhaal: <td><input type="password" name="hpass"></td></tr>
            <tr><td>E-mail: </td><td><input type="text" name="email"></td></tr>
            <tr><td></td><td><input type="submit" name="aanmelden" value="Aanmelden"></td></tr>
        </form>
    </table>

<?php
}

//Onderstaande regel controleert of alle velden zijn ingevuld
elseif ($_POST['gebruiker']!="" && $_POST['pass']!="" && $_POST['hpass']!="" && $_POST['email'])
{
    //Alle ingevulde velden worden omgezet naar variabelen
    $gebruiker=$_POST['gebruiker'];
    $pass=$_POST['pass'];
    $hpass=$_POST['hpass'];
    $email=$_POST['email'];
    
    //controleer of de wachtwoorden gelijk zijn
    if ($pass == $hpass)
    {
        //controleer of het wachtwoord minimaal 6 karakters is
        if(strlen($pass) >= 6)
        {
            //Verbinding met server opzetten
            mysql_connect("$dbhost","$dbuser","$dbpass");
            mysql_select_db("$db");
                 
            //de query kijkt of de naam ingevoerd als gebruikersnaam, al in de DB staat in het veld gebruiker
            $query=mysql_query("SELECT * FROM $db WHERE gebruiker = '$gebruiker'");

            //Tel het aantal rijen in Query een geef de waarde door aan &aantal
            $aantalrijen=mysql_num_rows($query);

            if ($aantalrijen == 1) 
            {
                //Er bestaat al een record met die naam. Er moet nu een melding op het scherm komen:
                echo "De gekozen gebruikersnaam bestaat al! etc. etc.";
            }
            
            else
            {
                //De gebruikersnaam bestaat nog niet. Het wachtwoord wordt nu gecodeerd met MD5.
                $md5pass = md5($pass);
                
                //Vraag het IP adres op en sla het op in de variabele $ip
                $ip = $REMOTE_ADDR;

                $query = "INSERT INTO $db(gebruiker, password, email, ip) 
                          VALUES ('$gebruiker','$md5pass','$email','$ip')";

                //Voer de query uit
                mysql_query($query) or die(mysql_error());
                echo "Uw aanmelding is verwerkt!";
            }
        }

        else
        {
            echo "Het paswoord moet minimaal 6 karakters lang zijn!";
        }
    }
    
    else
    {
        echo "De opgegeven wachtwoorden komen niet overeen!";
    }
} 

elseif ($_POST['gebruiker']=="" or $_POST['pass']=="" or $_POST['hpass']=="" or $_POST['email']=="")
{
    echo "Niet alle velden zijn ingevuld!";
}
?>


Zodra ik het script test (op een Windows XP machine met easy PHP) krijg ik de volgende output:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in e:\easyphp1-7\www\login\register.php on line 44

Notice: Undefined variable: REMOTE_ADDR in e:\easyphp1-7\www\login\register.php on line 58
No Database Selected

Waar ik dus achter gekomen ben is dat dit niet werkt: $query=mysql_query("SELECT * FROM $db WHERE gebruiker = '$gebruiker'");

De variabele $query blijft gewoon leeg. :? Hier ben ik achter gekomen door een IF statement erachter te plaatsen die kijkt of hij een waarde krijgt. - die if is hier weggehaald -

De vraag is nu... wat doe ik hier verkeerd?

[ Voor 32% gewijzigd door Verwijderd op 15-03-2004 19:06 ]


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 06-09 02:30

dusty

Celebrate Life!

Je antwoord: No Database Selected

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 11-09 10:47
Welke versie van PHP gebruik je?

verbouw die regel 41 eens in:
PHP:
1
$query = mysql_query('SELECT * FROM '.$db.' WHERE gebruiker = \''.$gebruiker.'\'');


en REMOTE_ADDR heet tegenwoordig : $_SERVER['REMOTE_ADDR']

[ Voor 15% gewijzigd door Sybr_E-N op 15-03-2004 19:08 ]


Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
tip:
lees http://www.w3schools.com/sql door, want zo te zien weet je niet hoe sql werkt

heb jij een tabel in je database staan die $db heet :? anders moet je die in je SELECT statement ff vervangen door de tabel waar je uit wil selecteren...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!