Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML?] Błąd w fopen(plik.txt), flock(), fwrite()...
Forum PHP.pl > Forum > Przedszkole
Defozo
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
l0ud
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.
pyro
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
Defozo
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 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
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.