login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Notice: Undefined index: actie

Offline eddaredevil - 19/05/2005 13:41 (laatste wijziging 19/05/2005 13:44)
Avatar van eddaredevilPHP interesse Dit krijg ik als ik een heel simpel gastenboekje maak..
Volgens mij heeft dit iets te maken met php ?

  1. <?php
  2. $bestand = 'databestand.dat';
  3. $delimiter = '#';
  4.  
  5. $actie = $_GET['actie']; // <<Dit werkt dus niet << :S
  6.  
  7. if($actie == 'post') {
  8. $naam = $_POST['naam'];
  9. $email = $_POST['email'];
  10. $bericht = $_POST['bericht'];
  11.  
  12. $naam = trim(stripslashes(strip_tags($naam)));
  13. $email = trim(stripslashes(strip_tags($naam)));
  14. $bericht = trim(stripslashes(strip_tags($bericht)));
  15. $bericht = str_replace("\r\n", '<br />', $bericht);
  16.  
  17. $nieuwe_regel = $naam.$delimiter.$email.$delimiter.$bericht."\r\n";
  18.  
  19. $handle = fopen($bestand, 'a');
  20. fwrite($handle, $nieuwe_regel);
  21. fclose($handle);
  22.  
  23. $actie = 'lees';
  24. }
  25.  
  26. if($actie == 'lees') {
  27. $rijen = file($bestand);
  28. $rijen = array_reverse($rijen); // volgorde omdraaien
  29.  
  30. print '<a href="?action=">Bericht schrijven</a>';
  31. foreach($rijen as $rij) { // loop de array langs
  32. $velden = explode($delimiter, $rij); // knip de rij in stukjes
  33.  
  34. // voeg de informatie toe aan de lay-out
  35. print '<p>';
  36. print 'Naam: '.$velden[0].'<br />';
  37. print 'Email: '.$velden[1].'<br />';
  38. print 'Bericht: '.$velden[2];
  39. print '</p>';
  40. print '<hr />';
  41. }
  42. }
  43. else {
  44. ?>
  45. <form action="<?php print $_SERVER['PHP_SELF']; ?>?actie=post" method="post">
  46. Naam: <input type="text" name="naam" /><br />
  47. Email: <input type="text" name="email" /><br />
  48. Bericht:<br />
  49. <textarea cols="40" rows="10" name="bericht"></textarea><br />
  50. <input type="submit" value="Bericht plaatsen">
  51. </form>
  52. <?php
  53. }
  54. ?>

6 antwoorden

Gesponsorde links
Offline jopie - 19/05/2005 13:45
Avatar van jopie Onbekend
Citaat:
Volgens mij heeft dit iets te maken met php ?
dat is wel héél onlogisch als het om een php script gaat.

je moet eerst controleren of een var wel bestaat voor je hem gebruikt. dat doe je met isset()
Offline Thomas - 19/05/2005 13:46
Avatar van Thomas Moderator Je zou eerst moeten controleren of dat ding bestaat met isset().

  1. <?php
  2. if(isset($_GET['actie'])) {
  3. if($_GET['actie'] == "post") {
  4. // do stuff
  5. }
  6. }
  7. ?>


Of met een enkel if-statement, dat kan ook.
Offline eddaredevil - 19/05/2005 13:56 (laatste wijziging 19/05/2005 13:57)
Avatar van eddaredevil PHP interesse Ik heb t nu zo gedaan..

  1. <?php
  2. if(isset($_GET['actie'])) {
  3. if($_GET['actie'] == "post") {
  4. // do stuff
  5. }
  6. }
  7. $bestand = 'databestand.dat';
  8. $delimiter = '#';
  9. //$actie = $_GET['actie'];
  10.  
  11. if($actie == 'post') {
  12. $naam = $_POST['naam'];
  13. $email = $_POST['email'];
  14. $bericht = $_POST['bericht'];
  15.  
  16. $naam = trim(stripslashes(strip_tags($naam)));
  17. $email = trim(stripslashes(strip_tags($naam)));
  18. $bericht = trim(stripslashes(strip_tags($bericht)));
  19. $bericht = str_replace("\r\n", '<br />', $bericht);
  20.  
  21. $nieuwe_regel = $naam.$delimiter.$email.$delimiter.$bericht."\r\n";
  22.  
  23. $handle = fopen($bestand, 'a');
  24. fwrite($handle, $nieuwe_regel);
  25. fclose($handle);
  26.  
  27. $actie = 'lees';
  28. }
  29.  
  30. if($actie == 'lees') {
  31. $rijen = file($bestand);
  32. $rijen = array_reverse($rijen); // volgorde omdraaien
  33.  
  34. print '<a href="?action=">Bericht schrijven</a>';
  35. foreach($rijen as $rij) { // loop de array langs
  36. $velden = explode($delimiter, $rij); // knip de rij in stukjes
  37.  
  38. // voeg de informatie toe aan de lay-out
  39. print '<p>';
  40. print 'Naam: '.$velden[0].'<br />';
  41. print 'Email: '.$velden[1].'<br />';
  42. print 'Bericht: '.$velden[2];
  43. print '</p>';
  44. print '<hr />';
  45. }
  46. }
  47. else {
  48. ?>
  49. <form action="<?php print $_SERVER['PHP_SELF']; ?>?actie=post" method="post">
  50. Naam: <input type="text" name="naam" /><br />
  51. Email: <input type="text" name="email" /><br />
  52. Bericht:<br />
  53. <textarea cols="40" rows="10" name="bericht"></textarea><br />
  54. <input type="submit" value="Bericht plaatsen">
  55. </form>
  56. <?php
  57. }
  58. ?>

jammer genoeg gaat hij nu zeuren over de volgende 2 'acties'

Vaag want dit achterlijke scriptje is gewoon van internet geplukt om dit te testen..
Offline ikkedikke - 19/05/2005 14:10
Avatar van ikkedikke PHP expert
  1. if(isset($_GET['actie'])) {
  2. if($_GET['actie'] == "post") {
  3. // do stuff
  4. }
  5. }

maak er iets van als:
  1. if(!isset($_GET['actie']))
  2. {
  3. $_GET['actie'] = "lees"
  4. }

Offline Thomas - 19/05/2005 14:12
Avatar van Thomas Moderator Mja euh, in het // do stuff gedeelte hoort dus regel 12 t/m 27 te staan, voor regel 30 dien je een soortgelijk if-statement te maken (if($_GET['actie']) == "lees") { ... } uiteraard ook nadat je gecontroleerd hebt of $_GET['actie'] bestaat...).

Je kan niet zomaar knippen en plakken en dan verwachten dat het werkt...
Offline eddaredevil - 19/05/2005 14:18
Avatar van eddaredevil PHP interesse :P nee dat merk ik wel weer Ok ik ga proberen...

Vriendelijk bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.255s