Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wiadomosc nie chce sie zapisac do plikud
zimekk
post 24.02.2009, 23:02:34
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.11.2008

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


"zrobilem" prosta ksiege gosci ale podczas proby zapisu posta do pliku, pokazuje sie blad:

Cytat
Warning: fwrite(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\ksiega gosci\wynik.php on line 60
Nie moge zapisac pliku


to plik: index.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type"
  6. content="text/html; charset=iso-8859-2" />
  7. <title>Księga gości</title>
  8. </head>
  9. <body xml:lang="pl">
  10. <form action="index.php" method="post">
  11. Nick: <input type="text" name="nick" /><br />
  12. Wpisz swoj komentarz:<br />
  13. <textarea name="komentarz" cols="20" rows="10"></textarea><br />
  14. Mail: <input type="text" name="mail" /><br />
  15. WWW: <input type="text" name="www" />
  16. <button type="submit">Wyślij</button>
  17. </form>
  18. <?
  19. require('dodaj.php');
  20. if($_SERVER['REQUEST_METHOD'] == 'POST')
  21.     {
  22.         // Dodawanie wpisu
  23.         if(zapiszPost($_POST['nick'], $_POST['komentarz'], $_POST['mail'], $_POST['www']))
  24.         {
  25.             echo '<p>Dziękujemy, wpis został dodany.</p>';
  26.         }
  27.         else
  28.         {
  29.             echo '<p>Proszę wypełnić prawidłowo formularz.</p>';
  30.         }
  31.         echo '<p><a href="index.php">Powrót</a></p>';    
  32.     }
  33. else
  34.        {
  35.                  if($liczba_postow != 0)
  36.                          {
  37.                          for($i=0; $i<$liczba_postow; $i++)
  38.                          {
  39.                          $wiersz = explode("\t", $post[$i]);
  40.                          echo "Nick: " .$wiersz[0]. "<br />";
  41.                          echo "Komentarz: " .$wiersz[1]. "<br />";
  42.                          echo "Email: " .$wiersz[2]. "\t WWW: " .$wiersz[3]."<br />";
  43.                          echo "<br /><tr />";
  44.                          }
  45.                          }
  46.                          else
  47.                          {
  48.                          echo "Brak postów w księdze gości";
  49.                          exit;
  50.                          }
  51.        }
  52. ?>
  53. </body>
  54. </html>

a to plik: dodaj.php
  1. <?
  2.       define("PLIK", "./wpisy.txt");
  3.      function zapiszPost($nick, $komentarz, $mail, $www)
  4.      {
  5.                 // pozbycie sie pustych znakow
  6.                 $nick = trim($nick);  $komentarz = trim($komentarz); $mail = trim($mail);   $www = im($www);
  7.                 //sprawdzenie poprawnosci danych
  8.                if(strlen($nick) < 3 or strlen($komentarz) < 3)
  9.         {
  10.             return false; exit;
  11.         }          
  12.        
  13.         if(strlen($mail) < 6 && eregi('^[a-zA-z0-9_]+@[a-zA-z0-9-]+.[a-zA-z0-9-.]+ , $mail))
  14.         {
  15.             return false; exit;
  16.         }
  17.         if(strlen($www) > 7 )
  18.         {
  19.             // Jesli adres nie zaczyna sie od http:// to dodaj to
  20.             if(strpos($www, 'http://') !== 0)
  21.             {
  22.                 $www = 'http://'.$www;
  23.             }                                
  24.         }
  25.         else
  26.         {
  27.                return false;    exit;
  28.                }
  29.     // zapisaywanie informacji
  30.     if(chmod(PLIK, 0777) == FALSE)
  31.              {
  32.              echo "<b>Nie</b> udało się nadać prawa dostępu plikowi(".$plik.").<br />";              exit;
  33.              }              
  34.     if(fopen(PLIK, 'r+') == FALSE)
  35.              {
  36.              echo "Próba otwarcia pliku " .$plik. "<b> nie</b> powiodła się<br />";              exit;
  37.              }        
  38.     $post =  $nick."\t".$komentarz."\t".$mail."\t".$www."r\n";            
  39.     if(fwrite(PLIK, $post) == FALSE)
  40.        {
  41.        echo "Nie moge zapisac pliku " .$plik. "<br />";
  42.        exit;
  43.        }
  44.     fclose(PLIK);     return true;
  45.   }
  46.  
  47.   function podzielipoliczPost()
  48.    {
  49.   chmod(PLIK, 0777);  
  50.   fopen(PLIK, 'r');
  51.   $posty = file($PLIK);
  52.   $liczba_postow = count($posty);   return true;
  53.   }
  54. ?>


--------------------
Trochę historii...
Go to the top of the page
+Quote Post
bigZbig
post 24.02.2009, 23:26:29
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Przyjrzyj się przykładowi na stronie http://pl.php.net/manual/pl/function.fwrite.php

fopen zwraca uchwyt do pliku. Funkcji fwrite i fclose jako pierwszy parametr przekazujesz uchwyt do pliku a nie ścieżkę do pliku. Poza tym nie ma potrzeby za każdym razem ustawiać praw 777. Tak naprawdę wystarczy je ręcznie ustawić raz winksmiley.jpg

Ten post edytował bigZbig 24.02.2009, 23:27:05


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
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: 28.04.2024 - 10:26