login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Krijg een extra tabelstuk wat er niet hoort:S

Offline timo - 08/02/2006 21:15
Avatar van timoPHP ver gevorderde Ik ben adhv de tut van nemeniskoen over dat gastenboek wat je in een .dat file wegschrijft bezig met een nieuwssysteem zonder MySQL, dat lukt aardig alleen ik krijg nu een keer de tabel teveel:s (voorbeeld op http://wyger.nl/usr/timosforum/nieuws/index.php)
hier m'n script, ziet iemand de fout? met error_reporting(E_ALL); krijg ik dit:
Citaat:
Notice: Undefined index: 1 in /vhost/usr/timosforum/nieuws/index.php on line 15
maar dat hoeft daar niet te zijn want dat is teveel....
  1. <?php
  2. $file = "nieuws.dat";
  3. if(file_exists($file))
  4. {
  5. $fp = fopen($file, "r");
  6. $nieuws = fread($fp, filesize($file));
  7. $nieuws = explode("&",$nieuws);
  8. foreach($nieuws as $item)
  9. {
  10. $item = explode("___", $item);
  11. ?>
  12. <table border="1">
  13. <tr><td>Naam</td><td><?php echo $item['0']; ?></td></tr>
  14. <tr><td colspan="2"><?php echo $item['1']; ?></td></tr>
  15. </table>
  16. <?php
  17. }
  18. } else {
  19. echo "Het bestand nieuws.dat bestaat niet, voeg eerst een nieuwsitem toe!";
  20. }
  21. fclose($fp);
  22. ?>

3 antwoorden

Gesponsorde links
Offline haytjes - 08/02/2006 21:20 (laatste wijziging 09/02/2006 16:44)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
komt omdat er op het einde van nieuws.dat een & staat, waardoor hij denkt dat er nog een lijn achter is. Daarna vindt de explode geen ___ dus is er maar alleen $item[0]

  1. <?php
  2. $file = "nieuws.dat";
  3. if(file_exists($file))
  4. {
  5. $fp = fopen($file, "r");
  6. $nieuws = fread($fp, filesize($file));
  7. $nieuws = explode("&",$nieuws);
  8. if(!empty($nieuws)) // hierdoor wordt de laatste lege lijn geblokt
  9. {
  10. foreach($nieuws as $item)
  11. {
  12. $item = explode("___", $item);
  13. ?>
  14. <table border="1">
  15. <tr><td>Naam</td><td><?php echo $item['0']; ?></td></tr>
  16. <tr><td colspan="2"><?php echo $item['1']; ?></td></tr>
  17. </table>
  18. <?php
  19. }
  20. }
  21. } else {
  22. echo "Het bestand nieuws.dat bestaat niet, voeg eerst een nieuwsitem toe!";
  23. }
  24. fclose($fp);
  25. ?>

Offline timo - 09/02/2006 13:36 (laatste wijziging 09/02/2006 16:46)
Avatar van timo PHP ver gevorderde error blijft...
error is weg, had 8er het 2e bericht ook een & gezet dus dacht het script dat er nog een moest komen...

Citaat:
Opmerking van Haytjes:
8ter = achter, gelieve dan ook achter te gebruiken
Offline haytjes - 09/02/2006 16:43 (laatste wijziging 09/02/2006 16:44)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
  1. <?php
  2. $file = "nieuws.dat";
  3. if(file_exists($file))
  4. {
  5. $fp = fopen($file, "r");
  6. $nieuws = fread($fp, filesize($file));
  7. $nieuws = explode("&",$nieuws);
  8. foreach($nieuws as $item)
  9. {
  10. if(!empty($item)) // hierdoor wordt de laatste lege lijn geblokt
  11. {
  12. $item = explode("___", $item);
  13. ?>
  14. <table border="1">
  15. <tr><td>Naam</td><td><?php echo $item['0']; ?></td></tr>
  16. <tr><td colspan="2"><?php echo $item['1']; ?></td></tr>
  17. </table>
  18. <?php
  19. }
  20. }
  21. } else {
  22. echo "Het bestand nieuws.dat bestaat niet, voeg eerst een nieuwsitem toe!";
  23. }
  24. fclose($fp);
  25. ?>

nu dat je het zegt, is de domste fout ooit:(

ik checkte of de array $nieuws leeg was, terwijl ik de moet kijken of die bepaalde lijn leeg was. daarom de if na de foreach gezet. Sorry timo
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s