Gå til innhold

Er denne pollen fin?


Anbefalte innlegg

Heisann!

 

Driver å utvikler en poll, og har nettopp funnet denne her på hotscripts.com :

 

 

HTML Code

<html>
<head>
<title>Min hjemmeside</title>
</head>

<body>
<basefont face=Arial>

<form action=poll.php method=post>
Hva synst dere om denne siden?<br>
<input type=radio name=vote value="Denne siden er perfekt!"> Perfekt<br>
<input type=radio name=vote value="Denne siden var ikke så verst."> Ikke verst<br>
<input type=radio name=vote value="Denne siden var dårlig."> Dårlig<br>
<input type=radio name=vote value="Denne siden var skikkelig ræva!."> Ræva<br>
<input type=submit value=Vote>
</form>

</body>
</html>

 

 

PHP Code

// DEFINE THE VARIABLES //
// title of this poll
$title = "What is your favorite programming language?";
// closing date for this poll in MM/DD/YYYY format
$closingDate = "1/1/2010";
// text file that stores vote choices and totals
$pollFile = "poll.txt";
// text file that stores IP addresses
$ipFile = "ips.txt";
// full path to your CSS style sheet
$styleSheet = "http://yoursite/style.css"; // leave blank if you aren't using this

// DO NOT EDIT BELOW THIS POINT UNLESS YOU KNOW PHP! //

// DEFINE THE FUNCTIONS //
// check if the poll has closed
function is_closed() {
global $closingDate;

// split the closing date into month, day, and year
$closingDate = explode("/", $closingDate);

// get today's today to test against the closing date
$today = getdate();

$message = date("l, F j", mktime(0,0,0,$closingDate[0],$closingDate[1],$today[year]));

// if today's year is greater than the closing year, return true
if ($today[year] > $closingDate[2]) {
 return $message;
}
// if today's year is equal to the closing year
elseif ($today[year] == $closingDate[2]) {
 // if today's month is greater than the closing month, return true
 if ($today[mon] > $closingDate[0]) {
 	return $message;
 }
 // if today's month is equal to the closing month
 elseif ($today[mon] == $closingDate[0]) {
 	// if today is greater than or equal to the closing day, return true
 	if ($today[mday] >= $closingDate[1]) {
   return $message;
 	}
 	// if the poll is still open, return false
 	else {
   return false;
 	}
 }
 // if the poll is still open, return false
 else {
 	return false;
 }
}
// if the poll is still open, return false
else {
 return false;
}
}

// check if the user has already voted
function has_voted() {
global $ipFile;
global $REMOTE_ADDR;

// open the IP address file
$ips = fopen($ipFile, "r");

// compare each entry with the user's IP address
while (!feof($ips)) {
 $ip = fgets($ips, 20);

 if ($ip == $REMOTE_ADDR . "\r\n") {
 	$match = 1;
 	break;
 }
}

// close the IP address file
fclose($ips);

if (!$match) {
 // reopen the IP address file
 $ips = fopen($ipFile, "a");

 // add the user's IP address
 fputs($ips, $REMOTE_ADDR . "\r\n");

 // close the IP address file
 fclose($ips);

 return false;
}
else {
 return true;
}
}

// add the user's vote
function addVote($vote) {
global $pollFile;

// get the current votes
$fp_read = fopen($pollFile, "r");
$currentVote = fread($fp_read, filesize($pollFile));
fclose($fp_read);

// create an array with even numbers containing vote choices
// and odds containing vote totals
$votes = split('[|:]', $currentVote);

// update the vote
for ($i = 1; $i < count($votes); $i = $i + 2) {
 // get the array index number for the name of this vote
 $name = $i - 1;

 // if this vote choice is this user's selection, increment it
 if ($votes[$name] == $vote) {
 	$votes[$i]++;
 }

 // if this vote IS the last choice
 if ($i == (count($votes) - 1)) {
 	$updatedVote .= $votes[$name] . ":" . $votes[$i];
 }

 // if this vote is NOT the last choice
 else {
 	$updatedVote .= $votes[$name] . ":" . $votes[$i] . "|";
 }
}

// save the updated vote
$fp_write = fopen($pollFile, "w");
fputs($fp_write, $updatedVote);
fclose($fp_write);
}

// display the poll
function displayPoll($message) {
global $title, $pollFile, $styleSheet;

echo "<html>\n";
echo "<head>\n";
echo "<title>$title</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$styleSheet\">\n";
echo "</head>\n\n";
echo "<body>\n";

// get the current votes
$fp_read = fopen($pollFile, "r");
$currentVote = fread($fp_read, filesize($pollFile));
fclose($fp_read);

// create an array with even numbers containing vote choices
// and odds containing vote totals
$votes = split('[|:]', $currentVote);

// if a message was sent, print it
if (isset($message)) {
 echo "<p align=center>$message</p>\n\n";
}

echo "<table align=center>\n";
echo "<caption align=top><b>$title</b></caption>\n";

// print the poll table rows
// including vote choice, vote total, and percentage of total votes
for ($i = 1; $i < count($votes); $i = $i + 2)
{
 // add together each vote total to find the total number of votes cast
 $totalVotes += $votes[$i];
}

for ($i = 1; $i < count($votes); $i = $i + 2) {
 // get the array index number for the name of this vote
 $name = $i - 1;

 // calculate the percentage of total votes for this vote
 // rounded to 1 decimal place
 if ($totalVotes == 0) {
 	$percentage = 0;
 }
 else {
 	$percentage = $votes[$i] / $totalVotes * 100;
 	$percentage = round($percentage, 1);
 }

 echo "<tr>\n";
 echo "\t<td>$votes[$name]</td>\n";
 echo "\t<td>$votes[$i] votes</td>\n";

 // if the percentage is 0, don't print a bar
 if ($percentage == 0) {
 	echo "\t<td>$percentage%</td>\n";
 }

 // otherwise, print the bar
 else {
 	echo "\t<td><img src=poll.jpg width=$percentage height=15> $percentage%</td>\n";
 }

 echo "</tr>\n";
}

// print the total number of votes cast
echo "<caption align=bottom>Total Votes: $totalVotes</caption>\n";

// finish printing the poll table
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
}


// PROGRAM CODE //
// if the poll is closed, display the poll and exit
if ($message = is_closed()) {
displayPoll("The poll closed on " . $message . ".");
exit;
}

// if the user is not voting, display the poll and exit
if (!isset($vote)) {
displayPoll("");
exit;
}

// if the user has already voted, display the poll and exit
if (has_voted()) {
displayPoll("You already voted.");
exit;
}

// add the user's vote
addVote($vote);

// display the poll
displayPoll("");

?>

 

 

Ser dette bra ut? :)

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...