sessie of cookies
remy - 31/08/2004 11:15
PHP ver gevorderde
aangezien de oude weg is vraag ik het nog een keer ;)
wat is beter om te gebruiken? sessis of cookies?
wat is makkelijker?
Ik wilde het gebruiken voor een poll
42 antwoorden
Gesponsorde links
Hans - 31/08/2004 11:17
HTML beginner
Volgens mij is het makkelijkst ze te combineren.
Lees FangorN's tutorial over sessies:
http://www.site...4&id=4
Wijnand - 31/08/2004 11:22
Moderator
sessies is over het algemeen veiliger. Maar als je het voor een poll gaat gbruiken kun je twee dingen doen (nog wel meer ook maar deze twee zou ik doen).
1. je maakt hem met cookies
2. als je een ledensysteem hebt, zorgt je ervoor dat alle leden maar één keer kunnen stemmen.
remy - 31/08/2004 11:25
PHP ver gevorderde
ik wilde elke maand een nieuwe poll, en als dan iemand gestemt heeft dat die niet meer mag stemmen tot de nieuwe poll er is, dus het cookie of sessie moet dan verwijderd worden.
als dat kan tenminste
Hans - 31/08/2004 11:26
HTML beginner
Ik zou toch eerst de inleiding van die sessie-tutorial eens doorlezen, dan heb je misschien beter zicht op wat je er nu mee kan en niet.
Zelf zou ik hem met cookies maken.
Wijnand - 31/08/2004 11:26
Moderator
dat kan ja... als je het met cookies doen dan kun je bv een id of naam meegeven aan de poll die elke keer anders is.
en als je het met een ledensysteem doet kun je gewoon een script schrijven dat de poll-votes op 0 komen te staan.
remy - 31/08/2004 11:30
PHP ver gevorderde
ik heb geen ledensysteem maar ik zal eerst eens de les cookies doornemen:D ;)
wouter - 31/08/2004 11:35
PHP interesse
je kan dit niet doen met sessies, tenzij je met een ledensysteem werkt (maar dan werk je met een variabele invoeren in de db als hij-zij gestemd heeft)
een poll moet je wel met cookies doen
opmerking: je moet namelijk je sessie zo lang maken dat je een cookie nodig hebt (zoals sitemasters nu doet met bvb 1 jaar lang ingelogd blijven) ;)
Hans - 31/08/2004 11:43
HTML beginner
en bezoekers met een dynamisch ip dan?
wouter - 31/08/2004 11:51
PHP interesse
nee hoor
je doet dat met een include,
dus dan heb je maar 1 pagina nodig die je gewoon include en die het cookie opzoekt ;)
remy - 31/08/2004 11:52
PHP ver gevorderde
ow ja natuurlijk niet aan gedacht he:lamp:
remy - 31/08/2004 11:57
PHP ver gevorderde
maare waar kan ik die cookis terugvinden volgens mij in de map cookis maar daar staat niks.
wouter - 31/08/2004 11:59
PHP interesse
je kan die opvragen door $_COOKIE['var']
en idd normaal moet die in de map cookies staat -> hoewel windows wel eens verschillende van die mappen kan hebben, het best doe je gewoon
set_cookie() or die ("cookie niet geset")
set_cookie
( ) or
die ( "cookie niet geset" )
dan kan je zien of die cookie werkelijk geset wordt
remy - 31/08/2004 12:41
PHP ver gevorderde
ik heb een tutorial doorgelezen en dit heb ik er van gemaakt, kan dit zo wel? :S
<?php
if(setcookie(time() + 3600*24*30))
{
$button=" ";
}
else
{
$button="<input type=submit name=verzenden value=Stem>";
}
?>
<?php
{
$button = " " ;
}
else
{
$button = "<input type=submit name=verzenden value=Stem>" ;
}
?>
cowbeast - 31/08/2004 12:49
Onbekend
Ja ik zou ook wel voor een cookie gaan lijkt mij het best voor een poll!!:cool:
remy - 31/08/2004 12:51
PHP ver gevorderde
de hele poll staat op een pagina, dus de resultaten en de stemknop.
remy - 31/08/2004 12:59
PHP ver gevorderde
maare als je gestemt hebt en je drukt op de refresh knop dan bijft ie gewoon doortellen :S:'(
robmoorman - 31/08/2004 13:25
PHP interesse
niet iedereen heeft coockies aceptere aanstaan... IP is het handigst
Wijnand - 31/08/2004 13:26
Moderator
mwah, sommige mensen hebben een "wissel-ip".
remy - 31/08/2004 13:43
PHP ver gevorderde
probeer maar es, hij geeft altijd weer dat er gestemt is, ook als ik het cookie verwijder(browser afsluiten).
<html>
<head>
<title>Poll</title>
</head>
<body>
<?php
$poll=$_POST['poll'];
$opties[0] = "<font face=verdana size=2>mooi ";
$opties[1] = "<font face=verdana size=2>gaat ";
$opties[2] = "<font face=verdana size=2>stom ";
$vraag = "<center><font face=verdana size=2>Wat vind je van de site?</center>";
if($poll == 1)
{
$fp=fopen("poll.txt","r+");
$count=fgets($fp,6);
$count++;
rewind($fp);
fputs($fp,$count,6);
fclose($fp);
}
elseif($poll ==2)
{
$fp1=fopen("poll1.txt","r+");
$count1=fgets($fp1,6);
$count1++;
rewind($fp1);
fputs($fp1,$count1,6);
fclose($fp1);
}
else
{
$fp2=fopen("poll2.txt","r+");
$count2=fgets($fp2,6);
$count2++;
rewind($fp2);
fputs($fp2,$count2,6);
fclose($fp2);
}
$file = "poll.txt";
$fopen = fopen($file, "r+");
$data = fgets($fopen, 4096);
fclose($fopen);
$file1 = "poll1.txt";
$fopen1 = fopen($file1, "r+");
$data1 = fgets($fopen1, 4096);
fclose($fopen1);
$file2 = "poll2.txt";
$fopen2 = fopen($file2, "r+");
$data2 = fgets($fopen2, 4096);
fclose($fopen2);
if(setcookie(time() + 0))
{
$weergave="<table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200><tr><td colspan=2 background=header.jpg>$vraag</td></tr><tr><td bordercolor=#ffffff width=31%>$opties[0]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data><img src=rondbalkr.jpg>$data</td></tr><tr><td bordercolor=#ffffff width=10%>$opties[1]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data1><img src=rondbalkr.jpg>$data1</td></tr><tr><td bordercolor=#ffffff width=10%>$opties[2]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data2><img src=rondbalkr.jpg>$data2</td></tr><tr><td bordercolor=#ffffff width=10%> Gestemt!<br></td><td bordercolor=#ffffff> </td></tr></table>";
}
else
{
$weergave="<form method=post action=poll.php><table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200><tr><td colspan=2 background=header.jpg>$vraag</td></tr><form method=get><tr><td bordercolor=#ffffff width=31%><input type=radio name=poll value=1 checked>$opties[0]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data><img src=rondbalkr.jpg>$data</td></tr><tr><td bordercolor=#ffffff width=10%><input type=radio name=poll value=2>$opties[1]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data1><img src=rondbalkr.jpg>$data1</td></tr><tr><td bordercolor=#ffffff width=10%><input type=radio name=poll value=3>$opties[2]</td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data2><img src=rondbalkr.jpg>$data2</td></tr><tr><td bordercolor=#ffffff width=10%><input type=submit name=verzenden value=Stem><br></td><td bordercolor=#ffffff> </td></tr></table></form>";
}
echo $weergave;
?>
</body>
</html>
<html>
<head>
<title>Poll</title>
</head>
<body>
<?php
$poll = $_POST [ 'poll' ] ;
$opties [ 0 ] = "<font face=verdana size=2>mooi " ;
$opties [ 1 ] = "<font face=verdana size=2>gaat " ;
$opties [ 2 ] = "<font face=verdana size=2>stom " ;
$vraag = "<center><font face=verdana size=2>Wat vind je van de site?</center>" ;
if ( $poll == 1 )
{
$fp = fopen ( "poll.txt" , "r+" ) ; $count ++;
}
elseif ( $poll == 2 )
{
$fp1 = fopen ( "poll1.txt" , "r+" ) ; $count1 ++;
}
else
{
$fp2 = fopen ( "poll2.txt" , "r+" ) ; $count2 ++;
}
$file = "poll.txt" ;
$fopen = fopen ( $file , "r+" ) ; $data = fgets ( $fopen , 4096 ) ;
$file1 = "poll1.txt" ;
$fopen1 = fopen ( $file1 , "r+" ) ; $data1 = fgets ( $fopen1 , 4096 ) ;
$file2 = "poll2.txt" ;
$fopen2 = fopen ( $file2 , "r+" ) ; $data2 = fgets ( $fopen2 , 4096 ) ;
{
$weergave = "<table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200><tr><td colspan=2 background=header.jpg>$vraag </td></tr><tr><td bordercolor=#ffffff width=31%>$opties[0] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data ><img src=rondbalkr.jpg>$data </td></tr><tr><td bordercolor=#ffffff width=10%>$opties[1] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data1 ><img src=rondbalkr.jpg>$data1 </td></tr><tr><td bordercolor=#ffffff width=10%>$opties[2] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data2 ><img src=rondbalkr.jpg>$data2 </td></tr><tr><td bordercolor=#ffffff width=10%> Gestemt!<br></td><td bordercolor=#ffffff> </td></tr></table>" ;
}
else
{
$weergave = "<form method=post action=poll.php><table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200><tr><td colspan=2 background=header.jpg>$vraag </td></tr><form method=get><tr><td bordercolor=#ffffff width=31%><input type=radio name=poll value=1 checked>$opties[0] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data ><img src=rondbalkr.jpg>$data </td></tr><tr><td bordercolor=#ffffff width=10%><input type=radio name=poll value=2>$opties[1] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data1 ><img src=rondbalkr.jpg>$data1 </td></tr><tr><td bordercolor=#ffffff width=10%><input type=radio name=poll value=3>$opties[2] </td><td bordercolor=#ffffff><img src=rondbalk.jpg><img src=balk.jpg height=10 width=$data2 ><img src=rondbalkr.jpg>$data2 </td></tr><tr><td bordercolor=#ffffff width=10%><input type=submit name=verzenden value=Stem><br></td><td bordercolor=#ffffff> </td></tr></table></form>" ;
}
?>
</body>
</html>
wouter - 31/08/2004 13:59
PHP interesse
door je browser te sluiten is je cookie echt niet weg (Dat is enkel bij sessies)
remy - 31/08/2004 14:05
PHP ver gevorderde
ja maar ok al haal ik hem weg uit de map, dan staat er nog 'reeds gestemt'.:s
remy - 31/08/2004 16:11 (laatste wijziging 31/08/2004 16:11)
PHP ver gevorderde
euhm nu heb ik dit, hij maakt nu wel een cookie maar hij verwijderd hem niet meer. kijk op members.lycos.nl/waisjawel/poll.php :
<html>
<body>
<?php
$opties[0] = "<font face=verdana size=2>mooi ";
$opties[1] = "<font face=verdana size=2>gaat ";
$opties[2] = "<font face=verdana size=2>stom ";
$vraag = "<center><font face=verdana size=2>Wat vind je van de site?</center>";
$result="result.txt";
$pointer=fopen($result,"r");
$poll=fread($pointer,filesize($result));
fclose($pointer);
$poll=explode(",",$poll);
$totaal=$poll[0]+$poll[1]+$poll[2];
$barlengte=400;
$barlengte0=$poll[0]*$barlengte/$totaal;
$barlengte1=$poll[1]*$barlengte/$totaal;
$barlengte2=$poll[2]*$barlengte/$totaal;
$barlengte0=round($barlengte0);
$barlengte1=round($barlengte1);
$barlengte2=round($barlengte2);
if(isset($submit))
{
setcookie("gestemd","ja",time()+2);
}
echo "<form method=post>";
echo "<table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200>";
echo "<tr>";
echo "<td colspan=2 background=header.jpg>".$vraag."</td>";
echo "</tr>";
echo "<tr>";
echo "<td bordercolor=#ffffff width=31%><input type=radio name=antwoord
value=0>".$opties[0]."</td>";
echo "<td bordercolor=#ffffff width=$barlengte0 bgcolor=red><center>$poll[0]</center></td>";
echo "</tr>";
echo "<tr>";
echo "<td bordercolor=#ffffff width=10%><input type=radio name=antwoord
value=1>".$opties[1]."</td>";
echo "<td bordercolor=#ffffff width=$barlengte1 bgcolor=red><center>$poll[1]</center></td>";
echo "</tr>";
echo "<tr>";
echo "<td bordercolor=#ffffff width=10%><input type=radio name=antwoord
value=2>".$opties[2]."</td>";
echo "<td bordercolor=#ffffff width=$barlengte2 bgcolor=red><center>$poll[2]</center></td>";
echo "</tr>";
echo "<tr>";
echo "<td bordercolor=#ffffff width=10%>";
if(empty($submit) && empty($gestemd) && empty($antwoord))
{
echo "<input name=submit type=submit value=Stem>";
}
else
{
echo "<b>Gestemd</b>";
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);
}
}
echo "</td><td bordercolor=#ffffff>".$totaal." stemmen</td>";
echo "</tr></table>";
echo "</form>";
?>
</body>
</html>
<html>
<body>
<?php
$opties [ 0 ] = "<font face=verdana size=2>mooi " ;
$opties [ 1 ] = "<font face=verdana size=2>gaat " ;
$opties [ 2 ] = "<font face=verdana size=2>stom " ;
$vraag = "<center><font face=verdana size=2>Wat vind je van de site?</center>" ;
$result = "result.txt" ;
$pointer = fopen ( $result , "r" ) ; $totaal = $poll [ 0 ] + $poll [ 1 ] + $poll [ 2 ] ;
$barlengte = 400 ;
$barlengte0 = $poll [ 0 ] * $barlengte / $totaal ;
$barlengte1 = $poll [ 1 ] * $barlengte / $totaal ;
$barlengte2 = $poll [ 2 ] * $barlengte / $totaal ;
$barlengte0 = round ( $barlengte0 ) ; $barlengte1 = round ( $barlengte1 ) ; $barlengte2 = round ( $barlengte2 ) ;
{
}
echo "<form method=post>" ; echo "<table border=1 bordercolor=#3399cc cellspacing=0 cellpadding=2 width=200>" ; echo "<td colspan=2 background=header.jpg>" . $vraag . "</td>" ; echo "<td bordercolor=#ffffff width=31%><input type=radio name=antwoord
value=0>" . $opties [ 0 ] . "</td>" ;
echo "<td bordercolor=#ffffff width=$barlengte0 bgcolor=red><center>$poll[0] </center></td>" ; echo "<td bordercolor=#ffffff width=10%><input type=radio name=antwoord
value=1>" . $opties [ 1 ] . "</td>" ;
echo "<td bordercolor=#ffffff width=$barlengte1 bgcolor=red><center>$poll[1] </center></td>" ; echo "<td bordercolor=#ffffff width=10%><input type=radio name=antwoord
value=2>" . $opties [ 2 ] . "</td>" ;
echo "<td bordercolor=#ffffff width=$barlengte2 bgcolor=red><center>$poll[2] </center></td>" ; echo "<td bordercolor=#ffffff width=10%>" ;
{
echo "<input name=submit type=submit value=Stem>" ; }
else
{
if ( isset ( $submit ) && isset ( $antwoord ) && empty ( $HTTP_COOKIE_VARS [ "gestemd" ] ) ) {
$result = "result.txt" ;
$pointer = fopen ( $result , "r+" ) ; $poll [ $antwoord ] ++;
$poll = $poll [ 0 ] . "," . $poll [ 1 ] . "," . $poll [ 2 ] ;
}
}
echo "</td><td bordercolor=#ffffff>" . $totaal . " stemmen</td>" ;
?>
</body>
</html>
Darrow - 31/08/2004 16:34
Onbekend
suuuuuperglobaaals ... $_POST['submit']
remy - 31/08/2004 16:40
PHP ver gevorderde
heej hij doet het
maar al mensen nu op refresh klikken dan telt de teller door en als je op 'stem' geklikt hebt moet je eerst op refresh klikken om je eigen stem te zien.
is hier ook iets tegen te doen??:cool:
Gesponsorde links
Dit onderwerp is gesloten .