Poll
Rob - 06/06/2006 22:08 (laatste wijziging 09/06/2006 13:58)
HTML interesse
Ik heb een poll en het balkje zou een kleur moeten krijgen als je gestemd hebt.
In IE lukt het maar in FF niet.
http://www.ngame.nl/index.php
<?php
/* database verbinding */
$mysql = mysql_connect("*****", "*******", "*****");
$database = mysql_select_db("*****", $mysql);
/* ip van de bezoeker bezoeker */
if(isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'])) {
$ip = $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
if(isset($HTTP_GET_VARS['pollid']) && is_numeric($HTTP_GET_VARS['pollid'])) {
$pollid = $HTTP_GET_VARS['pollid'];
} else {
$pollid = 0;
}
/* class includen */
include("poll.inc.php");
/* class starten
params:
1: kenmerk van de bezoeker, dus bijv. ip of userid. Let op: als de bezoeker heeft gestemd zal dit kenmerk in de database worden gezet zodat de bezoeker niet nog een keer kan stemmen */
$poll = new wmpoll($ip);
/* poll weergeven
params:
1: pollid, 0: nieuwste actieve poll
2: mag de bezoekers stemmen, 1: ja 0: nee
3: breedte van de balkjes, in pixels
4: lijnkleur van de balkjes
5: vulkleur van de balkjes */
$poll->toon($pollid, 1, 80, "#A9A9A9", "#FF9900");
?>
<?php
/* database verbinding */
/* ip van de bezoeker bezoeker */
if ( isset ( $HTTP_SERVER_VARS [ 'HTTP_X_FORWARDED_FOR' ] ) ) { $ip = $HTTP_SERVER_VARS [ 'HTTP_X_FORWARDED_FOR' ] ;
} else {
$ip = $HTTP_SERVER_VARS [ 'REMOTE_ADDR' ] ;
}
/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
if ( isset ( $HTTP_GET_VARS [ 'pollid' ] ) && is_numeric ( $HTTP_GET_VARS [ 'pollid' ] ) ) { $pollid = $HTTP_GET_VARS [ 'pollid' ] ;
} else {
$pollid = 0 ;
}
/* class includen */
include ( "poll.inc.php" ) ;
/* class starten
params:
1: kenmerk van de bezoeker, dus bijv. ip of userid. Let op: als de bezoeker heeft gestemd zal dit kenmerk in de database worden gezet zodat de bezoeker niet nog een keer kan stemmen */
$poll = new wmpoll( $ip ) ;
/* poll weergeven
params:
1: pollid, 0: nieuwste actieve poll
2: mag de bezoekers stemmen, 1: ja 0: nee
3: breedte van de balkjes, in pixels
4: lijnkleur van de balkjes
5: vulkleur van de balkjes */
$poll -> toon ( $pollid , 1 , 80 , "#A9A9A9" , "#FF9900" ) ;
?>
22 antwoorden
Gesponsorde links
Frisbee - 06/06/2006 22:27
HTML beginner
Ik vermoed dat dat gebeurd doordat er niks in je td tag zit. Je kunt proberen of het wel werkt als er een spatie in staat. Je zou ook in plaats van de td met achtergrond kleur een image kunnen gebruiken en die breedte geven.
Rob - 06/06/2006 22:32
HTML interesse
Waar bedoel je?
Frisbee - 06/06/2006 22:36 (laatste wijziging 06/06/2006 22:37)
HTML beginner
voor je balkje print je nu dit:
<td width="16" bgcolor="#FF9900"></td>
< td width= "16" bgcolor= "#FF9900" ></ td>
Omdat die td leeg is laat FireFox hem niet zien. Als je daar een spatie ( ) in zet waarschijnlijk wel.
Je kunt dat blokje ook vervangen door een image. Dan krijg je zoiets:
<img style="height: 8px; width: 16px" src="pixel.gif" alt="balk" />
< img style= "height: 8px; width: 16px" src= "pixel.gif" alt= "balk" />
Rob - 07/06/2006 17:04 (laatste wijziging 09/06/2006 11:51)
HTML interesse
Ik include dit bestand hierboven in mijn gewone index.php. En daar zie ik geen <td> tags staan.
Edit: Hierin schijnt de fout te zitten.
<?php
class wmpoll {
function wmpoll($bezoeker) {
$this->bezoeker = $bezoeker;
}
function htmlparse($string){
return htmlentities(trim($string), ENT_QUOTES);
}
function stem($vote) {
if(is_numeric($vote) && $vote >= 1 && $vote <= 10) {
$id = $this->list['id'];
$gestemd = $this->list['gestemd']."(".$this->bezoeker.",".$vote.")";
$sql = @mysql_query("UPDATE poll SET antwoord".$vote."=antwoord".$vote."+1, gestemd='".$gestemd."' WHERE id='$id'");
if($sql) {
$this->list["antwoord".$vote]++;
}
}
}
function archief($aantal=0) {
GLOBAL $HTTP_SERVER_VARS;
if($aantal != 0) {
$limit = " LIMIT ".$aantal;
} else {
$limit = "";
}
$sql = @mysql_query("SELECT id, vraag FROM poll ORDER BY id DESC".$limit);
echo "<select name=\"pollarchief\" onChange=\"window.location=('".$HTTP_SERVER_VARS['PHP_SELF']."?pollid='+this.options[this.selectedIndex].value)\">\n<option value=\"\">Archief</option>/n";
while($list = @mysql_fetch_assoc($sql)) {
echo "<option value=\"".$list['id']."\">".$this->htmlparse($list['vraag'])."</option>\n";
}
echo "</select>\n";
}
function toon($id=0, $magstemmen=1, $balkje=200, $kleur1="#A9A9A9", $kleur2="#FF9900") {
GLOBAL $HTTP_POST_VARS, $HTTP_SERVER_VARS;
if($id == 0) {
$sql = @mysql_query("SELECT * FROM poll WHERE actief='1' ORDER BY id DESC LIMIT 1");
} else {
$id = addslashes($id);
$sql = @mysql_query("SELECT * FROM poll WHERE id='$id'");
}
// bestaat poll?
$bestaat = @mysql_num_rows($sql);
if($bestaat == 0 && $id == 0) {
echo "Fout: er is momenteel geen actieve poll!\n";
} elseif($bestaat == 0) {
echo "Fout: de opgevraagde poll bestaat niet!\n";
} else {
$this->list = @mysql_fetch_assoc($sql);
// mag de bezoeker stemmen?
if($magstemmen == 0 || preg_match("/\(".$this->bezoeker.",/", $this->list['gestemd'])) {
$magstemmen = 0;
} else {
$magstemmen = 1;
}
// poll type
if($this->list['actief'] == 1) {
$type = "Actief";
} else {
$type = "Archief";
$magstemmen = 0;
}
// stem opslaan
if($magstemmen == 1 && isset($HTTP_POST_VARS['pollvote']) && isset($HTTP_POST_VARS['pollid']) && $HTTP_POST_VARS['pollid'] == $this->list['id']) {
$this->stem($HTTP_POST_VARS['pollvote']);
$magstemmen = 0;
}
// totaal aantal stemmen
$totaal = 0;
for($x=1; $x<=10; $x++) {
$totaal = $totaal + $this->list["antwoord".$x];
}
// poll weergeven
if($magstemmen == 1) {
echo "<form action=\"".$HTTP_SERVER_VARS['REQUEST_URI']."\" method=\"POST\">\n<input type=\"hidden\" name=\"pollid\" value=\"".$this->list['id']."\">\n";
}
echo "<b>".$this->htmlparse($this->list['vraag'])."</b><br>\nStemmen: ".$totaal."<br>\nDatum: ".date("d-m-Y", $this->list['datum'])."<br>\nType: ".$type."<br><br>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
for($x=1; $x<=10; $x++) {
if(!empty($this->list["keuze".$x])) {
// resultaten berekenen
if($totaal != 0) {
$procent = round(($this->list["antwoord".$x]/$totaal)*100);
$balk = ($this->list["antwoord".$x]/$totaal)*$balkje;
} else {
$procent = 0;
$balk = 0;
}
echo "<tr>";
if($magstemmen == 1) {
echo "<td><input type=\"radio\" name=\"pollvote\" value=\"".$x."\"></td>";
}
echo "<td><b>".$this->htmlparse($this->list["keuze".$x])."</b> </td><td>".$procent." % </td><td>\n<table width=\"".$balkje."\" height=\"10\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid ".$kleur1.";\"><tr><td width=\"".$balk."\" bgcolor=\"".$kleur2."\"></td><td width=\"".($balkje-$balk)."\"></td></tr></table>\n</td></tr>\n";
}
}
echo "</table>\n";
if($magstemmen == 1) {
echo "<input type=\"submit\" name=\"submit\" value=\"Stem\">\n</form>\n";
}
}
}
}
?>
<?php
class wmpoll {
function wmpoll( $bezoeker ) {
$this -> bezoeker = $bezoeker ;
}
function htmlparse( $string ) {
}
function stem( $vote ) {
if ( is_numeric ( $vote ) && $vote >= 1 && $vote <= 10 ) { $id = $this -> list [ 'id' ] ;
$gestemd = $this -> list [ 'gestemd' ] . "(" . $this -> bezoeker . "," . $vote . ")" ;
$sql = @ mysql_query ( "UPDATE poll SET antwoord" . $vote . "=antwoord" . $vote . "+1, gestemd='" . $gestemd . "' WHERE id='$id '" ) ; if ( $sql ) {
$this -> list [ "antwoord" . $vote ] ++;
}
}
}
function archief( $aantal = 0 ) {
if ( $aantal != 0 ) {
$limit = " LIMIT " . $aantal ;
} else {
$limit = "" ;
}
$sql = @ mysql_query ( "SELECT id, vraag FROM poll ORDER BY id DESC" . $limit ) ; echo "<select name=\" pollarchief\" onChange=\" window.location=('" . $HTTP_SERVER_VARS [ 'PHP_SELF' ] . "?pollid='+this.options[this.selectedIndex].value)\" >\n <option value=\" \" >Archief</option>/n" ; echo "<option value=\" " . $list [ 'id' ] . "\" >" . $this -> htmlparse ( $list [ 'vraag' ] ) . "</option>\n " ; }
}
function toon( $id = 0 , $magstemmen = 1 , $balkje = 200 , $kleur1 = "#A9A9A9" , $kleur2 = "#FF9900" ) {
GLOBAL $HTTP_POST_VARS , $HTTP_SERVER_VARS ; if ( $id == 0 ) {
$sql = @ mysql_query ( "SELECT * FROM poll WHERE actief='1' ORDER BY id DESC LIMIT 1" ) ; } else {
$sql = @ mysql_query ( "SELECT * FROM poll WHERE id='$id '" ) ; }
// bestaat poll?
if ( $bestaat == 0 && $id == 0 ) {
echo "Fout: er is momenteel geen actieve poll!\n " ; } elseif ( $bestaat == 0 ) {
echo "Fout: de opgevraagde poll bestaat niet!\n " ; } else {
// mag de bezoeker stemmen?
if ( $magstemmen == 0 || preg_match ( "/\(" . $this -> bezoeker . ",/" , $this -> list [ 'gestemd' ] ) ) { $magstemmen = 0 ;
} else {
$magstemmen = 1 ;
}
// poll type
if ( $this -> list [ 'actief' ] == 1 ) {
$type = "Actief" ;
} else {
$type = "Archief" ;
$magstemmen = 0 ;
}
// stem opslaan
if ( $magstemmen == 1 && isset ( $HTTP_POST_VARS [ 'pollvote' ] ) && isset ( $HTTP_POST_VARS [ 'pollid' ] ) && $HTTP_POST_VARS [ 'pollid' ] == $this -> list [ 'id' ] ) { $this -> stem ( $HTTP_POST_VARS [ 'pollvote' ] ) ;
$magstemmen = 0 ;
}
// totaal aantal stemmen
$totaal = 0 ;
for ( $x = 1 ; $x <= 10 ; $x ++ ) {
$totaal = $totaal + $this -> list [ "antwoord" . $x ] ;
}
// poll weergeven
if ( $magstemmen == 1 ) {
echo "<form action=\" " . $HTTP_SERVER_VARS [ 'REQUEST_URI' ] . "\" method=\" POST\" >\n <input type=\" hidden\" name=\" pollid\" value=\" " . $this -> list [ 'id' ] . "\" >\n " ; }
echo "<b>" . $this -> htmlparse ( $this -> list [ 'vraag' ] ) . "</b><br>\n Stemmen: " . $totaal . "<br>\n Datum: " . date ( "d-m-Y" , $this -> list [ 'datum' ] ) . "<br>\n Type: " . $type . "<br><br>\n <table border=\" 0\" cellpadding=\" 0\" cellspacing=\" 0\" >\n " ;
for ( $x = 1 ; $x <= 10 ; $x ++ ) {
if ( ! empty ( $this -> list [ "keuze" . $x ] ) ) { // resultaten berekenen
if ( $totaal != 0 ) {
$procent = round ( ( $this -> list [ "antwoord" . $x ] / $totaal ) * 100 ) ; $balk = ( $this -> list [ "antwoord" . $x ] / $totaal ) * $balkje ;
} else {
$procent = 0 ;
$balk = 0 ;
}
if ( $magstemmen == 1 ) {
echo "<td><input type=\" radio\" name=\" pollvote\" value=\" " . $x . "\" ></td>" ; }
echo "<td><b>" . $this -> htmlparse ( $this -> list [ "keuze" . $x ] ) . "</b> </td><td>" . $procent . " % </td><td>\n <table width=\" " . $balkje . "\" height=\" 10\" border=\" 0\" cellspacing=\" 0\" cellpadding=\" 0\" style=\" border: 1px solid " . $kleur1 . ";\" ><tr><td width=\" " . $balk . "\" bgcolor=\" " . $kleur2 . "\" ></td><td width=\" " . ( $balkje - $balk ) . "\" ></td></tr></table>\n </td></tr>\n " ; }
}
if ( $magstemmen == 1 ) {
echo "<input type=\" submit\" name=\" submit\" value=\" Stem\" >\n </form>\n " ; }
}
}
}
?>
Rob - 09/06/2006 12:02
HTML interesse
En hoe moet ik dat veranderen?
marten - 09/06/2006 12:05
Beheerder
<?php/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
if(isset($HTTP_GET_VARS['pollid']) && is_numeric($HTTP_GET_VARS['pollid'])) {
$pollid = $HTTP_GET_VARS['pollid'];
} else {
$pollid = 0;
}
?>
<?php /* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
if ( isset ( $HTTP_GET_VARS [ 'pollid' ] ) && is_numeric ( $HTTP_GET_VARS [ 'pollid' ] ) ) { $pollid = $HTTP_GET_VARS [ 'pollid' ] ;
} else {
$pollid = 0 ;
}
?>
Word dus
<?php
/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
if(isset($_GET['pollid']) && is_numeric($_GET['pollid'])) {
$pollid = $_GET['pollid'];
} else {
$pollid = 0;
}
?>
<?php
/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
$pollid = $_GET [ 'pollid' ] ;
} else {
$pollid = 0 ;
}
?>
Zo vervang je al die oude functies
marten - 09/06/2006 12:47
Beheerder
waarom niet? foutmeldingen?
Ultimatum - 09/06/2006 13:32
PHP expert
weet je zeker dat het pad naar de images dan wel goed is?
Rob - 09/06/2006 13:49
HTML interesse
Ik gebruik geen images.
Rob - 09/06/2006 13:59
HTML interesse
Nee, die ziet niks fout.
marten - 09/06/2006 14:02
Beheerder
wil je de code die je hebt eens op www.plaatscode.be zetten? dan ga ik er even in splitten
Micron - 09/06/2006 16:31
HTML beginner
Das die webmastercity poll. Dan heb jij die code voor XHTML Valid boven je pagina staan. Das onwijs raar toen deed ie het ook niet bij mij. Als je die regel voor XHTML Valid weghaalt doet ie het wel in FF.
Rob - 09/06/2006 17:00
HTML interesse
Ja, het werkt!
Hoe kan dat eigenlijk?
Micron - 09/06/2006 17:39
HTML beginner
Ik zou het echt niet weten, ikzelf was er ook niet achter. Misschien moet er bij de balk vulling style="background-color: #KLEUR;" worden gedaan. Ik ben er zelf in ieder geval nog niet achter.
Rens - 09/06/2006 18:10
Crew algemeen
Citaat:
Dat kan ik niet.:$
Dat kan iedereen.
Dat is gewoon $HTTP_SERVER_VARS veranderen in $_SERVER...
Gesponsorde links
Dit onderwerp is gesloten .