login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Cookie plakken in bestaande code

Offline baszer - 15/03/2006 19:15
Avatar van baszerNieuw lid Jo,
ik heb een kladblokkie op mijn site, maar vandaag ging ik kijken had een of andere dbiel twintig keer op enter gedrukt, nu wil ik graag een cookie inhebben, dat je bijv. maar een keer per tien minuten een berichtje kan posten, iemand een idee hoe je in de volgende code een simpel klein cookietje kan plakken (of een ander simpel idee hoe je ervoor kan zorgen dat j maar een x in de zoveel minuten ene bericht kan posten)

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <title>Prikbord</title>
  6. <link href=".../styleprikbord.css" rel="stylesheet" type="text/css" />
  7.  
  8. </head>
  9.  
  10. <body><?php
  11. $commentaar=$_POST["commentaar"];
  12. $naam=$_POST["naam"];
  13. echo "<H2>kladblok</H2>\n";
  14. echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">\n";
  15. echo "<p>Je naam : <br><input type=\"text\" name=\"naam\"><br>\n";
  16. echo "Wat moet je kwijt:<br>\n";
  17. echo "<textarea cols=\"55\" rows=\"5\" wrap=\"soft\" name=\"commentaar\"></textarea><br>\n";
  18. echo "<input type=\"submit\" value=\"Bericht plaatsen\"></p>\n";
  19. echo "<hr>\n";
  20. echo "<p><h2>Wat is er zoal gezegd?</h2></p>\n";
  21.  
  22. $tekstfile="kladblok.txt";
  23. if (isset($commentaar) && naam != "") {
  24. $pointer=fopen($tekstfile,"r+");
  25. $oudcommentaar=fread($pointer,filesize($tekstfile));
  26. $date=date("j.n.Y");
  27. $commentaar=htmlspecialchars($commentaar);
  28. $commentaar=stripslashes(nl2br($commentaar));
  29. $geschreven="<p><strong>$naam</strong> heeft geschreven op $date :
  30. <br><br>$commentaar</p><hr>\n";
  31. rewind($pointer);
  32. fputs($pointer,"$geschreven\n$oudcommentaar\n");
  33. }
  34. readfile($tekstfile);
  35. ?>
  36.  
  37. </body>
  38. </html>


alvast bdankt

5 antwoorden

Gesponsorde links
Offline vinTage - 15/03/2006 19:21
Avatar van vinTage Nieuw lid cookies niet accepteren en dan weer 20 keer klikken 

Als je een header redirect meegeeft, dan kunnen ze wel op f5 klikken, maar dan gebeurd er niks meer.
(dus ze moeten alles wéér invullen)

Verder kan je ook het ip loggen en dan checken of er "minimaal" X tijd is verstreken.

Offline Simon - 15/03/2006 19:57 (laatste wijziging 15/03/2006 19:58)
Avatar van Simon PHP expert zoals VinTage zegt: gooi de tijd en ip in de database, niet in cookie want die kun je verwijderen of blokkeren

  1. <?php
  2. $date_laatst_gepost = ""; // ophalen uit db
  3. $date_nu = time();
  4. $date_tussen = 600; // in seconden
  5.  
  6. if($date_laatst_gepost + $date_tussen =< $date_nu) {
  7. //OK, je mag posten
  8. //Toon form
  9. //gebruik UPDATE (of INSERT als hij nog niets gepost heeft) om
  10. //IP en $date van het posten op te slaan
  11. }
  12. elseif($date_laatst_gepost + $date_tussen > $date_nu) {
  13. //Errormelding
  14. echo 'Je moet 10 minuten wachten voor je opnieuw mag posten!'; // 10 minuten volledig aan te passen ;-)
  15. }
  16. ?>

Dit gewoon als voorbeeld
Offline baszer - 15/03/2006 22:26
Avatar van baszer Nieuw lid ik kan dit scriptje hierboven niet zo ff tussen voor mijn bestaande scriptje plakken ofwel?, het geeft (als ik het wel doe) een error namelijk 
Offline Ultimatum - 15/03/2006 22:45
Avatar van Ultimatum PHP expert @baszer, dit forum is om vragen te stellen , het meeste codeer werk mag je zelf doen 

@simon je hoeft die laatste elseif niet eens te doen, je kan ook gewoon else doen want als het gelijk is bij die 1ste moet het wel ongelijk zijn bij de 2de 
Offline baszer - 15/03/2006 22:55
Avatar van baszer Nieuw lid @ultimatum, jep je hebt glijk! maar simon is gwoon goed bezig!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.241s