login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tijdsverschil tussen posts

Offline Dark_Paul - 26/06/2006 21:39
Avatar van Dark_PaulPHP ver gevorderde ik wil een minimaal tijdsverschil inbouwen tussen posts. het tijdsverschil moet een minuut zijn, om spammen te voorkomen. ik heb dit stukje al:
  1. $qTime= mysql_query("
  2. SELECT `date`,
  3. `time`
  4. FROM `guestbook`
  5. WHERE `ip` = '".$vIP."' ");
  6.  
  7. $result_Time = mysql_result($qTime,0);
  8.  
  9. while ($aTime = mysql_fetch_array($qTime))
  10. {
  11. $sDate = $aTime['date'];
  12. $sTime = $aTime['time'];
  13. }
  14.  
  15. if ($result_Time != 0)
  16. {
  17. if ($dDate == $sDate && $tTime < ($sTime + 60))
  18. {
  19. header ("location: guesterror.html");
  20. }
  21. }

voor degene die 't nog willen weten:
  1. $vIP = $_SERVER["REMOTE_ADDR"];

voor zover ik weet, controleerd dit stukje of de datum van nu gelijk is aan de datum van de vorige post van het desbetreffende IP, en of de tijd van nu kleiner is dan de tijd van de post + 1 minuut. als dat is, verwijs naar de error-pagina. toch wordt alles gewoon gepost. komt dit misschien doordat $sTime als 'date(H:i:s)' in een DATE-kolom is opgeslagen? of zit er een andere (stomme) fout in?

3 antwoorden

Gesponsorde links
Offline Button - 26/06/2006 21:59 (laatste wijziging 26/06/2006 22:15)
Avatar van Button PHP ver gevorderde volgens mij komt het idd omdat het als date(blabla) in een DATE kolom is opgeslagen, kan je bij een gewone date() wel gewoon een getal 60 bijtellen. Gebruik best een timestamp.
Offline Gerard - 26/06/2006 22:19
Avatar van Gerard Ouwe rakker
  1. <?php
  2. $qTime = mysql_query("SELECT COUNT(*)
  3. FROM guestbook
  4. WHERE ip = '".$vIP."'
  5. AND ".time()." - UNIX_TIMESTAMP(CONCAT_WS(' ', date, time)) < 60");
  6.  
  7. if (mysql_result($qTime, 0) > 0) {
  8.  
  9. header('location: guesterror.html');
  10.  
  11. } else {
  12.  
  13. // Verder gaan
  14.  
  15. }
  16. ?>
Offline Dark_Paul - 28/06/2006 18:16
Avatar van Dark_Paul PHP ver gevorderde okej, dankje Proximus, dat werkt ik ga nog ff uitzoeken wat je doet met UNIX_TIMESTAMP enzo, maar 't is in ieder geval een heeeel stuk korter dan wat ik had.. ik denk dat ik wel een heel eind snap wat je in de query doet. Bedankt!! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s