login  Naam:   Wachtwoord: 
Registreer je!
 Forum

fout

Offline gothmog - 18/07/2005 18:46
Avatar van gothmogLid 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
Offline Ontani - 18/07/2005 18:48
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
controleren op ip of werken met cookies
Offline Bart - 18/07/2005 18:50
Avatar van Bart PHP expert kun je stukje code laten zien zodat hij het ook snapt?:)
Offline gothmog - 18/07/2005 18:51 (laatste wijziging 18/07/2005 18:53)
Avatar van gothmog 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) 

  1. <?php
  2. $vraag='Wat vind je van de site?';
  3. $antwoord1='Goed';
  4. $antwoord2='Redelijk';
  5. $antwoord3='Slecht';
  6.  
  7.  
  8. function ip() {
  9. if(getenv("HTTP_X_FORWARDED_FOR")) {
  10. $IPadres = getenv("HTTP_X_FORWARDED_FOR");
  11. } elseif(getenv("HTTP_CLIENT_IP")) {
  12. $IPadres = getenv("HTTP_CLIENT_IP");
  13. } else {
  14. $IPadres = $_SERVER["REMOTE_ADDR"];
  15. }
  16. return $IPadres;
  17. }
  18.  
  19. $IP=ip();
  20.  
  21. if(isset($_POST['submit']))
  22. {
  23. $queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
  24. mysql_query($queryinsert) or die (mysql_error());
  25. }
  26.  
  27.  
  28. $query = "SELECT * FROM poll WHERE ip='$IP'";
  29. $resultaat = mysql_query($query) or die ("Er is iets mis met de database");
  30. $obj=mysql_fetch_object($resultaat);
  31.  
  32. $Ipcheck=mysql_query("SELECT * FROM poll WHERE ip='$IP' ");
  33. $Ipchecked=mysql_num_rows($Ipcheck);
  34.  
  35. if($Ipchecked < 1){
  36. echo "<form naam='poll' action='' method='POST'>
  37. $vraag <br>
  38. <input type='radio' name='antwoord' value='1'>$antwoord1<br>
  39. <input type='radio' name='antwoord' value='2'>$antwoord2<br>
  40. <input type='radio' name='antwoord' value='3'>$antwoord3<br>
  41. <input type='submit' value='Stem!' name='submit'></form>";
  42. } else {
  43. $query = mysql_query("SELECT * FROM poll");
  44. $row1 = mysql_query("SELECT * FROM poll WHERE antwoord='1' ");
  45. $row2 = mysql_query("SELECT * FROM poll WHERE antwoord='2' ");
  46. $row3 = mysql_query("SELECT * FROM poll WHERE antwoord='3' ");
  47. //het totaal votes van de antwoorden
  48. $total1 = mysql_num_rows($row1);
  49. $total2 = mysql_num_rows($row2);
  50. $total3 = mysql_num_rows($row3);
  51. $total = $total1+$total2+$total3;
  52. if ($total != 0)
  53. { $procent1a = round($total1 / $total * 100);
  54. $procent2a = round($total2 / $total * 100);
  55. $procent3a = round($total3 / $total * 100);
  56. }
  57. echo "$vraag<br>
  58. $antwoord1:<img height=\"12\" alt=\"$total1 votes\" width=\"$procent1a\" src=\"poll-balk.gif\">$procent1a%<br>
  59. $antwoord2:<img height=\"12\" alt=\"$total2 votes\" width=\"$procent2a\" src=\"poll-balk.gif\">$procent2a%<br>
  60. $antwoord3:<img height=\"12\" alt=\"$total3 votes\" width=\"$procent3a\" src=\"poll-balk.gif\">$procent3a%<br>
  61. Totaal: $total";
  62. }
  63. ?>
Offline Ontani - 18/07/2005 18:54
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
zorg er dan gewoon voor dat je pagina gerefreshed wordt nadat je geklikt hebt

  1. <?
  2. header("Location: index.php");
  3. ?>
Offline gothmog - 18/07/2005 18:56 (laatste wijziging 18/07/2005 19:01)
Avatar van gothmog 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..
Offline Ontani - 18/07/2005 19:02
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
  1. <?if(isset($_POST['submit']))
  2. {
  3. $queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
  4. mysql_query($queryinsert) or die (mysql_error());
  5. header("Location: index.php");
  6. }?>
Offline nathanael - 18/07/2005 19:07
Avatar van nathanael Gouden medaille

HTML gevorderde
nadat je het in het database heb gezet

dus:
  1. <?php
  2. $IP=ip();
  3.  
  4. if(isset($_POST['submit']))
  5. {
  6. $queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
  7. mysql_query($queryinsert) or die (mysql_error());
  8.  
  9. header("location: index.php");
  10. }
  11. ?>


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:
Offline gothmog - 18/07/2005 19:15
Avatar van gothmog Lid srry guys, maar het werkt niet, er kunnen nog steeds meerdere rijen van ip in de db komen...
Offline Simon - 18/07/2005 19:27
Avatar van Simon PHP expert ben je zeker dat de function ip() werkt?
doe anders eens
  1. <?
  2. echo "Jouw ip is".ip();
  3. ?>


Offline gothmog - 18/07/2005 19:28
Avatar van gothmog 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
Offline Simon - 18/07/2005 19:38
Avatar van Simon PHP expert ik heb je code eens herschreven, mooier uitgelijnd etc...
hopelijk werkt ie (niet getest):
  1. <?php
  2. $vraag='Wat vind je van de site?';
  3. $antwoord1='Goed';
  4. $antwoord2='Redelijk';
  5. $antwoord3='Slecht';
  6.  
  7.  
  8. function ip() {
  9. if(getenv("HTTP_X_FORWARDED_FOR")) {
  10. $IPadres = getenv("HTTP_X_FORWARDED_FOR");
  11. } elseif(getenv("HTTP_CLIENT_IP")) {
  12. $IPadres = getenv("HTTP_CLIENT_IP");
  13. } else {
  14. $IPadres = $_SERVER["REMOTE_ADDR"];
  15. }
  16. return $IPadres;
  17. }
  18.  
  19. $IP=ip();
  20.  
  21. if(!isset($_POST['submit']))
  22. {
  23. $Ipcheck = mysql_query("SELECT * FROM poll WHERE ip='$IP' ");
  24. $Ipchecked = mysql_num_rows($Ipcheck);
  25.  
  26. if($Ipchecked == 0)
  27. {
  28. ?>
  29. <form naam='poll' action='' method='POST'>
  30. <?= $vraag ?><br>
  31. <input type='radio' name='antwoord' value='1'><?= $antwoord1 ?><br>
  32. <input type='radio' name='antwoord' value='2'><?= $antwoord2 ?><br>
  33. <input type='radio' name='antwoord' value='3'><?= $antwoord3 ?><br>
  34. <input type='submit' value='Stem!' name='submit'>
  35. </form>
  36. <?
  37. }
  38. else
  39. {
  40. $query = mysql_query("SELECT * FROM poll");
  41. $row1 = mysql_query("SELECT * FROM poll WHERE antwoord='1' ");
  42. $row2 = mysql_query("SELECT * FROM poll WHERE antwoord='2' ");
  43. $row3 = mysql_query("SELECT * FROM poll WHERE antwoord='3' ");
  44. //het totaal votes van de antwoorden
  45. $total1 = mysql_num_rows($row1);
  46. $total2 = mysql_num_rows($row2);
  47. $total3 = mysql_num_rows($row3);
  48. $total = $total1+$total2+$total3;
  49. if ($total != 0)
  50. {
  51. $procent1a = round($total1 / $total * 100);
  52. $procent2a = round($total2 / $total * 100);
  53. $procent3a = round($total3 / $total * 100);
  54. }
  55. echo $vraag."<br>";
  56. echo $antwoord1.":<img height=\"12\" alt=\"".$total1 votes."\" width=\"".$procent1a."\" src=\"poll-balk.gif\">".$procent1a."%<br>";
  57. echo $antwoord2.":<img height=\"12\" alt=\"".$total2 votes."\" width=\"".$procent2a."\" src=\"poll-balk.gif\">".$procent2a."%<br>";
  58. echo $antwoord3.":<img height=\"12\" alt=\"".$total3 votes."\" width=\"".$procent3a."\" src=\"poll-balk.gif\">".$procent3a."%<br>";
  59. echo "Totaal: ".$total;
  60. }
  61. }
  62. else
  63. {
  64. $queryinsert="INSERT INTO poll (ip, antwoord) VALUES ('$IP', '$antwoord')";
  65. mysql_query($queryinsert) or die (mysql_error());
  66. }
  67. ?>
Offline gothmog - 18/07/2005 22:06
Avatar van gothmog 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...
Offline Simon - 19/07/2005 19:13
Avatar van Simon PHP expert
  1. <?
  2. echo $antwoord1.":<img height=\"12\" alt=\"".$total1." votes"\" width=\"".$procent1a."\" src=\"poll-balk.gif\">".$procent1a."%<br>";
  3. echo $antwoord2.":<img height=\"12\" alt=\"".$total2." votes"\" width=\"".$procent2a."\" src=\"poll-balk.gif\">".$procent2a."%<br>";
  4. echo $antwoord3.":<img height=\"12\" alt=\"".$total3." votes"\" width=\"".$procent3a."\" src=\"poll-balk.gif\">".$procent3a."%<br>";
  5. ?>


probeer zo eens 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.262s