fout
gothmog - 18/07/2005 18:46
Lid
ey,
ik heb een poll, maar als ik daar bijv. 100x op submit druk, dan rekent hij dat ook als honderd x in plaats van 1x
ik gebruik dit:
if(isset($_POST['submit']))
is er een oplosing hiervoor?
13 antwoorden
Gesponsorde links
Bart - 18/07/2005 18:50
PHP expert
kun je stukje code laten zien zodat hij het ook snapt?:)
gothmog - 18/07/2005 18:51 (laatste wijziging 18/07/2005 18:53)
Lid
dat heb ik, alles doet t ook, maar hij moet eerst 1 keer die rij in de DB zetten, maar hij zet er hier dus iets van 3 of 4, ligt eraan hoevaak je klikt, daarna (als de pagina 'refreshed') kun je niet meer stemmen...
edit: tuurlijk... de hele poll:
edit edit: connecte naar db heb ik maar weggehaald... (nadat ik het al gepost had)
<?php
$vraag='Wat vind je van de site?';
$antwoord1='Goed';
$antwoord2='Redelijk';
$antwoord3='Slecht';
function ip() {
if(getenv("HTTP_X_FORWARDED_FOR")) {
$IPadres = getenv("HTTP_X_FORWARDED_FOR");
} elseif(getenv("HTTP_CLIENT_IP")) {
$IPadres = getenv("HTTP_CLIENT_IP");
} else {
$IPadres = $_SERVER["REMOTE_ADDR"];
}
return $IPadres;
}
$IP=ip();
if(isset($_POST['submit']))
{
$queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
mysql_query($queryinsert) or die (mysql_error());
}
$query = "SELECT * FROM poll WHERE ip='$IP'";
$resultaat = mysql_query($query) or die ("Er is iets mis met de database");
$obj=mysql_fetch_object($resultaat);
$Ipcheck=mysql_query("SELECT * FROM poll WHERE ip='$IP' ");
$Ipchecked=mysql_num_rows($Ipcheck);
if($Ipchecked < 1){
echo "<form naam='poll' action='' method='POST'>
$vraag <br>
<input type='radio' name='antwoord' value='1'>$antwoord1<br>
<input type='radio' name='antwoord' value='2'>$antwoord2<br>
<input type='radio' name='antwoord' value='3'>$antwoord3<br>
<input type='submit' value='Stem!' name='submit'></form>";
} else {
$query = mysql_query("SELECT * FROM poll");
$row1 = mysql_query("SELECT * FROM poll WHERE antwoord='1' ");
$row2 = mysql_query("SELECT * FROM poll WHERE antwoord='2' ");
$row3 = mysql_query("SELECT * FROM poll WHERE antwoord='3' ");
//het totaal votes van de antwoorden
$total1 = mysql_num_rows($row1);
$total2 = mysql_num_rows($row2);
$total3 = mysql_num_rows($row3);
$total = $total1+$total2+$total3;
if ($total != 0)
{ $procent1a = round($total1 / $total * 100);
$procent2a = round($total2 / $total * 100);
$procent3a = round($total3 / $total * 100);
}
echo "$vraag<br>
$antwoord1:<img height=\"12\" alt=\"$total1 votes\" width=\"$procent1a\" src=\"poll-balk.gif\">$procent1a%<br>
$antwoord2:<img height=\"12\" alt=\"$total2 votes\" width=\"$procent2a\" src=\"poll-balk.gif\">$procent2a%<br>
$antwoord3:<img height=\"12\" alt=\"$total3 votes\" width=\"$procent3a\" src=\"poll-balk.gif\">$procent3a%<br>
Totaal: $total";
}
?>
<?php
$vraag = 'Wat vind je van de site?' ;
$antwoord1 = 'Goed' ;
$antwoord2 = 'Redelijk' ;
$antwoord3 = 'Slecht' ;
function ip( ) {
if ( getenv ( "HTTP_X_FORWARDED_FOR" ) ) { $IPadres = getenv ( "HTTP_X_FORWARDED_FOR" ) ; } elseif ( getenv ( "HTTP_CLIENT_IP" ) ) { $IPadres = getenv ( "HTTP_CLIENT_IP" ) ; } else {
$IPadres = $_SERVER [ "REMOTE_ADDR" ] ;
}
return $IPadres ;
}
$IP = ip( ) ;
if ( isset ( $_POST [ 'submit' ] ) ) {
$queryinsert = "INSERT INTO poll (ip, antwoord) VALUES ('$IP ', '$antwoord ')" ;
}
$query = "SELECT * FROM poll WHERE ip='$IP '" ;
$resultaat = mysql_query ( $query ) or
die ( "Er is iets mis met de database" ) ;
$Ipcheck = mysql_query ( "SELECT * FROM poll WHERE ip='$IP ' " ) ;
if ( $Ipchecked < 1 ) {
echo "<form naam='poll' action='' method='POST'> $vraag <br>
<input type='radio' name='antwoord' value='1'>$antwoord1 <br>
<input type='radio' name='antwoord' value='2'>$antwoord2 <br>
<input type='radio' name='antwoord' value='3'>$antwoord3 <br>
<input type='submit' value='Stem!' name='submit'></form>" ;
} else {
$row1 = mysql_query ( "SELECT * FROM poll WHERE antwoord='1' " ) ; $row2 = mysql_query ( "SELECT * FROM poll WHERE antwoord='2' " ) ; $row3 = mysql_query ( "SELECT * FROM poll WHERE antwoord='3' " ) ; //het totaal votes van de antwoorden
$total = $total1 + $total2 + $total3 ;
if ( $total != 0 )
{ $procent1a = round ( $total1 / $total * 100 ) ; $procent2a = round ( $total2 / $total * 100 ) ; $procent3a = round ( $total3 / $total * 100 ) ; }
$antwoord1 :<img height=\" 12\" alt=\" $total1 votes\" width=\" $procent1a \" src=\" poll-balk.gif\" >$procent1a %<br>
$antwoord2 :<img height=\" 12\" alt=\" $total2 votes\" width=\" $procent2a \" src=\" poll-balk.gif\" >$procent2a %<br>
$antwoord3 :<img height=\" 12\" alt=\" $total3 votes\" width=\" $procent3a \" src=\" poll-balk.gif\" >$procent3a %<br>
Totaal: $total " ;
}
?>
Ontani - 18/07/2005 18:54
-1
zorg er dan gewoon voor dat je pagina gerefreshed wordt nadat je geklikt hebt
<?
header("Location: index.php");
?>
<?
header ( "Location: index.php" ) ; ?>
gothmog - 18/07/2005 18:56 (laatste wijziging 18/07/2005 19:01)
Lid
hebben ze dat ook hier op sitemasters dan?
want daar kan ik maar 1 keer stemmen
edit: waar moet je dat neer zetten dan? die Location..
Ontani - 18/07/2005 19:02
-1
<?if(isset($_POST['submit']))
{
$queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
mysql_query($queryinsert) or die (mysql_error());
header("Location: index.php");
}?>
<? if ( isset ( $_POST [ 'submit' ] ) ) {
$queryinsert = "INSERT INTO poll (ip, antwoord) VALUES ('$IP ', '$antwoord ')" ;
header ( "Location: index.php" ) ; } ?>
nathanael - 18/07/2005 19:07
HTML gevorderde
nadat je het in het database heb gezet
dus:
<?php
$IP=ip();
if(isset($_POST['submit']))
{
$queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
mysql_query($queryinsert) or die (mysql_error());
header("location: index.php");
}
?>
<?php
$IP = ip( ) ;
if ( isset ( $_POST [ 'submit' ] ) ) {
$queryinsert = "INSERT INTO poll (ip, antwoord) VALUES ('$IP ', '$antwoord ')" ;
header ( "location: index.php" ) ; }
?>
En voordat je gaat zeggen, hij geeft een melding over headers already sentby out.....
zet <?php ob_start(); ?> helemaal bovenaan de pagina
en als je een pagina-systeem gebruikt, dus: index.php?page=poll
Dan moet je <?php ob_start(); ?> helemaal bovenaan op de index.php zetten
:cool:
gothmog - 18/07/2005 19:15
Lid
srry guys, maar het werkt niet, er kunnen nog steeds meerdere rijen van ip in de db komen...
Simon - 18/07/2005 19:27
PHP expert
ben je zeker dat de function ip() werkt?
doe anders eens
<?
echo "Jouw ip is".ip();
?>
gothmog - 18/07/2005 19:28
Lid
zeker, anders kon ik later toch ook nog stemmen, en kon ik die ip toch NIET in de DB zien, ik zie die namelijk wel
Simon - 18/07/2005 19:38
PHP expert
ik heb je code eens herschreven, mooier uitgelijnd etc...
hopelijk werkt ie (niet getest):
<?php
$vraag='Wat vind je van de site?';
$antwoord1='Goed';
$antwoord2='Redelijk';
$antwoord3='Slecht';
function ip() {
if(getenv("HTTP_X_FORWARDED_FOR")) {
$IPadres = getenv("HTTP_X_FORWARDED_FOR");
} elseif(getenv("HTTP_CLIENT_IP")) {
$IPadres = getenv("HTTP_CLIENT_IP");
} else {
$IPadres = $_SERVER["REMOTE_ADDR"];
}
return $IPadres;
}
$IP=ip();
if(!isset($_POST['submit']))
{
$Ipcheck = mysql_query("SELECT * FROM poll WHERE ip='$IP' ");
$Ipchecked = mysql_num_rows($Ipcheck);
if($Ipchecked == 0)
{
?>
<form naam='poll' action='' method='POST'>
<?= $vraag ?><br>
<input type='radio' name='antwoord' value='1'><?= $antwoord1 ?><br>
<input type='radio' name='antwoord' value='2'><?= $antwoord2 ?><br>
<input type='radio' name='antwoord' value='3'><?= $antwoord3 ?><br>
<input type='submit' value='Stem!' name='submit'>
</form>
<?
}
else
{
$query = mysql_query("SELECT * FROM poll");
$row1 = mysql_query("SELECT * FROM poll WHERE antwoord='1' ");
$row2 = mysql_query("SELECT * FROM poll WHERE antwoord='2' ");
$row3 = mysql_query("SELECT * FROM poll WHERE antwoord='3' ");
//het totaal votes van de antwoorden
$total1 = mysql_num_rows($row1);
$total2 = mysql_num_rows($row2);
$total3 = mysql_num_rows($row3);
$total = $total1+$total2+$total3;
if ($total != 0)
{
$procent1a = round($total1 / $total * 100);
$procent2a = round($total2 / $total * 100);
$procent3a = round($total3 / $total * 100);
}
echo $vraag."<br>";
echo $antwoord1.":<img height=\"12\" alt=\"".$total1 votes."\" width=\"".$procent1a."\" src=\"poll-balk.gif\">".$procent1a."%<br>";
echo $antwoord2.":<img height=\"12\" alt=\"".$total2 votes."\" width=\"".$procent2a."\" src=\"poll-balk.gif\">".$procent2a."%<br>";
echo $antwoord3.":<img height=\"12\" alt=\"".$total3 votes."\" width=\"".$procent3a."\" src=\"poll-balk.gif\">".$procent3a."%<br>";
echo "Totaal: ".$total;
}
}
else
{
$queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
mysql_query($queryinsert) or die (mysql_error());
}
?>
<?php
$vraag = 'Wat vind je van de site?' ;
$antwoord1 = 'Goed' ;
$antwoord2 = 'Redelijk' ;
$antwoord3 = 'Slecht' ;
function ip( ) {
if ( getenv ( "HTTP_X_FORWARDED_FOR" ) ) { $IPadres = getenv ( "HTTP_X_FORWARDED_FOR" ) ; } elseif ( getenv ( "HTTP_CLIENT_IP" ) ) { $IPadres = getenv ( "HTTP_CLIENT_IP" ) ; } else {
$IPadres = $_SERVER [ "REMOTE_ADDR" ] ;
}
return $IPadres ;
}
$IP = ip( ) ;
if ( ! isset ( $_POST [ 'submit' ] ) ) {
$Ipcheck = mysql_query ( "SELECT * FROM poll WHERE ip='$IP ' " ) ;
if ( $Ipchecked == 0 )
{
?>
<form naam='poll' action='' method='POST'>
<?= $vraag ?> <br>
<input type='radio' name='antwoord' value='1'><?= $antwoord1 ?> <br>
<input type='radio' name='antwoord' value='2'><?= $antwoord2 ?> <br>
<input type='radio' name='antwoord' value='3'><?= $antwoord3 ?> <br>
<input type='submit' value='Stem!' name='submit'>
</form>
<?
}
else
{
$row1 = mysql_query ( "SELECT * FROM poll WHERE antwoord='1' " ) ; $row2 = mysql_query ( "SELECT * FROM poll WHERE antwoord='2' " ) ; $row3 = mysql_query ( "SELECT * FROM poll WHERE antwoord='3' " ) ; //het totaal votes van de antwoorden
$total = $total1 + $total2 + $total3 ;
if ( $total != 0 )
{
$procent1a = round ( $total1 / $total * 100 ) ; $procent2a = round ( $total2 / $total * 100 ) ; $procent3a = round ( $total3 / $total * 100 ) ; }
echo $antwoord1 . ":<img height=\" 12\" alt=\" " . $total1 votes
. "\" width=\" " . $procent1a . "\" src=\" poll-balk.gif\" >" . $procent1a . "%<br>" ; echo $antwoord2 . ":<img height=\" 12\" alt=\" " . $total2 votes
. "\" width=\" " . $procent2a . "\" src=\" poll-balk.gif\" >" . $procent2a . "%<br>" ; echo $antwoord3 . ":<img height=\" 12\" alt=\" " . $total3 votes
. "\" width=\" " . $procent3a . "\" src=\" poll-balk.gif\" >" . $procent3a . "%<br>" ; }
}
else
{
$queryinsert = "INSERT INTO poll (ip, antwoord) VALUES ('$IP ', '$antwoord ')" ;
}
?>
gothmog - 18/07/2005 22:06
Lid
thnx man, met een paar aanpassingen (parse errors weghalen) is dat opgelost!
alleen nu geeft ie de resultaten niet weer, ik heb geen id hoe dat komt...
Simon - 19/07/2005 19:13
PHP expert
<?
echo $antwoord1.":<img height=\"12\" alt=\"".$total1." votes"\" width=\"".$procent1a."\" src=\"poll-balk.gif\">".$procent1a."%<br>";
echo $antwoord2.":<img height=\"12\" alt=\"".$total2." votes"\" width=\"".$procent2a."\" src=\"poll-balk.gif\">".$procent2a."%<br>";
echo $antwoord3.":<img height=\"12\" alt=\"".$total3." votes"\" width=\"".$procent3a."\" src=\"poll-balk.gif\">".$procent3a."%<br>";
?>
<?
echo $antwoord1 . ":<img height=\" 12\" alt=\" " . $total1 . " votes" \
" width=\" " . $procent1a . "\" src=\" poll-balk.gif\" >" . $procent1a . "%<br>" ; echo $antwoord2 . ":<img height=\" 12\" alt=\" " . $total2 . " votes" \
" width=\" " . $procent2a . "\" src=\" poll-balk.gif\" >" . $procent2a . "%<br>" ; echo $antwoord3 . ":<img height=\" 12\" alt=\" " . $total3 . " votes" \
" width=\" " . $procent3a . "\" src=\" poll-balk.gif\" >" . $procent3a . "%<br>" ; ?>
probeer zo eens
Gesponsorde links
Dit onderwerp is gesloten .