Poll wijzigen
Ik was van plan om een eenvoudige poll te maken maar ik stuitte op enkele problemen.
Ik had een script van een site gehaald en die doet het perfect maar de bouwer van het script houd er geen rekening mee dat je meerdere polls/vragen onder elkaar wilt, en de uitkomst van de poll bestaat uit hoeveel mensen er gestemd hebben. (bijvoorbeeld: ja -> balkje met cijfer erachter hoeveel mensen daarop gestemd hebben, nee -> idem. De lengte van de balk is dan natuurlijk afhankelijk van de hoeveelheid stemmen erop)
Nu was mijn vraag: Ik was van plan om meerdere vragen onder elkaar te stellen maar als ik dat doe (script 2x onder elkaar plakken) dan wordt er, als je je stem uitbrent bij een vraag, gelijk ook een stem uitgebracht op alle andere stemmen (in dit geval 1). Hoe verander ik dit?
Mijn 2e vraag is: Hoe krijg ik de resultaat balk (hoeveel stemmen erop zijn uitgebracht) nu zo, dat hij geen cijfers erachter laat zien maar procenten?
Ik hoop dat jullie zo voldoende info hebben voor een goed antwoord ;)
Vriendelijke groeten,
Robin
aan gedacht om elke vraag een id te geven.. en die id mee te nemen in de naam van de velden? vb: $naam = "naam_" . $id;
Iig bedankt voor je snelle reactie.
Komt het script:
-- poll.php
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
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
<?php
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) {
setcookie("gestemd","ja",time()+30);
}
echo "<h1> Onze poll </h1>\n";
echo "<h3>Abstinentie (middelenvrij leven), is een obsessie.</h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "Ja<br>\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "Nee<br>\n";
if (empty($submit) && empty($gestemd) && empty($antwoord)) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\"\n";
}
else {
echo "<p> Bedankt voor uw stem !</p>\n";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd"])) {
$result="result.txt";
$pointer=fopen($result,"r+");
$poll=fread($pointer,filesize($result));
$poll=trim($poll);
$poll=explode(",",$poll);
$poll[$antwoord]++;
$poll=$poll[0] . "," . $poll[1] . "," . $poll[2] . ",";
rewind($pointer);
fputs($pointer,$poll);
fclose($pointer);
}
}
?>
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) {
setcookie("gestemd","ja",time()+30);
}
echo "<h1> Onze poll </h1>\n";
echo "<h3>Abstinentie (middelenvrij leven), is een obsessie.</h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "Ja<br>\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "Nee<br>\n";
if (empty($submit) && empty($gestemd) && empty($antwoord)) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\"\n";
}
else {
echo "<p> Bedankt voor uw stem !</p>\n";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd"])) {
$result="result.txt";
$pointer=fopen($result,"r+");
$poll=fread($pointer,filesize($result));
$poll=trim($poll);
$poll=explode(",",$poll);
$poll[$antwoord]++;
$poll=$poll[0] . "," . $poll[1] . "," . $poll[2] . ",";
rewind($pointer);
fputs($pointer,$poll);
fclose($pointer);
}
}
?>
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
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
<?php
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) {
setcookie("gestemd1","ja",time()+30);
}
echo "<h3>Heb de verslaafde lief, maar verfoei iedere vorm van verslaving.</h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "Ja<br>\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "Nee<br>\n";
if (empty($submit) && empty($gestemd1) && empty($antwoord)) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\"\n";
}
else {
echo "<p> Bedankt voor uw stem !</p>\n";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd1"])) {
$result="result2.txt";
$pointer=fopen($result,"r+");
$poll=fread($pointer,filesize($result));
$poll=trim($poll);
$poll=explode(",",$poll);
$poll[$antwoord]++;
$poll=$poll[0] . "," . $poll[1] . "," . $poll[2] . ",";
rewind($pointer);
fputs($pointer,$poll);
fclose($pointer);
}
}
echo "</form>\n";
echo "<p>[ <a href=\"polluitslag.php\" target=\"_blank\">Bekijk de resultaten van de poll</a>]
</p><br>\n";
?>
$submit=$_POST["submit"];
$antwoord=$_POST["antwoord"];
$gestemd=$HTTP_COOKIE_VARS["gestemd"];
if (isset($submit)) {
setcookie("gestemd1","ja",time()+30);
}
echo "<h3>Heb de verslaafde lief, maar verfoei iedere vorm van verslaving.</h3>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"0\">\n";
echo "Ja<br>\n";
echo "<input type=\"radio\" name=\"antwoord\" value=\"1\">\n";
echo "Nee<br>\n";
if (empty($submit) && empty($gestemd1) && empty($antwoord)) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\"\n";
}
else {
echo "<p> Bedankt voor uw stem !</p>\n";
if (isset($submit) && isset($antwoord) && empty($HTTP_COOKIE_VARS["gestemd1"])) {
$result="result2.txt";
$pointer=fopen($result,"r+");
$poll=fread($pointer,filesize($result));
$poll=trim($poll);
$poll=explode(",",$poll);
$poll[$antwoord]++;
$poll=$poll[0] . "," . $poll[1] . "," . $poll[2] . ",";
rewind($pointer);
fputs($pointer,$poll);
fclose($pointer);
}
}
echo "</form>\n";
echo "<p>[ <a href=\"polluitslag.php\" target=\"_blank\">Bekijk de resultaten van de poll</a>]
</p><br>\n";
?>
-- polluitslag.php
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
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
<?php
echo "<h2>Uitslag van de poll</h2>\n";
$result="result.txt";
$pointer=fopen($result,"r");
$poll=fread($pointer,filesize($result));
fclose($pointer);
$poll=explode(",",$poll);
$totaal=$poll[0]+$poll[1];
$barlengte=100;
$barlengte0=$poll[0]*$barlengte/$totaal;
$barlengte1=$poll[1]*$barlengte/$totaal;
$barlengte0=round($barlengte0);
$barlengte1=round($barlengte1);
## test # echo "$barlengte0 $barlengte1 de verschillende lengten<br>\n";
echo "<h2><i>$totaal personen hebben reeds gestemd</i></h2>";
echo "<br>\n";
echo "<table>\n";
echo "</table><br><br>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 1</strong></td>\n";
echo "<td> </td><td width=\"$barlengte0\" bgcolor=\"blue\"> </td><td> <i>$poll[0]</td></tr>\n";
echo "</table>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 2</strong></td>\n";
echo "<td> </td><td width=\"$barlengte1\" bgcolor=\"green\"> </td><td> <i>$poll[1]</td></tr>\n";
echo "</table>\n";
$result="result2.txt";
$pointer=fopen($result,"r");
$poll=fread($pointer,filesize($result));
fclose($pointer);
$poll=explode(",",$poll);
$totaal=$poll[0]+$poll[1];
$barlengte=100;
$barlengte0=$poll[0]*$barlengte/$totaal;
$barlengte1=$poll[1]*$barlengte/$totaal;
$barlengte0=round($barlengte0);
$barlengte1=round($barlengte1);
## test # echo "$barlengte0 $barlengte1 de verschillende lengten<br>\n";
echo "<h2><i>$totaal personen hebben reeds gestemd</i></h2>";
echo "<br>\n";
echo "<table>\n";
echo "</table><br><br>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 1</strong></td>\n";
echo "<td> </td><td width=\"$barlengte0\" bgcolor=\"blue\"> </td><td> <i>$poll[0]</td></tr>\n";
echo "</table>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 2</strong></td>\n";
echo "<td> </td><td width=\"$barlengte1\" bgcolor=\"green\"> </td><td> <i>$poll[1]</td></tr>\n";
echo "</table>\n";
echo "<br><div align=\"center\"><h3><a href=\"poll.php\">Terug naar de poll</a></h3></div>\n";
?>
echo "<h2>Uitslag van de poll</h2>\n";
$result="result.txt";
$pointer=fopen($result,"r");
$poll=fread($pointer,filesize($result));
fclose($pointer);
$poll=explode(",",$poll);
$totaal=$poll[0]+$poll[1];
$barlengte=100;
$barlengte0=$poll[0]*$barlengte/$totaal;
$barlengte1=$poll[1]*$barlengte/$totaal;
$barlengte0=round($barlengte0);
$barlengte1=round($barlengte1);
## test # echo "$barlengte0 $barlengte1 de verschillende lengten<br>\n";
echo "<h2><i>$totaal personen hebben reeds gestemd</i></h2>";
echo "<br>\n";
echo "<table>\n";
echo "</table><br><br>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 1</strong></td>\n";
echo "<td> </td><td width=\"$barlengte0\" bgcolor=\"blue\"> </td><td> <i>$poll[0]</td></tr>\n";
echo "</table>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 2</strong></td>\n";
echo "<td> </td><td width=\"$barlengte1\" bgcolor=\"green\"> </td><td> <i>$poll[1]</td></tr>\n";
echo "</table>\n";
$result="result2.txt";
$pointer=fopen($result,"r");
$poll=fread($pointer,filesize($result));
fclose($pointer);
$poll=explode(",",$poll);
$totaal=$poll[0]+$poll[1];
$barlengte=100;
$barlengte0=$poll[0]*$barlengte/$totaal;
$barlengte1=$poll[1]*$barlengte/$totaal;
$barlengte0=round($barlengte0);
$barlengte1=round($barlengte1);
## test # echo "$barlengte0 $barlengte1 de verschillende lengten<br>\n";
echo "<h2><i>$totaal personen hebben reeds gestemd</i></h2>";
echo "<br>\n";
echo "<table>\n";
echo "</table><br><br>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 1</strong></td>\n";
echo "<td> </td><td width=\"$barlengte0\" bgcolor=\"blue\"> </td><td> <i>$poll[0]</td></tr>\n";
echo "</table>\n";
echo "<table border=\"0\">\n";
echo "<tr>";
echo "<td><strong>Optie 2</strong></td>\n";
echo "<td> </td><td width=\"$barlengte1\" bgcolor=\"green\"> </td><td> <i>$poll[1]</td></tr>\n";
echo "</table>\n";
echo "<br><div align=\"center\"><h3><a href=\"poll.php\">Terug naar de poll</a></h3></div>\n";
?>
-- result.txt
0,0,
-- result2.txt
0,0,
Kan je hier wat mee?
- gebruik $_COOKIE ipv $HTTP_COOKIE_VARS
- haal je variabelen buiten de quotes
- denk dat je beter de OR operator kan gebruiken dan AND in het volgende deel:
Code (php)
1
2
3
2
3
if (empty($submit) && empty($gestemd) && empty($antwoord)) {
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" />\n";
}
echo "<input name=\"submit\" type=\"submit\" value=\"Stem uitbrengen\" />\n";
}
- voorbeeldje voor je input inclusief wat ik eerder gepost heb:
waarbij $id de id van de vraag is
in dit geval adviseer ik om echt een database te gaan gebruiken en het desnoods later nog is in txt files te dumpen.
het probleem met de txt bestanden is dat er niks uniek in hoeft te zijn, en dan kan je ook moeilijk een id toevoegen. er zijn wel andere oplossingen voor ipv id's maar dat raad ik je af.
suc6 ;)
Gewijzigd op 01/01/1970 01:00:00 door CrawlBackwards
(gisteren geen tijd meer dus vandaar de late reactie ;) )
Tis gelukt, bedankt voor je hulp!
graag geholpen
De meeste gebruikers weten wel dat je gewoon cookies kan wissen..........
als je gewoon ip adres opslaat, zelfde effect+maar 1 mogelijke keer stemmen!