Variabelen meenemen naar volgend scherm
Mijn pagina's zijn nu bijna af maar ik blijf zitten met het volgende probleem:
- In mijn login.php laat ik de gebruiker inloggen en leg daar zijn naam vast door data uit de database op te vragen en samen te voegen. Mijn login.php begint met en SESSION_START. Volgens mijn informatie zouden variabelen hierdoor "meegenomen"naar de volgende pagina's.
Dat blijkt ook wel zo te zijn want op de eerstvolgende pagina, mijn menuoverzicht, wordt de inlogger met zijn naam verwelkomd. Nu wil ik zijn naam ook "meenemen" naar de volgende, gekozen, pagina's. Nu blijkt echter dat de inhoud van dezelfde variabele NIET wordt getond of meegenomen.
De vraag is dus duidelijk: Moet ik de variabelen nog ergens anders declareren of middels een (public)function steeds weer oproepen?
Degewenst kan ik de code nog bij deze vraag op het forum plaatsen.
George
Altijd beginnen met session_start().
Ook bij de "volgende" pagina's?
Ja
Wel altijd maar één keer, dus niet ook nog in include()'s.
Gewijzigd op 06/06/2011 19:40:23 door - SanThe -
Code login.php
(Het gaat om de variabele $cVoll_naam
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php
error_reporting(0);
session_start();
function get_ip()
{
if(@$_SERVER['HTTP_X_FORWARDED_FOR'])
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(@$_SERVER['HTTP_CLIENT_IP'])
{
return $_SERVER['HTTP_CLIENT_IP'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}
if (isset($_POST['actie'])) {
$emailadres = $_POST['e']; // E-mailadres lezen uit formulierveld 'e'
$paswoord = $_POST['w']; // Paswoord lezen uit formulierveld 'w'
$emailadres = trim(strip_tags($emailadres)); // HTML-tags en PHP-code verwijderen
$paswoord = trim(strip_tags($paswoord)); // HTML-tags en PHP-code verwijderen
$melding = "xx ";
$nieuwe_pagina = "keuzescherm mijnsjouk.php";
if (strlen($emailadres) > 50) {
$melding = "Fout e-mail adres ";
} else {
require_once('is_email.inc.php'); // Functie is_email() insluiten
if (is_email($emailadres)) { // E-mailadres controleren met de functie is_email()
$actie = $_POST['actie']; // Uit te voeren actie bepalen
if ($actie === "Inloggen" ) {
// SQL-query defini�ren:
if ($actie == "Inloggen") {
$sql = "SELECT * FROM vrijwilligers WHERE email='" . $_POST["e"] ."' AND wachtwoord='". $_POST["w"]. "' AND vrijwilliger = 'Ja'"; }
$ip = get_ip();
$sql2 = "INSERT INTO logfile ( email,ingelogd,ingang,ipadres)";
$sql2 .= "VALUES ('$emailadres',NOW(),'MijnSjouk','$ip');";
// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
// Database vrijwilligers selecteren:
mysql_select_db("mijn database") or die("Kon de database niet openen: " . mysql_error());
// Query zonder resultaatset uitvoeren:
$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
$row=mysql_fetch_array($result);
if(!empty($row)){
$cVoll_naam = $row['roepnaam']." ".$row['tussenvoeg']." ".$row['naam'];
$emailadres = $_POST["e"];
$wachtwoord = $_POST["w"];
session_register("emailadres");
session_register("wachtwoord");
session_register("cVoll_naam");
[/code]
In het volgend fragment is de inhoud van $cVoll_naam nog te zien:
[code]
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="../css/sjouk.css" />
<meta http-equiv="Content-Language" content="nl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sjouk.nl | Keuzescherm Beheer</title>
<style type="text/css">
.style1 {
width: 1000px;
border: 1px solid #FF00FF;
background-image: url('../Html/Background.jpg');
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: smaller;
}
</style>
<base target="_self" />
</head>
<body style="margin-left: 0px; margin-top: 0px">
<table align="center" width="1000" border="0">
<tr>
<td align="center" class="header_overzicht">[code]<?php echo "Welkom ".$cVoll_naam ;?></td>
</tr>
</table>
In de hierna gekozen pagina's is de variabele $cVoll_naam niet (meer) te zien
<?php
/**
* @author George van Baasbank
* @copyright 2011
*/
session_start();
if (isset($_POST['actie'])) {
$emailadresww = $_POST['loginnaam']; // E-mailadres lezen uit formulierveld (loginnaam)
$paswoordoud = $_POST['oud_wachtwoord']; // Oude paswoord lezen uit formulierveld (oud_wachtwoord)
$paswoordnieuw = $_POST['nw_wachtwoord']; // Nieuwe paswoord lezen uit formulierenveld (nw_wachtwoord))
$emailadresww = strip_tags(trim($emailadresww)); // HTML-tags, psatie en PHP-code verwijderen
$paswoordoud = strip_tags(trim($paswoordoud)); // HTML-tags, psatie en PHP-code verwijderen
$paswoordnieuw = strip_tags(trim($paswoordnieuw)); // HTML-tags, psatie en PHP-code verwijderen
$melding = "xx ";
$nieuwe_pagina = "keuzescherm mijnsjouk.php";
if (strlen($emailadres) > 50) {
$melding = "Fout e-mail adres ";
} else {
require_once('is_email.inc.php'); // Functie is_email() insluiten
if (is_email($emailadres)) { // E-mailadres controleren met de functie is_email()
$actie = $_POST['actie']; // Uit te voeren actie bepalen
if ($actie === "Wijzigen" ) {
// SQL-query definiëren
if ($actie == "Wijzigen") {
$sql = "UPDATE vrijwilligers SET wachtwoord = '$paswoordnieuw' WHERE email = '$emailadresww' AND wachtwoord= '$paswoordoud' ";
// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
// Database vrijwilligers selecteren:
mysql_select_db("md199125db167333") or die("Kon de database niet openen: " . mysql_error());
// Query zonder resultaatset uitvoeren:
$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
include("$nieuwe_pagina");
exit(); }
}
}
}
}
?>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Language" content="nl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Wijzigen wachtwoord</title>
<style type="text/css"></style>
<link rel="stylesheet" type="text/css" href="../css/sjouk.css" />
</head>
<body style="margin-left: 0px; margin-top: 0px">
<table align="center" width="1000" border="0">
<tr>
<td align="center" class="header_overzicht"><?php echo "Wijzigen wachtwoord van".$cVoll_naam ;?></td>
</tr>
</table>
error_reporting(0);
session_start();
function get_ip()
{
if(@$_SERVER['HTTP_X_FORWARDED_FOR'])
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(@$_SERVER['HTTP_CLIENT_IP'])
{
return $_SERVER['HTTP_CLIENT_IP'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}
if (isset($_POST['actie'])) {
$emailadres = $_POST['e']; // E-mailadres lezen uit formulierveld 'e'
$paswoord = $_POST['w']; // Paswoord lezen uit formulierveld 'w'
$emailadres = trim(strip_tags($emailadres)); // HTML-tags en PHP-code verwijderen
$paswoord = trim(strip_tags($paswoord)); // HTML-tags en PHP-code verwijderen
$melding = "xx ";
$nieuwe_pagina = "keuzescherm mijnsjouk.php";
if (strlen($emailadres) > 50) {
$melding = "Fout e-mail adres ";
} else {
require_once('is_email.inc.php'); // Functie is_email() insluiten
if (is_email($emailadres)) { // E-mailadres controleren met de functie is_email()
$actie = $_POST['actie']; // Uit te voeren actie bepalen
if ($actie === "Inloggen" ) {
// SQL-query defini�ren:
if ($actie == "Inloggen") {
$sql = "SELECT * FROM vrijwilligers WHERE email='" . $_POST["e"] ."' AND wachtwoord='". $_POST["w"]. "' AND vrijwilliger = 'Ja'"; }
$ip = get_ip();
$sql2 = "INSERT INTO logfile ( email,ingelogd,ingang,ipadres)";
$sql2 .= "VALUES ('$emailadres',NOW(),'MijnSjouk','$ip');";
// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
// Database vrijwilligers selecteren:
mysql_select_db("mijn database") or die("Kon de database niet openen: " . mysql_error());
// Query zonder resultaatset uitvoeren:
$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
$row=mysql_fetch_array($result);
if(!empty($row)){
$cVoll_naam = $row['roepnaam']." ".$row['tussenvoeg']." ".$row['naam'];
$emailadres = $_POST["e"];
$wachtwoord = $_POST["w"];
session_register("emailadres");
session_register("wachtwoord");
session_register("cVoll_naam");
[/code]
In het volgend fragment is de inhoud van $cVoll_naam nog te zien:
[code]
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="../css/sjouk.css" />
<meta http-equiv="Content-Language" content="nl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sjouk.nl | Keuzescherm Beheer</title>
<style type="text/css">
.style1 {
width: 1000px;
border: 1px solid #FF00FF;
background-image: url('../Html/Background.jpg');
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: smaller;
}
</style>
<base target="_self" />
</head>
<body style="margin-left: 0px; margin-top: 0px">
<table align="center" width="1000" border="0">
<tr>
<td align="center" class="header_overzicht">[code]<?php echo "Welkom ".$cVoll_naam ;?></td>
</tr>
</table>
In de hierna gekozen pagina's is de variabele $cVoll_naam niet (meer) te zien
<?php
/**
* @author George van Baasbank
* @copyright 2011
*/
session_start();
if (isset($_POST['actie'])) {
$emailadresww = $_POST['loginnaam']; // E-mailadres lezen uit formulierveld (loginnaam)
$paswoordoud = $_POST['oud_wachtwoord']; // Oude paswoord lezen uit formulierveld (oud_wachtwoord)
$paswoordnieuw = $_POST['nw_wachtwoord']; // Nieuwe paswoord lezen uit formulierenveld (nw_wachtwoord))
$emailadresww = strip_tags(trim($emailadresww)); // HTML-tags, psatie en PHP-code verwijderen
$paswoordoud = strip_tags(trim($paswoordoud)); // HTML-tags, psatie en PHP-code verwijderen
$paswoordnieuw = strip_tags(trim($paswoordnieuw)); // HTML-tags, psatie en PHP-code verwijderen
$melding = "xx ";
$nieuwe_pagina = "keuzescherm mijnsjouk.php";
if (strlen($emailadres) > 50) {
$melding = "Fout e-mail adres ";
} else {
require_once('is_email.inc.php'); // Functie is_email() insluiten
if (is_email($emailadres)) { // E-mailadres controleren met de functie is_email()
$actie = $_POST['actie']; // Uit te voeren actie bepalen
if ($actie === "Wijzigen" ) {
// SQL-query definiëren
if ($actie == "Wijzigen") {
$sql = "UPDATE vrijwilligers SET wachtwoord = '$paswoordnieuw' WHERE email = '$emailadresww' AND wachtwoord= '$paswoordoud' ";
// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
// Database vrijwilligers selecteren:
mysql_select_db("md199125db167333") or die("Kon de database niet openen: " . mysql_error());
// Query zonder resultaatset uitvoeren:
$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
include("$nieuwe_pagina");
exit(); }
}
}
}
}
?>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Language" content="nl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Wijzigen wachtwoord</title>
<style type="text/css"></style>
<link rel="stylesheet" type="text/css" href="../css/sjouk.css" />
</head>
<body style="margin-left: 0px; margin-top: 0px">
<table align="center" width="1000" border="0">
<tr>
<td align="center" class="header_overzicht"><?php echo "Wijzigen wachtwoord van".$cVoll_naam ;?></td>
</tr>
</table>
Gewijzigd op 06/06/2011 19:48:06 door George van Baasbank
De functie session_register() is antiek, gebruik de superglobal $_SESSION.
Ik ga nu op onderzoek om het sql-lek op te sporen
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT *
FROM vrijwilligers
WHERE email='" . mysql_real_escape_string($_POST["e"]) ."'
AND wachtwoord='". md5($_POST["w"]). "'
AND vrijwilliger = 'Ja'
";
?>
$sql = "SELECT *
FROM vrijwilligers
WHERE email='" . mysql_real_escape_string($_POST["e"]) ."'
AND wachtwoord='". md5($_POST["w"]). "'
AND vrijwilliger = 'Ja'
";
?>
Wachtwoord is hier beveiligd met md5().
Deze beveiliging moet je in alle query's doen.
Gewijzigd op 06/06/2011 20:21:12 door - SanThe -
Bedankt voor jullie support en kennis. Ik ga er mee aan de slag
George
Toevoeging op 07/06/2011 15:49:05:
SanThe,
Ik heb jouw code gebruikt in mijnroutine om het wachtwoord te wijzigen en op te slaan en gebruikt in mijn inlogscript.
Nu kan ik echter niet meer inloggen. Kijk ik in de database dan zie ik wel een versleuteld wachtwoord maar vanuit mijn inlogscript kan ik er niet meer bij.
De codes zijn achtereenvolgend van mijn inlogscript en het script voor het wijzigen van het wachtwoord. (Wellicht is de syntax bij het UPDATE iets anders dan bij SELECT)
Hieronder de code gebruikt in het inlogscript:
Code (php)
1
2
3
2
3
if ($actie == "Inloggen") {
$sql = "SELECT * FROM vrijwilligers WHERE email='" . mysql_real_escape_string($_POST["e"]) ."'
AND wachtwoord='". md5($_POST["w"]). "' AND vrijwilliger = 'Ja' "; }
$sql = "SELECT * FROM vrijwilligers WHERE email='" . mysql_real_escape_string($_POST["e"]) ."'
AND wachtwoord='". md5($_POST["w"]). "' AND vrijwilliger = 'Ja' "; }
Hieronder de code gebruikt bij het wijzigen van het wachtwoord:
Code (php)
1
2
3
2
3
if ($actie == "Wijzigen") {
$sql = "UPDATE vrijwilligers SET wachtwoord = '".md5($paswoordnieuw)."' WHERE email = '$emailadresww' AND wachtwoord= '$paswoordoud' ";
$sql = "UPDATE vrijwilligers SET wachtwoord = '".md5($paswoordnieuw)."' WHERE email = '$emailadresww' AND wachtwoord= '$paswoordoud' ";
Gewijzigd op 07/06/2011 15:50:36 door George van Baasbank