Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML?] Błąd w fopen(plik.txt), flock(), fwrite()..., Co jest nie tak?
Defozo
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.03.2007

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


Witam, dopiero rozpoczynam zabawę z PHP i trochę sobię przerobiłem pare skryptów w internecie iii... wyszedł błąd ;]

No więc co tu jest nie tak?

  1. <table cellpadding="0" cellspacing="0" width=100%>
  2.                <tr><td style="background:url(images/srodek_top.jpg);padding-left:25px;font-weight:bold;font-size:18px;padding-top:8px;" height=44>Dodawanie serwera do sprawdzenia</td></tr>
  3.                <tr><td style="background:url(images/srodek_tlo.jpg);padding-left:20px;padding-right:8px;font-size:11px;padding-top:5px;">
  4.                
  5.            <p><center>
  6. Aby dodać serwer do sprawdzenia wypełnij formularz:
  7. <?php
  8. /*********************************************
  9. * plik formularz.php
  10. *********************************************/
  11.  
  12. $ip = trim($_POST['ip']);
  13. $mail = trim($_POST['mail']);
  14. $kontakt = trim($_POST['kontakt']);
  15. $info = trim($_POST['info']);
  16.  
  17. if(empty($ip) and empty($mail)) {
  18.    
  19. // prosty formularz zawierający dwa pola
  20. echo '<form action="" method="post">
  21. <table>
  22. <tr>
  23. <td><p>IP Serwera: </p></td>
  24. <td><input type="text" name="ip"></td>
  25. </tr>
  26. <tr>
  27. <td><p>Twój E-mail: </p></td>
  28. <td><input type="text" name="mail"></td>
  29. </tr>
  30. <tr>
  31. <td><p>Dodatkowy Kontakt: </p></td>
  32. <td><input type="text" name="kontakt"></td>
  33. </tr>
  34. <tr>
  35. <td><p>Dodatkowe Informacje: </p></td>
  36. <td><textarea name="info" rows="4" cols="25"></textarea>
  37. </tr>
  38. <tr>
  39. <td><input type="submit" value="Wyślij"></td>
  40. </table>
  41. </form>';
  42. }
  43. else {
  44.    
  45.    // dane pochodzące z formularza
  46.    $dane = $ip."`".$mail."\n".$kontakt."\n".$info."\n";
  47.    // przypisanie zmniennej $file nazwy pliku
  48.    $file = "serwery.txt";
  49.    // uchwyt pliku, otwarcie do dopisania
  50.    $fp = fopen($file, "a");
  51.    // blokada pliku do zapisu
  52.    flock($fp, 2);
  53.    // zapisanie danych do pliku
  54.    fwrite($fp, $dane);
  55.    // odblokowanie pliku
  56.    flock($fp, 3);
  57.    // zamknięcie pliku
  58.    fclose($fp);
  59.    
  60.    echo "Twój serwer został dodany! Czekaj na informacje!<br />";
  61. }
  62.  
  63. ?>
  64. <br>
  65. <br>
  66. </center></p>


Po wypełnieniu formularza i kliknięciu wyślij, wyskakuje to:

Cytat
Warning: fopen(serwery.txt) [function.fopen]: failed to open stream: Permission denied in /home/Defozox/domains/mojastrona.pl/public_html/body/sprawdz.php on line 50

Warning: flock() expects parameter 1 to be resource, boolean given in /home/Defozox/domains/mojastrona.pl/public_html/body/sprawdz.php on line 52

Warning: fwrite(): supplied argument is not a valid stream resource in /home/Defozox/domains/mojastrona.pl/public_html/body/sprawdz.php on line 54

Warning: flock() expects parameter 1 to be resource, boolean given in /home/Defozox/domains/mojastrona.pl/public_html/body/sprawdz.php on line 56

Warning: fclose(): supplied argument is not a valid stream resource in /home/Defozox/domains/mojastrona.pl/public_html/body/sprawdz.php on line 58


Najpierw dałem plikowi sprawdz.php i serwery.txt chmod 666 i nie działało, a później 777 i też nie działało.

Przeszukałem google, ale niestety podobnego błędu nie znalazłem.

Proszę o pomoc,
Pozdrawiam,
Defozo
Go to the top of the page
+Quote Post
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


serwery.txt istnieje i znajduje się w takim samym folderze co sprawdz.php? Powinno działać, jeszcze raz sprawdź, czy nadałeś plikowi serwery.txt chmod 777. Ew. spróbuj też na innym serwerze.
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


zamien

  1. <?php
  2. $fp = fopen($file, "a");
  3. ?>

na

  1. <?php
  2. if(file_exists($file))
  3. {
  4. $fp = fopen($file, "a") or die('Nie można otworzyć pliku :|');
  5. }
  6. else
  7. {
  8. die('Plik nie istnieje :|');
  9. }
  10. ?>


to powinno pomóc w rozwiązaniu problemu
Go to the top of the page
+Quote Post
Defozo
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.03.2007

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


haha... nie uwieżycie ; ] zamieniłem to na to co podał pyro (fenks) i najpierw wywaliło, że plik nie istnieje, a jak przegrałem sprawdz.php jeszcze raz na serwer (żeby sie upewnic) to wszystko zaczeło ładnie działac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Chyba mam coś źle z klientem FTP (używam Total Commandera) może przerwało połączenie i coś się poknociło?
Nie wiem... w każdym razie dziękuję wam za cenną odpowiedź.

Pozdrawiam,
Defozo
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 20:57