login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dubbel controlle in DB (Opgelost)

Offline willie - 21/11/2011 18:24 (laatste wijziging 21/11/2011 18:24)
Avatar van willie0 Ik ben bezig met een soort stem script voor mijn site.
Nou vraag ik mij alleen af hoe ik kan controleren als iemand al heeft gestemd op een gedicht.
Mijn DB structuur zit zo in elkaar
  1. CREATE TABLE IF NOT EXISTS `ip-adres` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `gedicht-id` varchar(32) DEFAULT NULL,
  4. `ip_nummer` varchar(20) DEFAULT NULL,
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Ik bedoel dus als iemand stemd met, wordt zijn ip opgeslagen en het gedicht_id.
Dus als hij weer op het zelfde wil stemmen hij een melding krijg (u heeft al gestemd op dit gedicht)
Wie kan mij daar even bij helpen.

6 antwoorden

Gesponsorde links
Offline Ontani - 21/11/2011 18:32
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Gewoon een select doen op gedicht-id en ip_nummer als dit 1 rij terug geeft heeft ie al gestemd anders nog niet en doe je een insert van de geselecteerde stem.
Bedankt door: willie
Offline willie - 21/11/2011 18:37 (laatste wijziging 21/11/2011 19:41)
Avatar van willie 0 Ik ben met stukje bezig geweest, maar loop nu even vast.
Tot nu toe heb ik dus dit (ps ik ben geen scripter)
  1. <?php
  2.  
  3. $gedichtid = $_GET['gedicht_id'];
  4. $ipnummer= $_GET['ip_nummer'];
  5.  
  6. require('connect.php');
  7.  
  8. $query = "SELECT * FROM ip-adres WHERE gedicht_id = $gedichtid AND ip_nummer = $ipnummer";
  9. $result = mysql_query($query, $mysql);
  10. echo $query;
  11.  
  12. if(!$result)
  13. {
  14. echo "<br />U heeft al gestemd op dit Gedicht !";
  15. }
  16. else
  17. {
  18. $squery="INSERT INTO ip-adres (ip_nummer, gedicht_id) VALUES ($ipnummer, $gedichtid)";
  19. mysql_query($squery) or die (mysql_error());
  20. }
  21. ?>

Dit is zo een beetje wat je bedoelde.
Maar ik krijg de volgende melding.
  1. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\Root\files\stem-gedicht.php on line 13
  2. SELECT * FROM ip-adres WHERE gedicht_id = 1 AND ip_nummer = 127.0.0.1
  3. U heeft al gestemd op dit Gedicht !

Ook geeft het aan dat ik al had gestemd, maar dat is dus niet zo.
Dus zit er iets fout.
Offline Ontani - 21/11/2011 20:15
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ip_nummer hoort tussen quotes te staan.

  1. ip_nummer = '$ipnummer'


Best doe je ook eerste even wat controles zodat niemand uw database kan verkloten:

  1. $gedichtid = mysql_real_escape_string($_GET['gedicht_id']);
  2. $ipnummer= mysql_real_escape_string($_GET['ip_nummer']);
Offline willie - 21/11/2011 20:44 (laatste wijziging 21/11/2011 20:56)
Avatar van willie 0 Ik ben nu de fout meldingen kwijd.
Maar ik kan tog nog meerdere keren stemmen.
Tot nu toe heb ik het dus zo gedaan,
  1. <?php
  2.  
  3. $gedichtid = mysql_real_escape_string($_GET['gedicht_id']);
  4. $ipnummer= mysql_real_escape_string($_GET['ip_nummer']);
  5.  
  6.  
  7. include("connect.php");
  8.  
  9. $query = "SELECT ip_nummer,gedicht_id FROM ipadressen WHERE gedicht_id = $gedichtid AND ip_nummer = '$ipnummer'";
  10. $result = mysql_query($query);
  11.  
  12. if(!$result)
  13. {
  14. echo "<br />U heeft al gestemd op dit Gedicht !";
  15. }
  16. else
  17. {
  18. $query="INSERT INTO ipadressen (ip_nummer,gedicht_id) VALUES ('$ipnummer','$gedichtid')";
  19. mysql_query($query) or die (mysql_error());{
  20. echo "U heeft U stem uit gebracht.";
  21. }
  22.  
  23. }
  24. ?>

kan ik dan niet beter count gebruiken inplaats van select
Offline vinTage - 21/11/2011 20:49 (laatste wijziging 21/11/2011 20:50)
Avatar van vinTage Nieuw lid
  1. if(mysql_num_rows(mysql_query("SELECT ip_nummer,gedicht_id FROM ipadressen WHERE gedicht_id = '".$gedichtid."' AND ip_nummer = '".$ipnummer."'")) > 0)
  2. {
  3. echo "<br />U heeft al gestemd op dit Gedicht !";
  4. }
  5. else
  6. {
  7. //rest

Maar waarom het ip in de url ... zo kan iedereen cheaten zoveel hij wil, gebruik $_SERVER['REMOTE_ADDR']
Bedankt door: willie
Offline willie - 21/11/2011 20:58 (laatste wijziging 21/11/2011 21:03)
Avatar van willie 0
vinTage schreef:
[..code..]
Maar waarom het ip in de url ... zo kan iedereen cheaten zoveel hij wil, gebruik $_SERVER['REMOTE_ADDR']


$_SERVER['REMOTE_ADDR'] Heb ik in de link staan, dus dat is een goed idee.

---------

Ik heb het aangepast, nu werkt het goed.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.241s