login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gastenboekstijl

Offline BjoJnD - 24/10/2007 20:08 (laatste wijziging 24/10/2007 20:10)
Avatar van BjoJnDNieuw lid ik heb namelijk een gastenboekje, die nu volledig voldoet aan wat ik zocht. Alles werkt perfect. Ik heb het in mijn layout gestopt en het werkt nog prima. Nu heb ik een kleine bug ontdekt die ik niet direct kan verwijderen. Normaalgezien als je een bericht verstuurd hebt, dan wordt je doorgeschakeld naar het gastenboek. Dit werkt zonder layout, maar als ik het toepas als de code in de layout staat, dan krijg ik een lege pagina met mijn layout erin en niet het gastenboek.
dit is wat in de code staat:
  1. header ("location: lezen.php");


de pagina van het gastenboek heeft die naam.

10 antwoorden

Gesponsorde links
Offline finduilas - 24/10/2007 21:30
Avatar van finduilas PHP gevorderde We hebben meer code nodig om iets te kunnen zien.
Offline BjoJnD - 24/10/2007 21:44
Avatar van BjoJnD Nieuw lid ik heb het ondertussen al gevonden 
Offline Rens - 24/10/2007 21:46
Avatar van Rens Gouden medaille

Crew algemeen
Geef de oplossing dan even?
Offline BjoJnD - 24/10/2007 22:18 (laatste wijziging 24/10/2007 22:24)
Avatar van BjoJnD Nieuw lid ik dacht dat het opgelost was ik heb ook een vriend het laten testen, en nu blijkt het toch opnieuw mis te lopen.

  1. <?php
  2.  
  3. include ("config.php");
  4.  
  5. //Submit gedrukt
  6.  
  7. if ($_POST['Submit']) {
  8. function check_email($address) {
  9. list($local, $host) = explode("@", $address);
  10. $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
  11. $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
  12. $match_local = eregi($pattern_local, $local);
  13. $match_host = eregi($pattern_host, $host);
  14. if($match_local && $match_host) {
  15. return 1;
  16. } else {
  17. return 0;
  18. }
  19. }
  20.  
  21. //controle
  22.  
  23. if (!trim($_POST['naam']))
  24. $error="Je moet je naam invullen";
  25. elseif(!check_email($_POST['emailadres']))
  26. $error="Je moet een geldig e-mailadres invullen";
  27. elseif (!trim($_POST['bericht']))
  28. $error="Je moet een bericht invullen";
  29. elseif ($_COOKIE[Gastenboek] == "1") {
  30. $error="Je kan geen bericht posten omdat je er al één hebt gepost";
  31. }
  32.  
  33. //error
  34.  
  35. if ($error != "") {
  36.  
  37.  
  38. echo "
  39. <center>
  40. <table class=\"gastenboek\" width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">
  41. <tr>
  42. <td align=\"center\">
  43. <b>$error</b>
  44. <br>
  45. <form method=\"post\" action=\"javascript:history.go(-1)\">
  46. <input type=\"submit\" name=\"Terug\" value=\"Terug\">
  47. </form>
  48. </td>
  49. </tr>
  50. </table>
  51. </center>";
  52.  
  53.  
  54. //posten
  55.  
  56. } else {
  57.  
  58. $datum = date("Y-m-d");
  59. $tijd = date("H:i:s");
  60.  
  61. //query
  62.  
  63. $query="INSERT INTO gastenboek (naam, emailadres, website, bericht, datum, tijd)
  64. VALUES ('$_POST[naam]', '$_POST[emailadres]', '$_POST[website]', '$_POST[bericht]', '$datum', '$tijd')";
  65. mysql_query ($query) or die (mysql_error());
  66.  
  67. //cookie
  68.  
  69. setcookie(Gastenboek,"1",$tijd_cookie);
  70.  
  71. //terug naar gastenboek
  72.  
  73. header ("location: lezen.php");
  74. }
  75.  
  76. // hier komt de html form code
Offline SilVeX - 24/10/2007 23:04
Avatar van SilVeX HTML beginner zet op lijn 73 deze code:
  1. echo '<meta http-equiv="Refresh" content="0;url=lezen.php">';


Zou moeten werken
Offline BjoJnD - 24/10/2007 23:31
Avatar van BjoJnD Nieuw lid bedankt het werkt

zou er iets mis zijn met de volgende code van de cookie, want bij mij werkt het en bij sommigen die het hebben getest niet  

  1. //staat in config
  2.  
  3. $seconden=60*60*24;
  4. $tijd_cookie = time() + $seconden;
  5.  
  6.  
  7. //staat in het bestand waar post wordt gedaan
  8.  
  9. setcookie(Gastenboek,"1",$tijd_cookie);
  10.  
  11. // het controlestuk
  12.  
  13. if (!trim($_POST['naam']))
  14. $error="Je moet je naam invullen";
  15. elseif(!check_email($_POST['emailadres']))
  16. error="Je moet een geldig e-mailadres invullen";
  17. elseif (!trim($_POST['bericht']))
  18. $error="Je moet een bericht invullen";
  19. elseif ($_COOKIE[Gastenboek] == "1") {
  20. $error="Je kan geen bericht posten omdat je er al één hebt gepost";
  21. }
Offline ranco - 25/10/2007 08:03
Avatar van ranco PHP gevorderde Even tussendoor, het posten van een cookie om dubbele ingangen te voorkomen is niet echt waterdicht. Wanneer mensen hun cookies verwijderen kunnen ze gewoon weer een bericht plaatsen. Je kunt beter een database bijhouden met daarin alle ipadressen van mensen die al gepost hebben. Of een combinatie van ipadres en naam, of emailadres... enz.
Offline BjoJnD - 25/10/2007 13:22
Avatar van BjoJnD Nieuw lid uhu, je hebt gelijk, maar mijn kennis om dat in te bouwen reikt zo ver nog niet . Ik ben nu vooral bezig met scripts door te nemen en ik probeer ze te verstaan en zo leer ik dan hoe het allemaal in zijn werk gaat.
Toch bedankt voor de nuttige informatie en hulp  
Offline TotempaaltJ - 25/10/2007 17:17
Avatar van TotempaaltJ PHP interesse
  1. <td align=\"center\">
  2. <b>$error</b>
  3. <br>
  4. <form method=\"post\" action=\"javascript:history.go(-1)\">
  5. <input type=\"submit\" name=\"Terug\" value=\"Terug\">
  6. </form>
  7. </td>


Dit kan ook zo: (Korter)
  1. <td align=\"center\">
  2. <b>$error</b>
  3. <br>
  4. <input type=\"submit\" name=\"Terug\" value=\"Terug\" onclick="history.go(-1)">
  5. </td>
Offline Koen - 25/10/2007 17:20
Avatar van Koen PHP expert om header() ook te laten werken zet je

hélemaal (boven je HTML) bovenaan je pagina.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.252s