login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Commentaar Systeem (Opgelost)

Offline RocketLauncher3G - 10/07/2009 11:37 (laatste wijziging 10/07/2009 12:17)
Avatar van RocketLauncher3GNieuw lid Hallo,

Ik ben een commentaar systeem aan het maken, maar ik heb een klein probleempje met de variabele.

De code die ik nu heb:
  1. <?php
  2.  
  3. if (!isset($_SESSION['validate'])) {
  4. $_SESSION['validate'] = rand(1000,9999);
  5. }
  6.  
  7. <form action="" method="POST">
  8. <table>
  9. <tr><td>Je naam:</td><td><input type="text" name="naam" /></td></tr>
  10. <tr><td>Je bericht:</td><td><textarea cols="35" rows="12" name="bericht">Type hier je bericht!</textarea></td></tr>
  11. <tr><td>Bewijs dat je menselijk bent:</td><td>'.$_SESSION["validate"].'</td></tr>
  12. <tr><td><input type="hidden" name="gedaan" value="1"></td></tr>
  13. <tr><td><input class="button" type="submit" value="Plaats bericht" /></td><td><input class="button" type="reset" value="Herstel" /></td></tr>
  14. </table>
  15. </form>
  16. ';
  17.  
  18.  
  19. if (isset($_POST['naam']) and isset($_POST['bericht'])) {
  20. $tekst = "<div class=\"comments\">Op ".date("d-m-y") . time()." zei <strong>".$_POST['naam']."</strong>:\n<br />".$_POST['bericht']."<br /></div>\n\n";
  21.  
  22. //dan haal je de content van het bericht op:
  23. $bestand = file_get_contents("comments.txt");
  24.  
  25. file_put_contents("comments.txt", $tekst."¬", FILE_APPEND);
  26. echo $tekst;
  27. }
  28.  
  29. ?>


Ik weet dat je eerst een sessie nodig hebt om een sessie variable op te slaan, maar deze wordt ergens ingebed (PHP.net: include('');)

Maar nu kom ik dus de hele tijd op de site (deze site) en zegt hij de hele tijd hetzelfde getal.

Ik wil dat die variabele overgaat zodra de gebruiker van die site afgaat, of hem ververst, maar als de gebruiker op verzenden drukt, dat hij gelijk blijft...

Hoe doe ik zoiets?

Die keer dat ik 'm had, was waarschijnlijk gewoon een foutje, hij doet het niet meer!! AAA  

5 antwoorden

Gesponsorde links
Offline Koen - 10/07/2009 12:15
Avatar van Koen PHP expert Is je probleem nu opgelost of niet? PM dan gewoon even naar een crewlid om je topic te heropenen in plaats van die titel aan te passen 
Offline valles10 - 10/07/2009 12:29
Avatar van valles10 HTML interesse 1. wrm gebruik je een sessie voor een comment system?

2. waarom maak je niet gemakkelijk door database te gebruiken?


3.Als je dat random getal in een sessie wilt steken is dat niet echt veilig? maar wil je het toch persé dan moet je zorgen dat:

  1. if (!isset($_SESSION['validate'])){
  2. $random = rand(1000,9999);
  3. $_SESSION['validate'] = $random;
  4. $randomcheck = $random;
  5. }else{
  6. $randomcheck = $_SESSION['validate'];
  7. }

Offline RocketLauncher3G - 10/07/2009 12:37
Avatar van RocketLauncher3G Nieuw lid Die sessie gebruik ik omdat ik wil dat de gebruiker moet laten zien dat hij een mens is, en geen computer.

Databases gebruiken gaat ook wat lastig, omdat mijn hosting maar 1 database toestaat.

En als ik het niet in een sessie doe, dan veranderd hij het per keer dat je bekijkt.

Hoe zit zo'n simpel systeem in elkaar? (ik bedoel, dat je een aantal getallen ziet, en dat je die getallen moet overnemen, en hoe sla je die getallen op??? Is deze manier wel veilig, of kan ik beter een andere gebruiken?)

--Sander (En inderdaad, hij was nog niet opgelost! (ik weet nu dat ik gewoon een van jullie kan PM'en ))
Offline valles10 - 12/07/2009 10:16
Avatar van valles10 HTML interesse je maakt gwn variable $random = rand(1000, 9999);

je laat in een onselecteerbare div de $random echoen en bij de check moet je gwn $random met het ingevulde bekijken..

dus via een hidden field geef je het echte random nummer mee naar de volgende pagina.

zodat je $_POST['hidden_random_check']; kunt vergelijken met $_POST['spry_ingevuld_door_user'];
als dat != niet zo is toon je alert en een return..

ik heb het op deze manier gedaan:

http://dutchlyrics.be/?p=contact

Nl. javascript; als de spry niet overeenkomt dan kan je NIET op de submit button klikken, en heb je geen sessies nodig.
Offline RocketLauncher3G - 13/07/2009 08:15
Avatar van RocketLauncher3G Nieuw lid Natuurlijk! Dat ik daar niet aan heb gedacht 

Bedankt! (Ik zal het eerst proberen voordat het opgelost wordt ;))
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s