Een parameter overal in code beschikbaar krijgen
If lees de variabele uit met $seizoen = $_GET[“id”]; hoe kan ik de $seizoen overal, functies etc. Beschikbaar houden? Wellicht een domme vraag. Maar ik ben benieuwd.
Wat makkelijk verifieerbaar is door de variabele overal te gebruiken.
Ik ga het gewoon even testen dan. Ik dacht dat wellicht moet je een variabele als globaal defenieren om hem overal te hebben.
Jan te Pas op 19/08/2017 10:35:31:
Ik dacht dat wellicht moet je een variabele als globaal defenieren om hem overal te hebben.
Daarom moet je het ook niet kopiëren. De nieuwe variabele $seizoen heeft global nodig in functies, maar $_GET[“id”] is overal bekend.
Dank voor de hulp. Ik moet het gewoon gaan proberen.
wilt doen kun je evt. nog overwegen om een functie aan te maken (die je dus overal 'zomaar' aan kunt roepen):
Als je niet in elke functie Code (php)
1
2
3
4
5
2
3
4
5
function seizoen(){
return $_GET["id"];
//of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
//of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
return $_GET["id"];
//of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
//of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
Gewijzigd op 19/08/2017 12:11:32 door Rob Doemaarwat
Als ik de eerste keer de aanroep doe, dan wordt om een wachtwoord gevraagd, vervolgens wordt de parameter niet goed opgenomen
Als ik ingelogd ben geweest, er staat dan een cookie, dan wordt wel de parameter gebruikt.
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
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
<?
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//
//Use this only if you want to password protect your tips.
$password="2017-tips";
/*
*/
// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";
// If a password is set, they must login to view tips
If($password) {
//Verify the credentials.
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_hash) {
setcookie("vakUploader",$password_hash);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
//Show the authentication form
If($_COOKIE['vakUploader']!=$password_hash) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="\r<br>\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"95%\" class=\"table_body\"> Wachtwoord : <input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Login \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
} // If Password
// Dont allow submit if $password_form has been populated
If(($_POST['submit']==true) AND ($password_form=="")) {
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = ($_GET['id']);
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
if ($seizoen == "lente") {
include'lente.txt';
} else {
if ($seizoen == "zomer") {
include'zomer.txt';
} else
if ($seizoen == "herfst") {
include'herfst.txt';
} else {
if ($seizoen == "winter") {
include'winter.txt';
} else {
include'niets.txt';
}
}
}
}
If($password_form) {
Echo $password_form;
}else {
//<!-- htmltest; -->
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = ($_GET['id']);
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
if ($seizoen == "lente") {
include'lente.txt';
} else {
if ($seizoen == "zomer") {
include'zomer.txt';
} else
if ($seizoen == "herfst") {
include'herfst.txt';
} else {
if ($seizoen == "winter") {
include'winter.txt';
} else {
include'niets.txt';
}
}
}
//?<php
}
?>
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//
//Use this only if you want to password protect your tips.
$password="2017-tips";
/*
*/
// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";
// If a password is set, they must login to view tips
If($password) {
//Verify the credentials.
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_hash) {
setcookie("vakUploader",$password_hash);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
//Show the authentication form
If($_COOKIE['vakUploader']!=$password_hash) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="\r<br>\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"95%\" class=\"table_body\"> Wachtwoord : <input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Login \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
} // If Password
// Dont allow submit if $password_form has been populated
If(($_POST['submit']==true) AND ($password_form=="")) {
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = ($_GET['id']);
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
if ($seizoen == "lente") {
include'lente.txt';
} else {
if ($seizoen == "zomer") {
include'zomer.txt';
} else
if ($seizoen == "herfst") {
include'herfst.txt';
} else {
if ($seizoen == "winter") {
include'winter.txt';
} else {
include'niets.txt';
}
}
}
}
If($password_form) {
Echo $password_form;
}else {
//<!-- htmltest; -->
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = ($_GET['id']);
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
if ($seizoen == "lente") {
include'lente.txt';
} else {
if ($seizoen == "zomer") {
include'zomer.txt';
} else
if ($seizoen == "herfst") {
include'herfst.txt';
} else {
if ($seizoen == "winter") {
include'winter.txt';
} else {
include'niets.txt';
}
}
}
//?<php
}
?>
Een test staat op vakantie.pe.hu/seizoen.php?id=zomer
wachtwoord=2017-tips
Als je deze pagina oproept met parameter en je moet inloggen, dan gaat er iets niet goed
zou ik dit met de function kunnen afvangen?
Als vast dank!
Waar zou $_POST['submit'] vandaan moeten komen? Zit namelijk niet in het formulier.
In het formulier zit wel een <input type="submit".. Ik wil zeker zijn
switch gebruiken om te kijken wat $seizoen voor waarde is.
Nu heb je een onleesbare brei aan if-else statements.
Verder is md5() ook meer echt van de tijd voor het hashen van wachtwoorden. Gebruik liever password_hash en password_verify.
Je kan ook prima een elseif of een Nu heb je een onleesbare brei aan if-else statements.
Verder is md5() ook meer echt van de tijd voor het hashen van wachtwoorden. Gebruik liever password_hash en password_verify.
Gewijzigd op 19/08/2017 13:59:58 door - Ariën -
Hi Ariën, goede tip. Ga ik doen. Maar het haalt probleem nog niet weg..
Jan te Pas op 19/08/2017 13:59:23:
In het formulier zit wel een <input type="submit".. Ik wil zeker zijn
Ja, maar dan wel zonder name="...", dus niet in $_POST.
Toevoeging op 19/08/2017 15:37:42:
Hallo allen,
De hash moet ik nog gaan aanpassen. Ik heb de nieuwe 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<?
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//
//Use this only if you want to password protect your tips.
$password="2017-tips";
/*
*/
// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";
function seizoen(){
return ($_GET["id"]);
//of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
//of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
// If a password is set, they must login to view tips
If($password) {
//Verify the credentials.
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_hash) {
setcookie("vakUploader",$password_hash);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
//Show the authentication form
If($_COOKIE['vakUploader']!=$password_hash) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="\r<br>\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"95%\" class=\"table_body\"> Wachtwoord : <input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Login \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
} // If Password
If($password_form) {
Echo $password_form;
}else {
//<!-- htmltest; -->
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = seizoen();
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
switch ($seizoen):
case 'lente':
include'lente.txt';
break;
case 'zomer':
include'zomer.txt';
break;
case 'herfst':
include'herfst.txt';
break;
case 'winter':
include'winter.txt';
default:
include'niets.txt';
endswitch;
}
?>
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<?
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//
//Use this only if you want to password protect your tips.
$password="2017-tips";
/*
*/
// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";
function seizoen(){
return ($_GET["id"]);
//of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
//of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
// If a password is set, they must login to view tips
If($password) {
//Verify the credentials.
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_hash) {
setcookie("vakUploader",$password_hash);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
//Show the authentication form
If($_COOKIE['vakUploader']!=$password_hash) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="\r<br>\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"95%\" class=\"table_body\"> Wachtwoord : <input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Login \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
} // If Password
If($password_form) {
Echo $password_form;
}else {
//<!-- htmltest; -->
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = seizoen();
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
switch ($seizoen):
case 'lente':
include'lente.txt';
break;
case 'zomer':
include'zomer.txt';
break;
case 'herfst':
include'herfst.txt';
break;
case 'winter':
include'winter.txt';
default:
include'niets.txt';
endswitch;
}
?>
En nu toch weer hetzelfde, de parameter, id wordt niet onthouden als ik eerst het wachtwoord heb moeten invullen.
Kortom, graag jullie commentaar.
Gewijzigd op 19/08/2017 16:49:16 door Jan te Pas
Notice: Undefined index: verify_password in /home/u692006842/public_html/seizoen2.php on line 30
De zomertips:
Toevoeging op 19/08/2017 16:04:27:
De test staat op http://vakantie.pe.hu/seizoen3.php?id=lente
Maar verder vraag ik me af waarom je het wachtwoord in de je cookie zet? Dat is nergens voor nodig, en hackers geef je dan ook prees prijs dan ze moeten weten.
Ik zou liever een sessie maken die aangeeft dat je ingelogd bent.
Gewijzigd op 19/08/2017 16:06:56 door - Ariën -
Gewijzigd op 19/08/2017 16:12:09 door Jan te Pas
https://www.w3schools.com/php/php_sessions.asp
Ik raad aan true in de sessie op te slaan als je correct ingelogd bent.
Verder vraag ik me ook af waarom je het wachtwoord vast in je script opslaat? Hoe wil je het veranderen? En hoe wil je voorkomen dat iemand die geen rechten meer heeft niet meer dit gaat raadplegen.
Is een ledensysteem met in- en uitlog geen betere optie?
Klopt, maar ik wil mij een beetje vertrouwd maken, en dit is een eerste stap. En hoop snel te leren. En wachtwoord in code is zeker niet raadzaam. Dank voor jou richting!
$seizoen = seizoen;
Omdat seizoen hier als een constante wordt gezien.
Jij wilt een function aanroepen.
Dat doe je zo:
$seizoen = seizoen();
hoi San The, had ik ook al gezien. Is aangepast, maar ja....