Inlog systeem maken
Ik zit nu alleen nog met het probleem dat ik nog niet binnen kom.
Ik krijg deze melding:
Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 82
Ik heb al gekeken of ik de ['inlogdata'] gewoon kon weg halen.
Als ik dat doe krijg ik deze melding:
Notice: Undefined index: ingelogd in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 82
Dit is overigens nu het hele script met dank aan Ger van Steenderen:
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
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
86
87
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
86
87
<?php
session_start();
define ( 'DEBUGMODE', true );
if ( constant( 'DEBUGMODE' ) )
{
error_reporting(E_ALL);
ini_set('display_errors', 1);}
else
{
ini_set( 'display_errors', 0 );
}
$aErrors = array();
$rResult = false;
// Maak een verbinding met de database
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'loginsysteem', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['login'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
if (mysql_num_rows($rResult) > 0) {
$row = mysql_fetch_assoc($rResult);
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password']) {
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
else {
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
}
}
if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{
$_SESSION['inlogdata']['ingelogd']=0;
$_SESSION['inlogdata']['remote_addr']='';
}
if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{
echo 'Gebruiker is ingelogd.<br />';
echo '<a href="?cmd=logout">uitloggen</a>';
}
else
{
// Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!= $_SERVER['REMOTE_ADDR'])
{
echo 'Mogelijke hijack!';
}
echo 'Gebruiker is niet ingelogd.<br />';
?>
session_start();
define ( 'DEBUGMODE', true );
if ( constant( 'DEBUGMODE' ) )
{
error_reporting(E_ALL);
ini_set('display_errors', 1);}
else
{
ini_set( 'display_errors', 0 );
}
$aErrors = array();
$rResult = false;
// Maak een verbinding met de database
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'loginsysteem', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['login'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
if (mysql_num_rows($rResult) > 0) {
$row = mysql_fetch_assoc($rResult);
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password']) {
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
else {
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
}
}
if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{
$_SESSION['inlogdata']['ingelogd']=0;
$_SESSION['inlogdata']['remote_addr']='';
}
if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{
echo 'Gebruiker is ingelogd.<br />';
echo '<a href="?cmd=logout">uitloggen</a>';
}
else
{
// Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!= $_SERVER['REMOTE_ADDR'])
{
echo 'Mogelijke hijack!';
}
echo 'Gebruiker is niet ingelogd.<br />';
?>
<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>