inlog systeem in php
ik moet voor een opdracht een inlog systeem maken.
aangezien in een registratie formulier heb gemaakt staat er in mijn database de wachtwoorden en gebruikersnamen.
ik probeer nu in te loggen met een goeie combinatie van een wachtwoord en gebruikers naam. alleen hij zegt de heletijd dat de combinatie niet goed is. Terwijl t in de database wel zo is.
Zou iemand naar mijn code willen kijken.
Misschien kunnen jullie wat vinden?
alvast bedankt.
Richard.
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
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
<?php
include ('config.php');
// Gebruikersnaam en wachtwoord instellen
// Controle of het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Controle of benodigde velden wel ingevuld zijn
if(isset($_POST['gebruikersnaam'], $_POST['wachtwoord']))
{
// Overbodige spaties verwijderen
$gebruikersnaam = trim($_POST['gebruikersnaam']);
$wachtwoord = trim($_POST['wachtwoord']);
$sql = ("SELECT gebruikersnaam FROM registreren WHERE gebruikersnaam='". $gebruikersnaam . "'");
$query = ("SELECT wachtwoord FROM registreren WHERE wachtwoord='". $wachtwoord . "'");
// Gebruikersnaam en wachtwoord controleren
if($sql == $gebruikersnaam && $query == $wachtwoord)
{
// Juiste gebruikersnaam en wachtwoord: inloggen!
$_SESSION['logged_in'] = true;
$_SESSION['gebruiker'] = $gebruikersnaam;
// Doorsturen en melding geven
header('Refresh: 3; url=login.php');
echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.';
}
else
{
// Terugsturen en foutmelding geven
header('Refresh: 3; url=aanmelden.php');
echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
}
}
else
{
header('Refresh: 3; url=aanmelden.php');
echo 'Een vereist veld bestaat niet!';
}
}
else
{
// Terug naar het formulier
header('Location: aanmelden.php');
exit();
}
?>
include ('config.php');
// Gebruikersnaam en wachtwoord instellen
// Controle of het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Controle of benodigde velden wel ingevuld zijn
if(isset($_POST['gebruikersnaam'], $_POST['wachtwoord']))
{
// Overbodige spaties verwijderen
$gebruikersnaam = trim($_POST['gebruikersnaam']);
$wachtwoord = trim($_POST['wachtwoord']);
$sql = ("SELECT gebruikersnaam FROM registreren WHERE gebruikersnaam='". $gebruikersnaam . "'");
$query = ("SELECT wachtwoord FROM registreren WHERE wachtwoord='". $wachtwoord . "'");
// Gebruikersnaam en wachtwoord controleren
if($sql == $gebruikersnaam && $query == $wachtwoord)
{
// Juiste gebruikersnaam en wachtwoord: inloggen!
$_SESSION['logged_in'] = true;
$_SESSION['gebruiker'] = $gebruikersnaam;
// Doorsturen en melding geven
header('Refresh: 3; url=login.php');
echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.';
}
else
{
// Terugsturen en foutmelding geven
header('Refresh: 3; url=aanmelden.php');
echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
}
}
else
{
header('Refresh: 3; url=aanmelden.php');
echo 'Een vereist veld bestaat niet!';
}
}
else
{
// Terug naar het formulier
header('Location: aanmelden.php');
exit();
}
?>
Je voert de queries niet uit. Je vergelijkt in if($sql == $gebruikersnaam && $query == $wachtwoord) alleen maar strings. De string uit $_POST['gebruikersnaam'] zal daarbij nooit gelijk zijn aan de string SELECT gebruikersnaam FROM registreren WHERE gebruikersnaam='...'.
Dan ben je dus ingelogd als je een gebruikersnaam hebt en een wachtwoord die misschien helemaal niet bij elkaar horen.
Verder zou ik niet met een header gaan werken bij het tonen van (fout)meldingen.