Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z skryptem, wygryzanko
Szymon80
post 23.09.2009, 20:29:06
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.06.2009

Ostrzeżenie: (0%)
-----


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ć ?
Go to the top of the page
+Quote Post
krowal
post 23.09.2009, 20:34:42
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


  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)


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
Szymon80
post 24.09.2009, 17:01:04
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.06.2009

Ostrzeżenie: (0%)
-----


To nie jest skrypt mojego autorstwa, znalzłem go w sieci. Jak powinien wyglądać ten skrypt aby działał poprawnie ?
Go to the top of the page
+Quote Post
Makciek
post 24.09.2009, 21:30:49
Post #4





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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ż \"
Go to the top of the page
+Quote Post
thek
post 24.09.2009, 23:33:57
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.07.2025 - 12:55