Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z skryptem
Forum PHP.pl > Forum > PHP
Szymon80
Witam.

Mam taki oto kod skryptu wygryzanko

  1. <?php
  2. // plik $file chmod 666
  3. $file="wpis.txt";
  4. // przypisujemy nazwe pliku
  5. // gdzie bedą przechowywane dane
  6. $fd = fopen ("$file", "r");
  7. $dane = fread ($fd, filesize ("$file"));
  8. $tmp=explode("|",$dane);
  9. // Wyświetlamy wpis z wygryzanka
  10. echo "<a href=\"$tmp[0]\">$tmp[1]</a> &nbsp;( $tmp[2] )";
  11. // Wyświetlamy formualrz wygryzanka
  12. <form method=\"post\" action=\"\">
  13. <fieldset style=\"border:0px;\">
  14. <input type=\"hidden\" name=\"wygr\" value=\"tak\" />
  15. <input type=\"text\" name=\"link\" style=\"width: 100px\" value=\"http://\" />&nbsp;
  16. <input type=\"text\" name=\"opis\" style=\"width: 100px\" maxlength=\"50\" value=\"opis\" />
  17. &nbsp;<input type=\"submit\" name=\"submit\" value=\"dodaj\" />
  18. </fieldset>
  19. </form>";
  20. // Zapisujemy dane do pliku:
  21. if ($wygr == 'tak') {
  22. if ($opis != 'opis') {
  23. $ip = $REMOTE_ADDR;
  24. // przypisanie zmniennej $file nazwy pliku
  25. $file="wpis.txt";
  26. // uchwyt pliku, otwarcie do dopisania
  27. $fp = fopen($file, "w");
  28. // blokada pliku do zapisu
  29. flock($fp, 2);
  30. $k = '|';
  31. // zapisanie danych do pliku
  32. fwrite($fp, "$link $k $opis $k $ip");
  33. // odblokowanie pliku
  34. flock($fp, 3);
  35. // zamknięcie pliku
  36. fclose($fp);
  37. }
  38. // w przypadku nie wpisania opisu
  39. else echo "Musisz wpisać opis dla strony!";
  40. }
  41. ?>


ale wywala mi taki oto błąd.
  1. Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/symeon/public_html/seokatalog/test/wygr.php on line 7
  2. ( )


Z tego rozumiem ze parametr "fread()" musi byc dłuższy niż 0. Ale jak to naprawić ?
krowal
  1. <?php #
  2. $dane = fread ($fd, filesize ("$file")); ?>

W tej linii funkcja filesize() zwraca Ci 0 lub false (i jeśli masz wyłączone pokazywanie błędów typu E_WARNING to tego nie zauważysz). Po drugie jaki jest sens pisania czegoś takiego: "$file" (mam na myśli pakowanie pojedynczej zmiennej w zbędne cudzysłowy)
Szymon80
To nie jest skrypt mojego autorstwa, znalzłem go w sieci. Jak powinien wyglądać ten skrypt aby działał poprawnie ?
Makciek
Cytat(Szymon80 @ 23.09.2009, 21:29:06 ) *
  1. echo "<a href='.$tmp[0].'>'.$tmp[1].'</a> &nbsp;( '.$tmp[2].' )";

gdy dajesz w echo PHP musisz dodać kropeczki, i lepiej dodać pojedynczy apostrof niż \"
thek
Lepiej użyj funkcji pobierających cały plik jak file_get_contents czy podobnych. Masz przykłady działających podobnie w manualu przy tej funkcji. Oczywiście sens stosowania innych jest tylko w przypadku gdy masz serwer gdzie wspomnianej przeze mnie funkcji nie ma smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.