login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gastenboek werkt niet (Opgelost)

Offline lettheflamesbegin - 25/05/2009 18:38 (laatste wijziging 25/05/2009 19:11)
Avatar van lettheflamesbeginNieuw lid Hoi,

Ik ben vrij nieuw met PHP, we zijn er nu bezig mee op school, maar ik krijg het gastenboek niet aan het werk. Ik heb er zelf wel al eerder een gemaakt, maar die lijkt totaal niet op deze.. en we moeten perse die in de vorm van school gebruiken.. het is een soort van invul-werkboek, sommige dingen zijn gegeven en sommige moet je zelf uitzoeken.

Nu kan ik het niet meer aan mijn leraar vragen, want deze week is hij ziek en volgende week is het pinksteren.. en daarna moet ik het af hebben, dus ik hoop dat jullie mij kunnen helpen want ik krijg het echt niet.

Dit is de code:
(mijn verbinding werkt wel, maar die staat in een apart bestandje)

  1. ----------------------index.php---------------------
  2. <?php
  3. include ('connection.php');
  4. if($_SERVER['REQUEST_METHOD'] == 'POST')
  5. {
  6. include ('verwerkbericht.php');
  7. }
  8. ?>
  9. <html><head></head><body>
  10. <?php
  11. $foutmelding = mysql_error();
  12. if(!empty($foutmelding))
  13. echo '<p>' . $foutmelding . '</p>';
  14. include ('toonberichten.php');
  15. ?>
  16. <form action="index.php" method="POST">
  17. <h3>Nieuw bericht toevoegen</h3>
  18. <p>Naam:<br /><input type="text" name="naam" /></p>
  19. <p>Bericht:<br /><textarea name="bericht"></textarea></p>
  20. <input type="submit" name="verzendknop" value="verzenden"/>
  21. </form>
  22. </body></html>
  23.  
  24. ------------toonberichten.php---------------
  25. <?php
  26. $query = "SELECT naam, bericht, datum FROM gastboek ORDER BY datum DESC";
  27. $result = mysql_query($query) or trigger_error(mysql_error(),E_USER_ERROR);
  28. echo '<table border="1"><td>';
  29. while($row = mysql_fetch_array($result))
  30. {
  31. $naam=$row['naam'];
  32. echo "de naam: " . $naam;
  33. $datum=$row['datum'];
  34. echo " schreef op: " . $datum;
  35. $bericht=$row['bericht'];
  36. echo "<br>" . $bericht;
  37. }
  38. echo '</td></table>';
  39. ?>
  40.  
  41. ----------------verwerkbericht.php--------------------
  42. <?php
  43. $foutmelding = '';
  44. $naam = (isset($_POST['naam']));
  45. $bericht = (isset($_POST['bericht']));
  46. $email = (isset($_POST['email']));
  47. if(empty($naam))
  48. $foutmelding = 'Vul een naam in.';
  49. if(empty($bericht))
  50. $foutmelding = 'Vul een bericht in.';
  51. if (empty($error))
  52. {
  53. $datum = date('Y-m-d');
  54. $query = 'INSERT INTO gastboek (naam, bericht, datum) VALUES (\'' . $naam . '\'. \'' . $bericht . '\'. \'' . $datum . '\');';
  55. return $query;
  56. }
  57. ?>


Het laatste probleem: zie mijn laatste post.

Hier heb je het deel van het werkboek:
index: http://i44.tinypic.com/r8a2xs.jpg
toonbericht: http://i39.tinypic.com/ke9f00.jpg
verwerkbericht: http://i40.tinypic.com/2mnkqo6.jpg

Wat doe ik (allemaal) verkeerd?

Alvast bedankt!

DeviourSoul schreef:
Code tags!

13 antwoorden

Gesponsorde links
Offline Bart - 25/05/2009 18:46 (laatste wijziging 25/05/2009 18:48)
Avatar van Bart PHP expert Wat is de foutmelding die je krijgt? Dat helpt meestal in dit soort gevallen als je die informatie geeft. Tevens "Wat werkt wel? En hoe werkt het nu? En hoe moet het werken?"

Post ook even de inhoud van toonbericht.php wat daar zit de foutmelding tenslotte...

//offtopic
Denk je nu zelf dat we ook maar iets kunnen doen als je je post constant blijft editen?
Offline Martijn - 25/05/2009 18:48 (laatste wijziging 25/05/2009 18:50)
Avatar van Martijn Crew PHP
  1. $result = mysql_query($query);

naar dit veranderen:
  1. $result = mysql_query($query) or die(mysql_error());


volgens mij zit er wat fout met je query.

edit: Alhoewel, denk toch niet. Al kom je er zo zeker weten achter of dat het is
Offline lettheflamesbegin - 25/05/2009 18:54
Avatar van lettheflamesbegin Nieuw lid Ja klopt, ik heb dat nu uitgevonden, het enige zit heb nu nog in het verwerken van de berichten, want de berichten die in de database zelf staan (dus via de database zijn ingevoerd) werken wel maar je kunt nog niks toevoegen.

De error is: Notice: Undefined variable: naam in C:\Program Files\wamp\www\wp22\gastenboek\verwerkbericht.php on line 19

Notice: Undefined variable: bericht in C:\Program Files\wamp\www\wp22\gastenboek\verwerkbericht.php on line 19

Dus dit stukje:
$query = 'INSERT INTO gastboek (naam, bericht, datum) VALUES (\'' . $naam . '\'. \'' . $bericht . '\'. \'' . $datum . '\');';
Offline Bart - 25/05/2009 18:55
Avatar van Bart PHP expert En dat komt doordat je die vars in verwerkbericht.php hebt gecomment.
Offline lettheflamesbegin - 25/05/2009 19:09
Avatar van lettheflamesbegin Nieuw lid Ho, stomme fout sorry.

Nu doet hij het wel, in de zin van ik zie zo geen errors meer verschijnen, maar nu voegt hij het bericht helemaal niet toe aan de database.. en ook als je bijv. geen naam invult zegt hij dat ook niet terwijl hij dat wel zou moeten doen.. ik zal mijn code in mijn startbericht wel even aanpassen aan wat ik nu heb.
Offline Wim - 25/05/2009 19:11 (laatste wijziging 25/05/2009 19:12)
Avatar van Wim Crew algemeen je index.php is foutief:
<form action="index.php" method="POST">

//edit: nvm. Echo eens iets in je verwerkbericht.php dan. Volgens mij ontbreekt er in verwerkbericht.php een } op het einde, maar die zal je wsl vergeten te kopieren zijn....
Offline lettheflamesbegin - 25/05/2009 19:17 (laatste wijziging 25/05/2009 19:19)
Avatar van lettheflamesbegin Nieuw lid als ik iets echo, doet hij het wel, die echo dan..

en ja die } ben ik vergeten te kopiëren, daar ligt het dus niet aan 

ik zelf denk dat er iets mis is met mijn insert into gedeeld, maar dat kan ik ook fout hebben en dat gedeelte erna dat return query.
Offline Borre - 25/05/2009 19:39
Avatar van Borre Nieuw lid Hoe heb je je Query nu? Dat insert natuurlijk..
Offline lettheflamesbegin - 25/05/2009 20:24
Avatar van lettheflamesbegin Nieuw lid Dat zie je in mijn startpost ;) In het verwerkbericht.php gedeelte
Offline Wim - 25/05/2009 20:35
Avatar van Wim Crew algemeen de values moet je scheiden dmv een , <komma> ipv een . <punt>
Offline lettheflamesbegin - 26/05/2009 16:59
Avatar van lettheflamesbegin Nieuw lid Hmm, dan doet hij nog niks.. 

dit is de code die ik nu heb bij verwerkbericht.php:
  1. <?php
  2.  
  3. $foutmelding = '';
  4. $naam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
  5. $bericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
  6.  
  7. if(empty($naam))
  8. $foutmelding = 'Vul een naam in.';
  9.  
  10. if(empty($bericht))
  11. $foutmelding = 'Vul een bericht in.';
  12.  
  13. if (empty($error))
  14. {
  15. $datum = date('Y-m-d');
  16.  
  17. $query = "INSERT INTO gastboek (naam, bericht, datum) VALUES ('" . $naam . "', '".$bericht."', '" . $datum . "');";
  18.  
  19. return $query;
  20. }
  21. ?>
Offline Bart - 26/05/2009 17:11
Avatar van Bart PHP expert Zucht, LEER te replieen... Wat gaat er fout? Hoe hoort het te werken en hoe werkt het nu? Denk zelf ook mee en gooi niet een balletje op en zeg "red je er maar mee".

Regel 4 en 5 zijn foutieve verkorte statements, om die statements moeten ( en )
Offline lettheflamesbegin - 26/05/2009 18:39 (laatste wijziging 26/05/2009 18:45)
Avatar van lettheflamesbegin Nieuw lid Oke, sorry.

Er gaat fout dat als je op verzenden drukt dat hij het niet naar de database verstuurd, hij refresht te pagina wel zegmaar, zoals hij hoort te doen als hij het verstuurd. Het enigste wat er dus mis gaat is dat hij het niet naar de database verstuurd.

Op regel 4 en 5 met die verkorte statements, moet dat om het geheel heen of er ergens tussen want wat ik heb geprobeerd maar het werkt niet, hij doet hetzelfde als hierboven beschreven.

EDIT: nvm, want hij doet het ik had zelf al het gevoel dat er iets mis was met de query uitvoering, en nu kwam ik erachter wat: hij wordt wel gereturnd maar nooit uitgevoerd. Stom dat ze dat dan in de oefening vergeten.. leraren weten dus ook niet altijd alles haha 

Bedankt voor iedereen die geholpen heeft! 

Oplossing was dus: mysql_query() toevoegen aan de $query 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s