cookie en function combi werkt niet
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
// versie 25 oktober 2006
// Error rapporting E_ALL voor in de testfase ,daarna op 0 zetten voor online productie
error_reporting(E_ALL);
// error_reporting(0);
// Hier de default html opmaak/kop voor alle pagina's
function enquete_head()
{
header("Expires: Sun, 11 Apr 1999 08:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0", FALSE);
header("Pragma: no-cache");
?>
// versie 25 oktober 2006
// Error rapporting E_ALL voor in de testfase ,daarna op 0 zetten voor online productie
error_reporting(E_ALL);
// error_reporting(0);
// Hier de default html opmaak/kop voor alle pagina's
function enquete_head()
{
header("Expires: Sun, 11 Apr 1999 08:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0", FALSE);
header("Pragma: no-cache");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>mini_onderzoek</title>
<style>
body {
font-family: Arial, sans-serif;
font-size: 12px;
font-color: black;
background-color:#66FFCC;
margin-top: 15px;
}
input {
font-family: Arial, sans-serif;
font-size: 12px;
width: 300px;
}
.inputsmall {
font-family: Arial, sans-serif;
font-size: 12px;
width: 160px;
}
select {
font-family: Arial, sans-serif;
font-size: 12px;
width: 310px;
}
textarea {
font-family: Arial, sans-serif;
font-size: 12px;
width: 310px;
height: 60px;
}
.style1 {color: #770000}
</style>
</head>
<body>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
// dit is de uitlog knop via logout.php gaat die gewoon weer naar de start van de webpage
echo "
<form action='logout.php' method='post'>
<input type='submit' name='submit' value='Dit scherm sluiten' class='inputsmall' > </form>";
?>
// dit is de uitlog knop via logout.php gaat die gewoon weer naar de start van de webpage
echo "
<form action='logout.php' method='post'>
<input type='submit' name='submit' value='Dit scherm sluiten' class='inputsmall' > </form>";
?>
<table border=0 width=650>
<tr>
<td valign="top" width=50>
</td>
<td width="650" valign="top">
</td>
</tr>
</table>
<!--
Code (php)
</body>
</html>
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
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
<?php
}
// Einde default html opmaak/kop voor alle pagina's
//*******************************************************
// Hier begint het script
function vragen_mini_onderzoek ($submit="", $antwoord="", $gestemd="")
{
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) { setcookie("gestemd","ja",time()+60); }
echo "<h2> Mini onderzoek, doe mee !</h2>\n";
echo "<h3><i> Vraag: Dit soort enquetes zijn erg stom. </i></h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
// dit is de tabel met de knopjes
echo "<table width=\"500\"
border=\"0\"
cellpadding=\"0\"
align=\"left\"
bgColor=\"\">";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Mee eens";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Mee oneens";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Geen mening";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"2\">\n";
echo "</td>";
echo "</tr>";
echo "</table><br>";
echo "<p> </p>";// einde van de tabel
echo "<br><br>\n";
if (empty($submit) && empty($gestemd) && empty($HTTP_COOKIE_VARS["gestemd"])) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" class='inputsmall' \n";
echo "<br>";
} else {
echo "<font color=\"#FF0000\" size=\"+1\">Bedankt voor je stem !</font><br><br>";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd"]))
{
$result="mini_onderzoek_result.txt";
$pointer=fopen($result,"r+");
$peiling=fread($pointer,filesize($result));
$peiling=trim($peiling);
$peiling=explode(",",$peiling);
$peiling[$_POST["antwoord"]]++;
$peiling=$peiling[0] . "," . $peiling[1] . "," . $peiling[2];
rewind($pointer);
fputs($pointer,$peiling);
fclose($pointer);
echo "</form> <br>";
echo "<p>[ <a href=\"mini_onderzoek_uitslag.php\">Bekijk de resultaten van de peiling</a>]</p><br>\n"; // test knop kan later weg
// dit is de info knop mbt de uitslag van het mini onderzoek
echo "<form action=\"mini_onderzoek_uitslag.php\" method=\"post\">\n";
echo "<input name=\"submit\" type=\"submit\" value=\"Uitslag mini onderzoek\" class='inputsmall' \n";
echo "</form> <br>";
}
}
}
// Genereer nu de header voor de paginas
enquete_head();
vragen_mini_onderzoek ();
// Genereer nu de footer voor de paginas
enquete_foot();
?>
}
// Einde default html opmaak/kop voor alle pagina's
//*******************************************************
// Hier begint het script
function vragen_mini_onderzoek ($submit="", $antwoord="", $gestemd="")
{
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) { setcookie("gestemd","ja",time()+60); }
echo "<h2> Mini onderzoek, doe mee !</h2>\n";
echo "<h3><i> Vraag: Dit soort enquetes zijn erg stom. </i></h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
// dit is de tabel met de knopjes
echo "<table width=\"500\"
border=\"0\"
cellpadding=\"0\"
align=\"left\"
bgColor=\"\">";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Mee eens";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Mee oneens";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "Geen mening";
echo "</td>";
echo "<td width=\"200\" align=\"left\" valign=\"middle\">";
echo "<input type=\"radio\" name=\"antwoord\" value=\"2\">\n";
echo "</td>";
echo "</tr>";
echo "</table><br>";
echo "<p> </p>";// einde van de tabel
echo "<br><br>\n";
if (empty($submit) && empty($gestemd) && empty($HTTP_COOKIE_VARS["gestemd"])) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" class='inputsmall' \n";
echo "<br>";
} else {
echo "<font color=\"#FF0000\" size=\"+1\">Bedankt voor je stem !</font><br><br>";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd"]))
{
$result="mini_onderzoek_result.txt";
$pointer=fopen($result,"r+");
$peiling=fread($pointer,filesize($result));
$peiling=trim($peiling);
$peiling=explode(",",$peiling);
$peiling[$_POST["antwoord"]]++;
$peiling=$peiling[0] . "," . $peiling[1] . "," . $peiling[2];
rewind($pointer);
fputs($pointer,$peiling);
fclose($pointer);
echo "</form> <br>";
echo "<p>[ <a href=\"mini_onderzoek_uitslag.php\">Bekijk de resultaten van de peiling</a>]</p><br>\n"; // test knop kan later weg
// dit is de info knop mbt de uitslag van het mini onderzoek
echo "<form action=\"mini_onderzoek_uitslag.php\" method=\"post\">\n";
echo "<input name=\"submit\" type=\"submit\" value=\"Uitslag mini onderzoek\" class='inputsmall' \n";
echo "</form> <br>";
}
}
}
// Genereer nu de header voor de paginas
enquete_head();
vragen_mini_onderzoek ();
// Genereer nu de footer voor de paginas
enquete_foot();
?>
Met
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
Maak je het jezelf erg moeilijk, nu weet je in de rest van het script niet meer waar de gegevens vandaan komen. Dit is vragen om veiligheidsproblemen. Zolang je niets hebt veranderd aan de inhoud van een variabele, gebruik je de originele naam.
Het is.. zeg maar.. een oud gejat script?
Ik heb gewoon een beginners boekje gekocht: Php 5 door S. Terryn, Daar heb ik de basis van het script uit gehaald, dat noem ik niet gejat!. En voorin staat uitgave 2006 en denk dan als beginner dat dit recente script methode omvat. Misschien is de schrijver van Romeinse afkomst? Veiligheid is overigens geen hot isue is slechts fun mini enquete.
Sorry, was niet bedoeld je aan te vallen. Maar php5?, volgens mij heeft frank gelijk als hij zegt dat HTTP_COOKIE_VARS nogal oud is.
Quote:
Daar gaan we weer... Iedere programmeur hoort te beginnen met het besef dat alles draait om veiligheid. En foutafhandeling. Dat is de basis van ieder goed systeem. Wanneer je nu al begint te roepen dat dit er niet toe doet, zul je (ook later) nooit in staat zijn om een goed systeem te maken. Je krijgt een instelling van 'Oh ja, ik zou eigenlijk nog iets aan veiligheid moeten doen, komt morgen wel...'. En dan weet je het wel, dat komt nooit meer!Veiligheid is overigens geen hot isue is slechts fun mini enquete.
Cookie probleem lijk ik overigens nu zelf opgelost te hebben door enquete_head in de functie vragen_mini_onderzoek te plaatsten! zo dus:
function vragen_mini_onderzoek ($submit="", $antwoord="", $gestemd="") {
if (isset($submit)) { setcookie("gestemd","ja",time()+60); }
enquete_head () ;
echo "<h2> Mini onderzoek, doe mee !</h2>\n";
echo "<h3><i> Vraag: Dit soort enquetes zijn erg stom. </i></h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
// dit is de tabel met de knopjes
etc etc
$submit is een alias van het origineel $_POST["submit"]. Echter, zolang je niets hebt veranderd aan de inhoud van $_POST["submit"], dan is het zinloos om een copy aan te maken. Er is toch niets mis met het origineel?
In dit geval gaat het om $_POST["submit"], wat gewoon een button is en niets voorstelt, maar met $antwoord weet jij niet of je hier al iets van beveiliging of controle op hebt uitgevoerd. Je zult dan dus alsnog moeten controleren of $antwoord gelijk is aan $_POST["antwoord"]. En dat is zinloos. Had je geen kopie gemaakt, dan had je in 1x kunnen zien dat $_POST["antwoord"] onbewerkte data is, afkomstig uit een formulier en verzonden met een POST. Dat is dus zeker 100x duidelijker. Dit maakt in een lullig scriptje van 100 regeltjes misschien niet veel uit, maar met een uitgebreide applicatie waar je met meerdere mensen aan werkt, maakt dit een verschil van dag en nacht.
Opmerking: $_SERVER[PHP_SELF] is fout, dit moet zijn $_SERVER['PHP_SELF'], dus met quotes. Check ook even de html-broncode of het er dan wel goed staat.
Even voor de volledigheid ,voor wie het nog zou willen nalezen even het script zoals ie nu is:
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
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
<?php
function vragen_mini_onderzoek () {
if (isset($_POST["submit"])) { setcookie("gestemd","ja",time()+60); }
enquete_head () ;
echo "<h2> Mini onderzoek, doe mee !</h2>\n";
echo "<h3><i> De Vragen. </i></h3>\n";
// etc vragen knopjes
if (empty($_POST["submit"]) && empty($_COOKIE["gestemd"]) && empty($_POST["antwoord"])) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" class='inputsmall' \n";
echo "<br>";
} else {
echo "<font color=\"#FF0000\" size=\"+1\">Bedankt voor je stem !</font><br><br>";
if (isset($_POST["submit"]) && isset($_POST["antwoord"]) && empty($_COOKIE["gestemd"]))
{
$result="mini_onderzoek_result.txt";
$pointer=fopen($result,"r+");
$peiling=fread($pointer,filesize($result));
$peiling=trim($peiling);
$peiling=explode(",",$peiling);
$peiling[$_POST["antwoord"]]++;
$peiling=$peiling[0] . "," . $peiling[1] . "," . $peiling[2];
rewind($pointer);
fputs($pointer,$peiling);
fclose($pointer);
echo "</form> <br>";
}
}
echo "<p>[ <a href=\"mini_onderzoek_uitslag.php\">Bekijk de resultaten van de peiling</a>]</p><br>\n"; // test knop kan later weg
enquete_foot();
}
vragen_mini_onderzoek ();
?>
function vragen_mini_onderzoek () {
if (isset($_POST["submit"])) { setcookie("gestemd","ja",time()+60); }
enquete_head () ;
echo "<h2> Mini onderzoek, doe mee !</h2>\n";
echo "<h3><i> De Vragen. </i></h3>\n";
// etc vragen knopjes
if (empty($_POST["submit"]) && empty($_COOKIE["gestemd"]) && empty($_POST["antwoord"])) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" class='inputsmall' \n";
echo "<br>";
} else {
echo "<font color=\"#FF0000\" size=\"+1\">Bedankt voor je stem !</font><br><br>";
if (isset($_POST["submit"]) && isset($_POST["antwoord"]) && empty($_COOKIE["gestemd"]))
{
$result="mini_onderzoek_result.txt";
$pointer=fopen($result,"r+");
$peiling=fread($pointer,filesize($result));
$peiling=trim($peiling);
$peiling=explode(",",$peiling);
$peiling[$_POST["antwoord"]]++;
$peiling=$peiling[0] . "," . $peiling[1] . "," . $peiling[2];
rewind($pointer);
fputs($pointer,$peiling);
fclose($pointer);
echo "</form> <br>";
}
}
echo "<p>[ <a href=\"mini_onderzoek_uitslag.php\">Bekijk de resultaten van de peiling</a>]</p><br>\n"; // test knop kan later weg
enquete_foot();
}
vragen_mini_onderzoek ();
?>