login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gastenboek controle fout

Offline Dark_Paul - 24/05/2006 19:25 (laatste wijziging 24/05/2006 19:27)
Avatar van Dark_PaulPHP ver gevorderde Ik heb een gastenboek gemaakt. Het hele kleine stukje dat de informatie verwerkt heb ik niet zelf gemaakt. Dit heeft iemand die ik ken een aantal maanden terug gemaakt aangezien ik nog niets van php af wist. Nu weet ik er ook nog niet zoveel vanaf, maar ik heb de afgelopen dagen veel geleerd. Maar toch kom ik hier niet uit. Ik heb dit gastenboek en ik heb een validatie erin gezet ( $ValidationOK ). Maar nu is het probleem dat de validatie al gaat kijken of die posts leeg zijn VOORDAT er überhaupt iets gepost is. Een vriend van me zei oplossen met een Function, maar dat werkte niet. Ook heb ik geprobeerd om hetzelfde te maken, maar het PHP-script pas na alle tabellen enzo te laten beginnen, en ook de form buiten het PHP gedeelte te houden.
Hieronder de code. Mijn excuses dat het toch een redelijk lang stuk is geworden, maar als je dan snappen jullie wat ik bedoel. Als je de oorspronkelijke bron hebt gezien ben je een half uur aan het lezen 

  1. <?php
  2. // FORM
  3. echo "<FORM ACTION=\"$_SERVER[PHP_SELF]\" METHOD=\"post\">
  4. <TR>
  5. <TH WIDTH=\"30px\">
  6. </TH>\n";
  7.  
  8. echo "<TR>
  9. <TH WIDTH=\"30px\"></TH>
  10. <TD CLASS=\"text\" WIDTH=\"100px\" ALIGN=\"LEFT\">
  11. <P CLASS=\"normal\">Name:</TD>
  12. <TH WIDTH=\"250\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Name\" SIZE=\"20\" CLASS=\"inputbox\">
  13. <TH WIDTH=\"220px\">
  14. </TR>\n";
  15. echo "<TR>
  16. <TH WIDTH=\"30px\"></TH>
  17. <TD CLASS=\"text\" WIDTH=\"100px\" ALIGN=\"LEFT\">
  18. <P CLASS=\"normal\">E-mail:</TD>
  19. <TH WIDTH=\"250\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"E-mail\" SIZE=\"20\" CLASS=\"inputbox\">
  20. <TH WIDTH=\"220px\">
  21. </TR>\n";
  22. echo "<TR>
  23. <TH WIDTH=\"30px\"></TH>
  24. <TD CLASS=\"text\" WIDTH=\"100px\" ALIGN=\"LEFT\">
  25. <P CLASS=\"normal\">Homepage:</TD>
  26. <TH WIDTH=\"250\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Homepage\" SIZE=\"20\" CLASS=\"inputbox\" VALUE=\"http://\">
  27. <TH WIDTH=\"220px\">
  28. </TR>\n";
  29. echo "<TR>
  30. <TH WIDTH=\"30px\"></TH>
  31. <TD CLASS=\"text\" WIDTH=\"100px\" ALIGN=\"LEFT\" VALIGN=\"TOP\">
  32. <P CLASS=\"normal\">Message:</TD>
  33. <TH WIDTH=\"250\" ALIGN=\"LEFT\"><TEXTAREA NAME=\"Message\" ROWS=\"5\" COLS=\"30\" CLASS=\"inputbox\"></TEXTAREA>
  34. <TH WIDTH=\"220px\">
  35. </TR>\n";
  36.  
  37. echo "<TR>
  38. <TH WIDTH=\"30px\"></TH>
  39. <TD CLASS=\"text\" WIDTH=\"100px\" ALIGN=\"LEFT\" VALIGN=\"TOP\"></TD>
  40. <TH WIDTH=\"250\" ALIGN=\"LEFT\"><INPUT TYPE=\"SUBMIT\" CLASS=\"submit\" VALUE=\"&nbsp;&nbsp;Send&nbsp;&nbsp;\"></TH>
  41. <TH WIDTH=\"220px\">
  42. </TR>\n";
  43.  
  44. echo "</FORM>\n";
  45.  
  46. $Name=$_POST['Name'];
  47. $Email=$_POST['E-mail'];
  48. $Home=$_POST['Homepage'];
  49. $Message=$_POST['Message'];
  50.  
  51. $ValidationOK=true;
  52. if ($_POST['Name']=="") $ValidationOK=false;
  53. if ($_POST['Message']=="") $ValidationOK=false;
  54. if (!$ValidationOK) {
  55. print "<meta http-equiv=\"refresh\" content=\"0;URL=guesterror.html\">";
  56. }
  57.  
  58. // SUBMIT
  59. $textfile="comment.txt";
  60. if (isset($Message) && Name != "") {
  61. $pointer=fopen($textfile,"r+");
  62. $oudcommentaar=fread($pointer,filesize($textfile));
  63. $Date=date("j.n.Y");
  64. $Message=htmlspecialchars($Message);
  65. $Message=stripslashes(nl2br($Message));
  66. $Written="
  67. <TR><TH HEIGHT=\"15px\"></TH></TR>
  68. <TR><TH WIDTH=\"30px\" ></TH>
  69. <TD WIDTH=\"600px\" COLSPAN=\"2\" CLASS=\"message\">
  70. <H2 CLASS=\"head\">
  71. $Name&nbsp;&nbsp;&nbsp;&nbsp;
  72. <A HREF=\"mailto:$Email\"><IMG SRC=\"images/g_email.jpg\" HEIGHT=\"13\" BORDER=\"0\"></A>&nbsp;&nbsp;&nbsp;&nbsp;
  73. <A HREF=\"$Home\" TARGET=\"_blank\"><IMG SRC=\"images/g_homepage.jpg\" HEIGHT=\"13\" BORDER=\"0\"></A>&nbsp;&nbsp;&nbsp;&nbsp;
  74. On&nbsp;$Date</H2>
  75. <P CLASS=\"normal\">$Message</P></TD>
  76. <TH WIDTH=\"50\"></TH>\n";
  77.  
  78. rewind($pointer);
  79. fputs($pointer,"$Written\n$oudcommentaar\n");
  80. }
  81. readfile($textfile);
  82. ?>


Het bestand guesterror.html heb ik nog niet aangemaakt, want ik wil eerst dit script werkend krijgen.

9 antwoorden

Gesponsorde links
Offline Crazed - 24/05/2006 19:28 (laatste wijziging 24/05/2006 19:28)
Avatar van Crazed PHP interesse Als ik het goed heb, zoek je zo iets:

  1. <?php
  2. if(!isset($_POST['Name']))
  3. {
  4. // Hier komt het formulier
  5. }
  6. else
  7. {
  8. // Hier komt de verwerking
  9. }
  10. ?>
Offline Dark_Paul - 24/05/2006 19:52 (laatste wijziging 24/05/2006 19:54)
Avatar van Dark_Paul PHP ver gevorderde Ik snap je niet helemaal. Wat je bedoelt is zoiets? (ik ben nog niet zo goed met php, dus als ik het in de verkeerde richting zoek...)

  1. <?php
  2. // Hierboven mijn pagina, vervolgens de <FORM>-tag en dan zoiets
  3. if(!isset($_POST['Name']))
  4. {
  5. echo "<INPUT TYPE=\"text\" NAME=\"Name\">
  6. }
  7.  
  8. if(!isset($_POST['Message']))
  9. {
  10. echo "<INPUT TYPE=\"text\" NAME=\"Message\">
  11.  
  12. else
  13. {
  14. $Name=$_POST['Name'];
  15. $Email=$_POST['E-mail'];
  16. $Home=$_POST['Homepage'];
  17. $Message=$_POST['Message'];
  18.  
  19. $ValidationOK=true;
  20. if ($_POST['Name']=="") $ValidationOK=false;
  21. if ($_POST['Message']=="") $ValidationOK=false;
  22. if (!$ValidationOK) {
  23. print "<meta http-equiv=\"refresh\" content=\"0;URL=guesterror.html\">";
  24. // Plus hier de rest van de validation achteraan
  25. }
  26. ?>

Dit is een beetje vereenvoudigd, maar zoek ik het in de goede richting?
Offline kokx - 24/05/2006 20:03 (laatste wijziging 24/05/2006 20:03)
Avatar van kokx Onbekend @Dark_paul: In dat stukje zit nogal een grote fout.
Ik verbeter het even:
  1. <?php
  2. // Hierboven mijn pagina, vervolgens de <FORM>-tag en dan zoiets
  3. if(!isset($_POST['Name']))
  4. {
  5. echo "<INPUT TYPE=\"text\" NAME=\"Name\">";
  6. }
  7.  
  8. if(!isset($_POST['Message']))
  9. {
  10. echo "<INPUT TYPE="text\" NAME=\"Message\">";
  11.  
  12. else
  13. {
  14. $Name=$_POST['Name'];
  15. $Email=$_POST['E-mail'];
  16. $Home=$_POST['Homepage'];
  17. $Message=$_POST['Message'];
  18.  
  19. $ValidationOK=true;
  20. if ($_POST['Name']=="") $ValidationOK=false;
  21. if ($_POST['Message']=="") $ValidationOK=false;
  22. if (!$ValidationOK) {
  23. print "<meta http-equiv="refresh\" content=\"0;URL=guesterror.html\">";
  24. // Plus hier de rest van de validation achteraan
  25. }
  26. ?>

Eigenlijk moet je ook niet zo veel html echo'en. Dat kost veel laadtijd.
Offline timo - 24/05/2006 20:04
Avatar van timo PHP ver gevorderde ik verbeter jou wel weer ff kokx:
  1. <?php
  2. // Hierboven mijn pagina, vervolgens de <FORM>-tag en dan zoiets
  3. if(!isset($_POST['Name']))
  4. {
  5. echo '<INPUT TYPE="text" NAME="Name">';
  6. }
  7.  
  8. if(!isset($_POST['Message']))
  9. {
  10. echo "<INPUT TYPE="text\" NAME=\"Message\">";
  11.  
  12. else
  13. {
  14. $Name=$_POST['Name'];
  15. $Email=$_POST['E-mail'];
  16. $Home=$_POST['Homepage'];
  17. $Message=$_POST['Message'];
  18.  
  19. $ValidationOK=true;
  20. if ($_POST['Name']=="") $ValidationOK=false;
  21. if ($_POST['Message']=="") $ValidationOK=false;
  22. if (!$ValidationOK) {
  23. print "<meta http-equiv="refresh" content=\"0;URL=guesterror.html\">";
  24. // Plus hier de rest van de validation achteraan
  25. }
  26. ?>
Offline kokx - 24/05/2006 20:07 (laatste wijziging 24/05/2006 20:09)
Avatar van kokx Onbekend Kan ik nix aan doen met die brakke code. Zie bij jouw ook nog fouten. Hij moet gewoon niet zo veel html echo'en.

Ik heb dat ff gedaan:
  1. <?php
  2. // Hierboven mijn pagina, vervolgens de <FORM>-tag en dan zoiets
  3. if(!isset($_POST['Name']))
  4. {
  5. ?><INPUT TYPE="text" NAME="Name"><?php
  6. }
  7.  
  8. if(!isset($_POST['Message']))
  9. {
  10. ?><INPUT TYPE="text" NAME="Message"><?php
  11.  
  12. else
  13. {
  14. $Name=$_POST['Name'];
  15. $Email=$_POST['E-mail'];
  16. $Home=$_POST['Homepage'];
  17. $Message=$_POST['Message'];
  18.  
  19. $ValidationOK=true;
  20. if ($_POST['Name']=="") $ValidationOK=false;
  21. if ($_POST['Message']=="") $ValidationOK=false;
  22. if (!$ValidationOK) {
  23. ?><meta http-equiv="refresh" content="0;URL=guesterror.html"><?php
  24. // Plus hier de rest van de validation achteraan
  25. }
  26. ?>


Edit: Ik kwam ook print tegen. Waarvoor heb je echo en print in 1 script nodig?? Of heb je een helehoop scripts bij elkaar gepropt?
Offline Dark_Paul - 24/05/2006 20:15 (laatste wijziging 24/05/2006 20:37)
Avatar van Dark_Paul PHP ver gevorderde ik snap denk ik wat jullie bedoelen. Het oorspronkelijke script wat ik had werkte ook met echo's, maar dan alleen voor de Form. Maar de Echos werden boven de html tags gezet, vandaar dat ik alles ge-echo'd heb. Maar nu weet ik dat dit niet moet en heb ik weer wat geleerd. Ik ga 't even vernieuwen en testen, als het werkt laat ik het weten en kan dit topic weer dicht
;-)

hmm.. testen is dus niet gelukt.. ik heb alles veranderd, maar nu krijg ik de volgende fout:
Parse error: syntax error, unexpected T_ELSE in /home/why-online.com/site/guestbook.php on line 334

ik heb eerlijk gezegd geen idee hoe dit komt. Ik heb bijna letterlijk erin gezet wat jullie hier typten.
hier is alleen 't stukje van Message en een stukje van de verwerking, anders wordt 't zo lang.

  1. <?php
  2. if(!isset($_POST['Homepage']))
  3. {
  4. ?> <INPUT TYPE="text" NAME="Homepage" SIZE="20" CLASS="inputbox">
  5. <?php
  6. }
  7. ?>
  8. <TH WIDTH="220px">
  9. </TR>
  10.  
  11. <TR>
  12. <TH WIDTH="30px"></TH>
  13. <TD CLASS="text" WIDTH="100px" ALIGN="LEFT">
  14. <P CLASS="normal"><STRONG>Message:</STRONG></TD>
  15. <TH WIDTH="250" ALIGN="LEFT">
  16. <?php
  17. if(!isset($_POST['Name']))
  18. {
  19. ?> <TEXTAREA NAME="Message" COLS="40" ROWS="8" CLASS="inputbox"></TEXTAREA>
  20. <?php
  21. }
  22. ?>
  23. <TH WIDTH="220px">
  24. </TR>
  25.  
  26. <TR>
  27. <TH WIDTH="30px"></TH>
  28. <TD CLASS="text" WIDTH="100px" ALIGN="LEFT"></TD>
  29. <TH WIDTH="250" ALIGN="LEFT">
  30. <?php
  31. if(!isset($_POST['Name']))
  32. {
  33. ?> <INPUT TYPE="submit" VALUE=" Send " CLASS="submit">
  34. <?php
  35. }
  36. ?>
  37. <TH WIDTH="220px">
  38. </TR>
  39. </HTML>
  40.  
  41.  
  42. <?php
  43. else
  44. {
  45. $Name= Trim(stripslashes($_POST['Name']));
  46. $Email= Trim(stripslashes($_POST['E-mail']));
  47. $Home= Trim(stripslashes($_POST['Homepage']));
  48. $Message= Trim(stripslashes($_POST['Message']));
  49.  
  50. // validation
  51. $validationOK=true;
  52. if (Trim($Name)=="") $validationOK=false;
  53. if (Trim($Message)=="") $validationOK=false;
  54. if (!$validationOK) {
  55. echo "<meta http-equiv=\"refresh\" content=\"0;URL=guesterror.html\">";
  56. }
Offline kokx - 24/05/2006 20:50 (laatste wijziging 24/05/2006 20:53)
Avatar van kokx Onbekend Gooi het hele script op plaatscode.be. Want ik weet nu natuurlijk niet wat lijn 334 is.
Edit: Ik denk dat ik de fout gevonden heb.
Dit mag natuurlijk niet:
  1. <?php
  2. }
  3. ?>
  4. <TH WIDTH="220px">
  5. </TR>
  6. </HTML>
  7.  
  8.  
  9. <?php
  10. else
  11. {
  12. ?>
Offline Dark_Paul - 24/05/2006 20:53 (laatste wijziging 25/05/2006 20:21)
Avatar van Dark_Paul PHP ver gevorderde lijn 334 is de regel met 'else' maar ik zal 't ff erop zetten.

hier staat ie: http://www.plaatscode.be/374/

ik heb 't geprobeerd zoals je zei, het nieuwe script staat hier:
http://www.plaatscode.be/389/

Dit is voor mij de enige manier, want die input velden moeten ind e tabel worden opgenomen, vanwege de lay-out van de pagina.
Op http://site.why-online.com/guestbook.php kan je kijken, de foutmelding die gegeven wordt is
Parse error: syntax error, unexpected T_ELSE in /home/why-online.com/site/guestbook.php on line 324
Offline marten - 25/05/2006 21:58
Avatar van marten Beheerder ik zal het eerst eens normaliseren wat een brakke code bah....

Script jij zo? dan zou ik maar eens wat documenten lezen over proper scripten.

[bezig code te restylen]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.262s