login moet 2x
login 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
session_start();
include 'conn.php';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$login_user = $Mysqli->real_escape_string($_POST['gebruikersnaam']);
$login_pass = $Mysqli->real_escape_string($_POST['wachtwoord']);
$user_ip = $_SERVER['REMOTE_ADDR'];
srand ((double) microtime( )*1000000);
$session_id = rand(1000,1000000);
$q1 = "
SELECT
id,
username,
block
FROM
users
WHERE
username = '".$login_user."'
AND
password = '".$login_pass."'
";
if(!$r1 = $Mysqli->query($q1))
{
echo 'Er is een fout opgetreden!. '. $Mysqli->error;
}
elseif($Mysqli->affected_rows == 1)
{
while ($row = $r1->fetch_assoc ())
{
$_SESSION["username"] = $row['username'];
$_SESSION['user_id'] = $row['id'];
$_SESSION['user_ip'] = $user_ip;
$_SESSION['session_id'] = $session_id;
if ($row['block'] == 1)
{
echo 'Je bent geblokkeerd, je kunt niet meer inloggen!';
}
else
{
//Inloggen gelukt!!
echo '<script language="JavaScript">
<!--
window.location="index2.php";
//-->
</script>';
}
$q2 = "
INSERT INTO
sessions
(
user_id,
session_id,
user_ip
)
VALUES
(
'".$row['id']."',
'".$session_id."',
'".$user_ip."'
)
";
}
if (!$Mysqli->query ($q2) )
{
echo 'Er is een fout opgetreden!'. $Mysqli->error;
}
}
else
{
echo 'Gebruikersnaam of wachtwoord onjuist, probeer het opnieuw!';
}
}
else
{
?>
<html>
<head>
<title>HVMade CMS</title>
<style type="text/css">
<!--
body {
margin-top: 200px;
}
-->
</style>
</head>
<body>
<?php
if(isset($_GET['error']))
{
if($_GET['error'] == 'sess')
{
echo 'De sessie is ongeldig! Log aub opnieuw in!<p>';
}
}
?>
<div align="center"><div style="background-image:url(img/login.jpg); width:340px; height:150px; text-align:left; padding-top:50px; padding-left:10px;">
<form method='post'>
<table>
<tr>
<td>Gebruikersnaam:</td>
<td><input type='text' name='gebruikersnaam'></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input type='password' name='wachtwoord'></td>
</tr>
<tr>
<td><input type='submit' name='submit' value='Login'></td>
</tr>
</table>
</form>
</div></div>
</body>
</html>
<?php
}
?>
session_start();
include 'conn.php';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$login_user = $Mysqli->real_escape_string($_POST['gebruikersnaam']);
$login_pass = $Mysqli->real_escape_string($_POST['wachtwoord']);
$user_ip = $_SERVER['REMOTE_ADDR'];
srand ((double) microtime( )*1000000);
$session_id = rand(1000,1000000);
$q1 = "
SELECT
id,
username,
block
FROM
users
WHERE
username = '".$login_user."'
AND
password = '".$login_pass."'
";
if(!$r1 = $Mysqli->query($q1))
{
echo 'Er is een fout opgetreden!. '. $Mysqli->error;
}
elseif($Mysqli->affected_rows == 1)
{
while ($row = $r1->fetch_assoc ())
{
$_SESSION["username"] = $row['username'];
$_SESSION['user_id'] = $row['id'];
$_SESSION['user_ip'] = $user_ip;
$_SESSION['session_id'] = $session_id;
if ($row['block'] == 1)
{
echo 'Je bent geblokkeerd, je kunt niet meer inloggen!';
}
else
{
//Inloggen gelukt!!
echo '<script language="JavaScript">
<!--
window.location="index2.php";
//-->
</script>';
}
$q2 = "
INSERT INTO
sessions
(
user_id,
session_id,
user_ip
)
VALUES
(
'".$row['id']."',
'".$session_id."',
'".$user_ip."'
)
";
}
if (!$Mysqli->query ($q2) )
{
echo 'Er is een fout opgetreden!'. $Mysqli->error;
}
}
else
{
echo 'Gebruikersnaam of wachtwoord onjuist, probeer het opnieuw!';
}
}
else
{
?>
<html>
<head>
<title>HVMade CMS</title>
<style type="text/css">
<!--
body {
margin-top: 200px;
}
-->
</style>
</head>
<body>
<?php
if(isset($_GET['error']))
{
if($_GET['error'] == 'sess')
{
echo 'De sessie is ongeldig! Log aub opnieuw in!<p>';
}
}
?>
<div align="center"><div style="background-image:url(img/login.jpg); width:340px; height:150px; text-align:left; padding-top:50px; padding-left:10px;">
<form method='post'>
<table>
<tr>
<td>Gebruikersnaam:</td>
<td><input type='text' name='gebruikersnaam'></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input type='password' name='wachtwoord'></td>
</tr>
<tr>
<td><input type='submit' name='submit' value='Login'></td>
</tr>
</table>
</form>
</div></div>
</body>
</html>
<?php
}
?>
Check script bovenaan elke pagina :
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
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
<?php
session_start();
if(!isset($_SESSION['session_id'])){
header("location: " . 'index.php');
}
include 'conn.php';
ini_set('display_errors', 0);
$q1 = "
SELECT
id
FROM
sessions
WHERE
session_id = '".$_SESSION['session_id']."'
AND
user_ip = '".$_SERVER['REMOTE_ADDR']."'
AND
user_id = '".$_SESSION['user_id']."'
";
if(!$r1 = $Mysqli->query($q1))
{
echo 'Er is een fout opgetreden!. '. $Mysqli->error;
}
elseif($Mysqli->affected_rows == 0)
{
//sessie niet gevonden
header("location: " . 'index.php');
}
?>
session_start();
if(!isset($_SESSION['session_id'])){
header("location: " . 'index.php');
}
include 'conn.php';
ini_set('display_errors', 0);
$q1 = "
SELECT
id
FROM
sessions
WHERE
session_id = '".$_SESSION['session_id']."'
AND
user_ip = '".$_SERVER['REMOTE_ADDR']."'
AND
user_id = '".$_SESSION['user_id']."'
";
if(!$r1 = $Mysqli->query($q1))
{
echo 'Er is een fout opgetreden!. '. $Mysqli->error;
}
elseif($Mysqli->affected_rows == 0)
{
//sessie niet gevonden
header("location: " . 'index.php');
}
?>
Ook op regel 36 zeg je: elseif($Mysqli->affected_rows == 1)
Dus je verwacht maar 1 record dat retour komt, geen while lus nodig dan.
Gewijzigd op 13/11/2012 14:57:33 door Chris PHP
Zoals gezegt heb ik dit script zo gedownload. Zou dit het probleem kunnen oplossen ? En zo ja, hoe kan ik dit dan het beste aanpassen ?
Op regel 56 comment je je redirect uit.
Redirect :
error :
Quote:
Warning: Cannot modify header information - headers already sent by (output started at /home/site/domains/site.nl/public_html/beta/cms/index.php:1) in /home/site/domains/site.nl/public_html/beta/cms/index.php on line 55
Toevoeging op 13/11/2012 22:54:54:
Het ligt duidelijk aan de redirect. Hoe kan ik dit het beste aanpakken dat het goed werkt ? Met javascript of metatags refresh werkt niet
Je header is zoiezo fout hoe het daar staat. Zo gebruik je de header:
Gewijzigd op 14/11/2012 09:23:10 door Chris PHP
Chris NVT op 14/11/2012 09:22:32:
Tja dat krijg je nu wanneer je scriptjes gaat downloaden en niet zelf schrijft. Je bent langer bezig met het uitzoeken en 'customsizen' op je eigen omgeving, dan wanneer je het zelf zou schrijven en ook weet wat er gebeurd.
Je header is zoiezo fout hoe het daar staat. Zo gebruik je de header:
Je header is zoiezo fout hoe het daar staat. Zo gebruik je de header:
Ook dan zul je (waarschijnlijk) de zelfde error krijgen ;)
Stefan van den Broek op 14/11/2012 09:36:28:
Ook dan zul je (waarschijnlijk) de zelfde error krijgen ;)
Chris NVT op 14/11/2012 09:22:32:
Tja dat krijg je nu wanneer je scriptjes gaat downloaden en niet zelf schrijft. Je bent langer bezig met het uitzoeken en 'customsizen' op je eigen omgeving, dan wanneer je het zelf zou schrijven en ook weet wat er gebeurd.
Je header is zoiezo fout hoe het daar staat. Zo gebruik je de header:
Je header is zoiezo fout hoe het daar staat. Zo gebruik je de header:
Ook dan zul je (waarschijnlijk) de zelfde error krijgen ;)
Tja daar zul je gelijk in hebben, echter corrigeer ik hem op de foutive syntax ;)
Dat is waar het is zeker een verbeterpunt.