Inlog systeem maken
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?
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
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 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
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
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
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
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
Op lijn 55 staat het codetje dat ik zojuist heb 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
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>
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
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
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
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
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.