Inlog systeem maken
Hallo allemaal,
Ik bem bezig met een inlog systeem te maken en heb nu deze code:
<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>
Maar ik zit met een probleempje:
Ik krijg de melding dat de variabele $password en $username geen waarde bevatten. Deze variabele staan in het onderstaande codetje.
Het controleert of de gegevens die je invult gelijk zijn met die in de database staan.
if ($_POST['login']==$username and $_POST['wachtwoord']==$password)
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
Ik ben als 2 dagen bezig met elke oplossen uit te voeren die ik heb bedacht, maar tot nu toe geen resultaat.
Wie kan mij uitleggen hoe ik dit script werkend kan maken?
Alvast bedankt!
Ik bem bezig met een inlog systeem te maken en heb nu deze 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
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
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
<?php
session_start();
define ( 'DEBUGMODE', true );
if ( constant( 'DEBUGMODE' ) )
{
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
}
else
{
ini_set( 'display_errors', 0 );
}
$aErrors = array();
// Maak een verbinding met de database
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['gebruikersnaam'])."'
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';
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login']==$username and $_POST['wachtwoord']==$password)
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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' ) )
{
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
}
else
{
ini_set( 'display_errors', 0 );
}
$aErrors = array();
// Maak een verbinding met de database
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['gebruikersnaam'])."'
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';
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login']==$username and $_POST['wachtwoord']==$password)
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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>
Maar ik zit met een probleempje:
Ik krijg de melding dat de variabele $password en $username geen waarde bevatten. Deze variabele staan in het onderstaande codetje.
Het controleert of de gegevens die je invult gelijk zijn met die in de database staan.
if ($_POST['login']==$username and $_POST['wachtwoord']==$password)
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
Ik ben als 2 dagen bezig met elke oplossen uit te voeren die ik heb bedacht, maar tot nu toe geen resultaat.
Wie kan mij uitleggen hoe ik dit script werkend kan maken?
Alvast bedankt!
je hebt toch ook nergens die vars ingesteld?
oké bedankt voor het antwoord.
Maar hoe en waarmee zou ik deze moeten opvullen?
Ik namelijk al zo iets dergelijk geprobeerd als
$username= mysql_real_escape_string($_POST['gebruikersnaam']);
maar dat wekte niet
Maar hoe en waarmee zou ik deze moeten opvullen?
Ik namelijk al zo iets dergelijk geprobeerd als
$username= mysql_real_escape_string($_POST['gebruikersnaam']);
maar dat wekte niet
Sorry, dat werkt ook niet.
Ik krijg deze meldingen:
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52
Notice: Undefined index: login in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53
Notice: Undefined index: wachtwoord in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53
Ik krijg deze meldingen:
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52
Notice: Undefined index: login in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53
Notice: Undefined index: wachtwoord in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53
Je vult nergens de 2 vars...
je zecht:
Maar nu bestaan de 2 vars $password en $username nog NIET...
want je vult ze niet...
(nu zeg je vergelijk de $_POST['waarde'] aan een lege string....)
probeer eens:
je zecht:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?PHP
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
?>
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
?>
Maar nu bestaan de 2 vars $password en $username nog NIET...
want je vult ze niet...
(nu zeg je vergelijk de $_POST['waarde'] aan een lege string....)
probeer eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?PHP
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['gebruikersnaam'] and sha1($_POST['wachtwoord']) == $row['password'])
{
// CODE...
}
}
?>
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['gebruikersnaam'] and sha1($_POST['wachtwoord']) == $row['password'])
{
// CODE...
}
}
?>
Gewijzigd op 01/10/2011 10:53:42 door Marco PHPJunky
Oké, ik ben nu iets verder.
Ik krijg nu de melding:
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Notice: Undefined variable: rResult in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Welk variabele zou ik dan nu moeten gebruiken?
Ik krijg nu de melding:
Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Notice: Undefined variable: rResult in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Welk variabele zou ik dan nu moeten gebruiken?
Gewijzigd op 01/10/2011 10:54:30 door Niels Veer
maak eens van:
en:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?PHP
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
//Dit...
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
//Dit...
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
en:
Gewijzigd op 01/10/2011 10:59:57 door Marco PHPJunky
Bedankt voor de tip, door die error repoting wat hoger te zetten kwam dit er uit:
Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Klopt het dat die 0 iets te maken heeft met het uitleggen?
Dat is waarde 0
Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55
Klopt het dat die 0 iets te maken heeft met het uitleggen?
Dat is waarde 0
wat staat er nu op line 55 ?
ps.
nog 2 kleine dingentjes:
-als je op je site op de button: Waarom klikt zie je in de adres balk; Waaron staan ipv waarom
-Als je rechts onderaan op de afbeelding/link van gastenboek klikt opent hij die in een nieuwe pagina ( denk dat je daar nu een target="_blank" hebt staan ofzo)
pss (offtopic),
Borft de gekste...
ps.
nog 2 kleine dingentjes:
-als je op je site op de button: Waarom klikt zie je in de adres balk; Waaron staan ipv waarom
-Als je rechts onderaan op de afbeelding/link van gastenboek klikt opent hij die in een nieuwe pagina ( denk dat je daar nu een target="_blank" hebt staan ofzo)
pss (offtopic),
Borft de gekste...
Gewijzigd op 01/10/2011 11:17:05 door Marco PHPJunky
Bedankt, ik zal er eens naar kijken.
Op lijn 55 staat het codetje dat ik zojuist heb aangepast:
Op lijn 55 staat het codetje dat ik zojuist heb aangepast:
Kijk eens wat je van het formulier krijgt met
uuuu
volgens mij heb je het fout over genomen (volgens jou script):
edit
En het is niet:
maar;
als ik naar je formulier kijk
aangepast
volgens mij heb je het fout over genomen (volgens jou script):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?PHP
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
// CODE...
}
}
?>
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
// CODE...
}
}
?>
edit
En het is niet:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?PHP
$sQuery = "
.....................................
username = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
?>
$sQuery = "
.....................................
username = '".mysql_real_escape_string($_POST['gebruikersnaam'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
?>
maar;
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
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['login'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
?>
$sQuery = "
SELECT
username
, password
FROM
loginsysteem
WHERE
username = '".mysql_real_escape_string($_POST['login'])."'
AND
password = '".sha1($_POST['wachtwoord'])."';";
?>
als ik naar je formulier kijk
Code (php)
1
2
3
4
5
2
3
4
5
<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>
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>
aangepast
Gewijzigd op 01/10/2011 12:16:33 door Marco PHPJunky
Ik heb even gekeken wat er wordt verstuurd.
Als ik als gebeukersnaam pietje in typ en als wachtwoord test zie ik dit:
Array
(
[login] => pietje
[wachtwoord] => test
)
Het wordt dus wel verstuurt, maar niet gecodeerd.
Ik krijg nu de melding:
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 58
Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 80
Om het even iets duidelijker te maken, dit is nu het volledige script:
<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>
Als ik als gebeukersnaam pietje in typ en als wachtwoord test zie ik dit:
Array
(
[login] => pietje
[wachtwoord] => test
)
Het wordt dus wel verstuurt, maar niet gecodeerd.
Ik krijg nu de melding:
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 58
Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 80
Om het even iets duidelijker te maken, dit is nu het volledige script:
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
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
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 = '';
// Maak een verbinding met de database
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...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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 = '';
// Maak een verbinding met de database
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...
$row = mysql_fetch_assoc($rResult);
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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>
je vangt niet of er een leeg resultaat terug komt:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
?>
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
} else {
// data fetch...
$row = mysql_fetch_assoc($rResult);
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
]<?php
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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
?>
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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
?>
Gewijzigd op 02/10/2011 08:36:32 door Ger van Steenderen
Het heeft nog steeds geen zin, de meldingen blijven staan.
Ik snap het zelf ook niet echt.
Want de melding is dat het variabele $row niet klopt terwijl ik hem in het database gedeelte wel aangeef.
Ik snap het zelf ook niet echt.
Want de melding is dat het variabele $row niet klopt terwijl ik hem in het database gedeelte wel aangeef.
Laat nog even je volledige script zien
Dit is het volledige script:
<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>
En dit zijn de foutmeldingen:
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61
Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 83
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
88
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
88
<?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 = '';
// Maak een verbinding met de database
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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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 = '';
// Maak een verbinding met de database
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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
}
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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>
En dit zijn de foutmeldingen:
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61
Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 83
Je moet je script iets beter organiseren, je moet je database query uitvoeren binnen de if op regel 59
Als je het zo bedoelt werkt het niet helemaal, er is een foutmelding minder maar ik blij nog altijd deze houden:
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62
<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>
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62
Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62
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
88
89
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
88
89
<?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 = '';
// 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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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 = '';
// 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);
else
$aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
}
}
}
if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}
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>
Gewijzigd op 02/10/2011 09:28:26 door Niels Veer
Ik heb dit niet getest:
Toevoeging op 02/10/2011 09:37:31:
Overigens is die if op regel 52 overbodig want je contoleert dat al met de query.
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
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
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 />';
?>
Toevoeging op 02/10/2011 09:37:31:
Overigens is die if op regel 52 overbodig want je contoleert dat al met de query.




