Inloggen php
Ik maak een simpele gastenboek met een simpele admin system. Ik wil ook natuurlijk de admin systeem beveiligen. Het leuke is nu, dat ik het heb beveiligd maar ik kan er niet inkomen(de adminpage).
De code:
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
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
<?php
include_once("config.php");
include_once("functions.php");
/**
*Deze pagina is beveiligd, eerst de code voor het inloggen
*/
$melding = 'Beveiligd gebied';
$foutmelding = 'U hebt geen correcte gebruikersnaam/wachtwoord opgegeven!<br />
Terug naar de <a href="index.php">homepage</a>';
if(empty($PHP_AUTH_USER)){
//inlogscherm laten zien
admin_toegang($melding, $foutmelding);
}
else{
//ingevulde gegevens controleren
$admin = $PHP_AUTH_USER;
$pass = $PHP_AUTH_PW;
$pass = md5($pass);
$query = "SELECT * FROM gb_admin WHERE admin_naam ='" . $admin . "' AND admin_wachtwoord ='" . $pass . "'";
//query uitvoeren
$result=safe_query($db, $query);
if($result){
//resultaat toekennen aan tijdelijke variabele $admin_ok
list($admin_ok) = mysqli_fetch_row($result);
}
if(!$result || empty($admin_ok)){
//foutieve naam/wachtwoord, nogmaals laten inloggen
admin_toegang($melding, $foutmelding);
}
}
/**
*Inloggen is geslaagd toegang tot de rest van de pagina
*/
?>
include_once("config.php");
include_once("functions.php");
/**
*Deze pagina is beveiligd, eerst de code voor het inloggen
*/
$melding = 'Beveiligd gebied';
$foutmelding = 'U hebt geen correcte gebruikersnaam/wachtwoord opgegeven!<br />
Terug naar de <a href="index.php">homepage</a>';
if(empty($PHP_AUTH_USER)){
//inlogscherm laten zien
admin_toegang($melding, $foutmelding);
}
else{
//ingevulde gegevens controleren
$admin = $PHP_AUTH_USER;
$pass = $PHP_AUTH_PW;
$pass = md5($pass);
$query = "SELECT * FROM gb_admin WHERE admin_naam ='" . $admin . "' AND admin_wachtwoord ='" . $pass . "'";
//query uitvoeren
$result=safe_query($db, $query);
if($result){
//resultaat toekennen aan tijdelijke variabele $admin_ok
list($admin_ok) = mysqli_fetch_row($result);
}
if(!$result || empty($admin_ok)){
//foutieve naam/wachtwoord, nogmaals laten inloggen
admin_toegang($melding, $foutmelding);
}
}
/**
*Inloggen is geslaagd toegang tot de rest van de pagina
*/
?>
De admin tabel
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
CREATE TABLE `gb_admin` (
`id` int(11) NOT NULL auto_increment,
`admin_naam` varchar(50) NOT NULL,
`admin_wachtwoord` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `gb_admin` VALUES (5, 'Test', '0cbc6611f5540bd0809a388dc95a615b');
?>
CREATE TABLE `gb_admin` (
`id` int(11) NOT NULL auto_increment,
`admin_naam` varchar(50) NOT NULL,
`admin_wachtwoord` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `gb_admin` VALUES (5, 'Test', '0cbc6611f5540bd0809a388dc95a615b');
?>
De functie
Code (php)
Ik krijg wel netjes een scherm dat ik moet inloggen, maar zodra ik inlog wilt ie de username en pass niet pakken. Althans dat lijkt zo, want ik vul wel de goeie gegevens in!
Is het een beetje duidelijk? :x
Ligt het aan de query?
Tnx
ww is zeker weten goed? echo md5('jouwww'); en vergelijk hem met de hash in de DB...
ww is goed en de md5 ook, maar lijkt net alsof de vergelijking niet plaats vind :x
Ten tweede. Als je $pass echot, en $admin echot, dan krijg je de juiste waarden?