WHERE AND AND ?? mysql query
Ik ben bezig met een inlog systeem voor mijn klas. maar bij deze site kunnen ook leraren inloggen (ik ben gevraagd dit te doen door een leraar).
Nu wil ik dus dat er een keuze word gemaakt tussen leerling / docent en dan wachtwoord en gebruikersnaam.
nu moet mijn query dus check of er iets in de database staat met bijv gebruikersnaam: jan wachtwoord: piethein en status: leerling.
nu heb ik het volgende
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$sql = mysql_query("SELECT
gebruikersnaam, wachtwoord, status
FROM
school_gebruikers
WHERE
gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
wachtwoord = '".mysql_real_escape_string($_POST['wachtwoord'])."'");
gebruikersnaam, wachtwoord, status
FROM
school_gebruikers
WHERE
gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
wachtwoord = '".mysql_real_escape_string($_POST['wachtwoord'])."'");
maar als ik een 2e and toevoeg dan doet hij het niet meer dus ik krijg niks meer te zien. gewoon een witte pagina.
het lijkt mij dan duidelijk dat het op een andere manier moet maar welke..?
Gewijzigd op 01/01/1970 01:00:00 door Milo
zet je error reporting aan en laat de errors zien. Dan kunnen we je helpen.
Deze manier zoek jij waarschijnlijk.
Code (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
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
<?PHP
# Errors
error_reporting(E_ALL);
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Query uitvoeren
$Query =
"
SELECT
gebruikersnaam,
status
FROM
school_gebruikers
WHERE
gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
wachtwoord = '".md5($_POST['wachtwoord'])."'
";
# Resultaat
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje met query
echo 'Er is een fout opgetreden '.mysql_error();
}
else
{
# Kijken of gebruikersnaam en wachtwoord voorkomt in database
if(mysql_num_rows($Result) == 0)
{
# Gebruikersnaam en wachtwoord komen niet voor in database
echo 'Wij konden geen gebruiker vinden met deze combinatie.';
}
else
{
# Gebruiker gevonden in database, Sessies aanmaken (Eerst rijen fetchen).
$Row = mysql_fetch_assoc($Result);
# Sessie voor de gebruikersnaam
$_SESSION['gebruiker'] = $_POST['gebruikersnaam'];
# Sessie om vast te stellen of de gebruiker is ingelogd
$_SESSION['logged_in'] = true;
# Sessie met de status van de gebruiker
$_SESSION['status'] = $Row['status'];
# Sessie van het ip van de gebruiker
$_SESSION['ip'] = $_SERVER['REMOTE_ADRR'];
# Gebruiker laten weten dat hij is ingelogd
echo 'U bent succesvol ingelogd, <a href="gebruikerpagina.php">Klik hier</a> om verder te gaan.';
}
}
}
?>
# Errors
error_reporting(E_ALL);
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Query uitvoeren
$Query =
"
SELECT
gebruikersnaam,
status
FROM
school_gebruikers
WHERE
gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
wachtwoord = '".md5($_POST['wachtwoord'])."'
";
# Resultaat
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje met query
echo 'Er is een fout opgetreden '.mysql_error();
}
else
{
# Kijken of gebruikersnaam en wachtwoord voorkomt in database
if(mysql_num_rows($Result) == 0)
{
# Gebruikersnaam en wachtwoord komen niet voor in database
echo 'Wij konden geen gebruiker vinden met deze combinatie.';
}
else
{
# Gebruiker gevonden in database, Sessies aanmaken (Eerst rijen fetchen).
$Row = mysql_fetch_assoc($Result);
# Sessie voor de gebruikersnaam
$_SESSION['gebruiker'] = $_POST['gebruikersnaam'];
# Sessie om vast te stellen of de gebruiker is ingelogd
$_SESSION['logged_in'] = true;
# Sessie met de status van de gebruiker
$_SESSION['status'] = $Row['status'];
# Sessie van het ip van de gebruiker
$_SESSION['ip'] = $_SERVER['REMOTE_ADRR'];
# Gebruiker laten weten dat hij is ingelogd
echo 'U bent succesvol ingelogd, <a href="gebruikerpagina.php">Klik hier</a> om verder te gaan.';
}
}
}
?>
Aan de hand van de SESSION status kan je kijken wat voor status de gebruiker heeft op pagina's waar je ingelogd moet zijn.
Pagina's waar alleen leraren mogen komen controleer je dan of de status wel een docent is.
De andere sessie snap je waarschijnlijk wel, zelf zet ik nooit een gebruikersnaam in een sessie, ik zou eerder voor het id kiezen en aan de hand van het id een query uitvoeren met een where waar je dan de gegevens van die persoon ophaalt.
Dit is alleen even een voorbeeld voor je, Is natuurlijk niet een complete inlog pagina. is met de losse hand geschreven dus kunnen foutjes inzitten.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
BTW: Hoe erg is het als de zooi gehackt wordt bij jou? Zou je er niet voor kiezen om wachtwoorden gecodeerd op te slaan? SHA1 of minimaal MD5?