Ankieta 4YOU
To znowu ja. Każdy, kto czytał poprzedni art o liczniku w
php na pewno pamięta, że obiecałem coś jeszcze. Zajmę się
prostym skryptem do obsługi ankiety, który będzie się składał
z trzech plików:
- index.php --- strona, na której będzie znajdował się formularz
- dodaj.php --- skrypt, który zapisuje wynik sondy w pliku
- ile.php --- wynik sondy
Index.php
Jest to przykładowy wygląd formularza. Można go oczywiście
zmieniać dowolnie, zachowując najważniejsze parametry. Oto
kod:
<html>
<head>
<title>Ankieta</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
</head>
<body>
<form name="form" method="post" action="dodaj.php3">
<table>
<tr>
<td>Jak oceniasz stronę?</td>
</tr>
</table>
<table border="0">
<tr>
<td width="19%">
<input type="radio" name="glos" value="raz"
checked>
</td>
<td width="81%">Bardzo dobra</td>
</tr>
<tr>
<td width="19%">
<input type="radio" name="glos" value="dwa">
</td>
<td width="81%">Dobra</td>
</tr>
<tr>
<td width="19%">
<input type="radio" name="glos" value="trzy">
</td>
<td width="81%">Taka sobie</td>
</tr>
<tr>
<td width="19%">
<input type="radio" name="glos" value="cztery">
</td>
<td width="81%">Do kitu!</td>
</tr>
<tr>
<td width="19%"> </td>
<td width="81%" >
<input type="submit" name="Wyslij"
value="Wyslij">
</td>
</tr>
</table>
</form>
</body>
</html>
Dodaj.php
Ten plik zapisze wynik ankiety w pliku ile.php. Dodatkowo
zaimplementowałem funkcję uniemożliwiającą wielokrotne głosowanie.
Oto kod:
<?
setcookie("sonda","glos",time()+3600*3);
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html;
CHARSET=iso-8859-2">
<TITLE>Sonda</TITLE>
</HEAD>
<BODY text="#000000" bgcolor="#FFFFFF">
<?php
if($sonda!="glos")
{
require("ile.php");
if ($glos == "raz")
{
$raz += 1;
}
if ($glos == "dwa")
{
$dwa += 1;
}
if ($glos == "trzy")
{
$trzy += 1;
}
if ($glos == "cztery")
{
$cztery += 1;
}
$sonda = fopen("ile.php", "w" );
flock($sonda, 2);
fwrite($sonda, "<?php\n\$raz=\"$raz\";\n\$dwa=\"$dwa\";\n\$trzy=\"$trzy\";\n\$cztery=
\"$cztery\";\n?>\n" );
flock($sonda, 3);
fclose($sonda);
}
else
{
echo("<center>Nie można głosowac 2 razy !</center>");
require("ile.php");
if ($glos == "raz")
{
$raz ;
}
if ($glos == "dwa")
{
$dwa;
}
if ($glos == "trzy")
{
$trzy;
}
if ($glos == "cztery")
{
$cztery;
}
$sonda = fopen("ile.php", "w" );
flock($sonda, 2);
fwrite($sonda, "<?php\n\$raz=\"$raz\";\n\$dwa=\"$dwa\";\n\$trzy=\"$trzy\";\n\$cztery=
\"$cztery\";\n?>\n" );
flock($sonda, 3);
fclose($sonda);
}
?>
<div align="center"><kbd><font size="3"><b>:::Sonda:::
</b></font></kbd> </div>
<table border="1" cellspacing="0" align=center>
<tr>
<td>Jak oceniasz stronę:</td>
</tr>
<tr>
<td bgcolor="#999999">Bardzo dobra : <b>
<? echo $raz; ?>
</b></td>
</tr>
<tr>
<td>Dobra: <b>
<? echo $dwa; ?>
</b></td>
</tr>
<tr>
<td bgcolor="#999999">Taka sobie: <b>
<? echo $trzy; ?>
</b> </td>
</tr>
<tr>
<td>Do kitu!: <b>
<? echo $cztery; ?>
</b></td>
</tr>
</table>
<div align="center"><kbd><a href=javascript:history.back();><font
face="Verdana" size="2">:::Powrót:::</font></a></kbd>
</div>
<br>
</BODY>
</HTML>
Ile.php
To ostatni składnik ankiety. W nim zapisywany jest cały wynik
ankiety. Możemy manipulować zawartymi tu liczbami, aby internautom
wydawało się, że dużo osób już zagłosowało :) Tylko po co?
Ankieta chyba służy do poznawania opinii innych a nie do reklamy
i szpanu. Oto wygląd pliku:
<?php
$raz="120";
$dwa="10";
$trzy="5";
$cztery="3";
?>
"Szmery - bajery":
Wszystkie pliki, które stworzyłeś dzięki temu artowi powinny
mieć rozszerzenie php lub php3 i być opublikowane na serwerze
z obsługą php. I to na tyle nudzenia. Nara!
PS. Pozdrowienia dla SZAK_L. "Lamerze, jeśli dotrwałeś
do tego momentu bez pomocy ojca, to gratuluję Ci wytrwałości.
I tak pewnie gówno z tego zrozumiałeś :)"
Fabio
eeon@wp.pl