login  Naam:   Wachtwoord: 
Registreer je!
 Forum

poll

Offline stijnhau - 18/04/2006 21:53
Avatar van stijnhauOnbekend hallo,

ik maak een poll.
dat gaat goed maar nu heb ik een probleempje.
hij slaat alles op en update het.
berekeningen zijn ook goed.
maar je kan altijd stemmen.
en ik zie niet hoe ik kan maken dat je maar 1 maal kan stemmen.
  1. if(...){
  2. $magstemmen = 0;
  3. }else{
  4. $magstemmen = 1;
  5. }

maar die eerste if kan ik niet.
ik wil zien of het ip al in die rij staat.
en hij slaat het zo op
,ip,ip,ip
als jumllie het niet verstaan leg ik het nog is uit.

13 antwoorden

Gesponsorde links
Offline vinTage - 18/04/2006 21:57
Avatar van vinTage Nieuw lid Zo iets gebruik ik voor mijn polleke

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3.  
  4. //uitlezen het ip om te kijken of je al gestemd hebt.
  5. $getIP = mysql_query("SELECT * FROM poll WHERE ipadres LIKE '".$ip."'") or die (mysql_error());
  6. while ($check = mysql_fetch_array($getIP))
  7. {
  8. $var = "ja";
  9. }
  10.  
  11. if($var !="ja")
  12. {
  13. //stemmen mag
  14. }
  15. else
  16. {
  17. //al gestemd
  18. }
  19. ?>
Offline stijnhau - 18/04/2006 22:01 (laatste wijziging 18/04/2006 22:05)
Avatar van stijnhau Onbekend had ik ook al in gedachten maar werkt zelker niet meer he.
het zit in 1 rij.
dus zo
,$ip,$ip,$ip,$ip
die $ip ei een ip adres natuurlijk.
maar weet niet hoe te zien of uw ip al in die lijst staat.
Offline Martijn1989 - 18/04/2006 22:27
Avatar van Martijn1989 PHP ver gevorderde
  1. <?php
  2.  
  3. $select = mysql_query("SELECT * FROM `$tabel` ORDER BY `id` DESC LIMIT 1") or die (Mysql_Error());
  4. $obj = mysql_fetch_assoc($select);
  5. $id = $obj['id'];
  6.  
  7. $select = mysql_query("SELECT * FROM `$tabel` WHERE `ip` LIKE '%". $_SERVER['REMOTE_ADDR'] ."%' AND `id` = '$id' ORDER BY `id` DESC LIMIT 1") or die (Mysql_Error());
  8. $aantal = mysql_num_rows($select);
  9. $obj = mysql_fetch_assoc($select);
  10.  
  11. if($aantal > 0) {
  12.  
  13. //niet stemmen
  14.  
  15. } else {
  16.  
  17. //wel stemmen
  18.  
  19. }
  20. ?>
Offline stijnhau - 19/04/2006 08:38
Avatar van stijnhau Onbekend niet getest mar zie dat het niet werkt.
hij slaat alles op in 1 rij
dus zo
vraag - antwoord1 - antwoord2 - antwoord3,... -stem1, -stem2, -stem3,... gekozen

en gekozen ziet er zo uit.
,ip,ip,ip,ip,ip,ip,ip
Offline Riny - 19/04/2006 09:01
Avatar van Riny Nieuw lid Waarom test je het niet dan?

Je hebt de ip's opgeslagen met telkens een komma ertussen.
Dan zal LIKE '%".$_SERVER['REMOTE_ADDR']."%' wel werken aangezien hij dan gewoon kijkt of hij er al tussen staat! 
Offline stijnhau - 19/04/2006 18:43 (laatste wijziging 19/04/2006 18:45)
Avatar van stijnhau Onbekend werkt niet hoor.
kan maar blijven stemmen.
Offline Xtent - 19/04/2006 18:52 (laatste wijziging 19/04/2006 18:53)
Avatar van Xtent Onbekend Probeer is iets in deze richting?
  1. <?
  2. $sel = mysql_query("SELECT gekozen FROM tabel WHERE vraag='vraag'");
  3. if($poll = mysql_fetch_assoc($sel)) {
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. if(preg_match("/$ip/",$poll['gekozen']) == 0) {
  6. // Als hij of zij dus nog mag stemmen.
  7. $magstemmen = 0;
  8. }else{
  9. // Als hij of zij al gestemt heeft.
  10. $magstemmen = 1;
  11. }
  12. }
  13. ?>
Offline stijnhau - 21/04/2006 19:19
Avatar van stijnhau Onbekend werkt ook niet hoor.
snap het niet hoor.
Offline vinTage - 21/04/2006 19:23
Avatar van vinTage Nieuw lid Ik weet niet of jij hetzelfde hebt al ik indertijd had (en niet in de gaten had)

Ik maak gebruik van zo'n No-ip programmatje en heb de domeinnaam in mn bookmarks, als ik iets local test dan test ik vaak via die link....maar dat heeft wel telkens een apart ip nummer en kan je dus zo ongeveer nonstop blijven stemmen.

Het duurde bij mij ook even voordat ik erachter was.

m.a.w. test je het via 127.0.0.1 ?
Zoniet, doe dat dan maar
Offline stijnhau - 21/04/2006 19:25
Avatar van stijnhau Onbekend nee k test het op de host zelf.
Offline zwinselman - 21/04/2006 21:47
Avatar van zwinselman Lid zelf sla ik gestemde ip op in een aparte tabel.
Hierin slaat ie de poll id en het ip op bij het stemmen.
vervolgend tijdens stemmen de volgende controle:

  1. $query = "SELECT * FROM poll_gestemd WHERE poll_id = 'POLL_ID' AND ip = '".$_SERVER['REMOTE_ADDR']."'";
  2. $result5 = mysql_query($query) or die (mysql_error());
  3. if(mysql_num_rows($result5)==1)
  4. {
  5. echo "U heeft al gestemd op deze poll.";
  6. }
  7. else
  8. {
  9. doorgaan
  10. }


Bij mij werkt ie prima.
Misschienbij jou ook?
Offline Gerard - 22/04/2006 01:38 (laatste wijziging 22/04/2006 01:38)
Avatar van Gerard Ouwe rakker Het beste is inderdaad om alle stemmen op te slaan in een aparte tabel. Op die manier blijft je database ook goed genormaliseerd. Je hebt nu een herhalende groep binnen 1 tupel, dat is niet goed.
Offline stijnhau - 22/04/2006 18:27
Avatar van stijnhau Onbekend ah oke dat wil zegge dat ik het kan herscripten .
als iemand de oplosiing eet zeg het maar anders ga ik dat wlze doen hoor.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.212s