Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis logów do pliku
Forum PHP.pl > Forum > Przedszkole
charles110
Mam plik który po wywołaniu zapisuje datę i godzinę do pliku tekstowego. Jednak chce zrobić żeby podczas wybrania:
  1. <tr><td align="center" colspan="2"><input type="submit" value="Zaloguj"><br></td></tr>

w innym pliku pojawiał się jakiś wpis w plik.log . Nie wiem jak to zrobić wiec proszę o pomoc.

  1. <?php
  2. $cfg['file_name'] = 'plik.log';
  3. $tmp['date'] = date('Y-m-d H:i:s');
  4. $tmp['data'] = "[".$tmp['date']."] Zapisał date i godzine\r\n"; /
  5. $tmp['handle']['file'] = fopen('./'.$cfg['file_name'], 'a');
  6.  
  7. if($tmp['handle']['file'])
  8. {
  9.  
  10. flock($tmp['handle']['file'], 2);
  11. fputs($tmp['handle']['file'], $tmp['data']);
  12. flock($tmp['handle']['file'], 3);
  13. fclose($tmp['handle']['file']);
  14. }
  15. else
  16. {
  17. echo 'Cos nie tak';
  18. }
  19. ?>
  20.  
Dominis
Nie bardzo rozumie o co Ci chodzi, ale:

-to Ci się przyda, opis jak zapisywac dane do pliku tekstowego.
http://www.kess.snug.pl/?sid=10&pid=19

-Jesli chcesz zapisywac dane/logi do pliku po wcisnieciu przycisku submit, to dodaj sobie nazwe przycisku:
  1. <tr><td align="center" colspan="2"><input type="submit" name="zaloguj" value="Zaloguj"><br></td></tr>


Nastepnie przy odbiorze:
  1. if(isset($_POST['zaloguj']))
  2. {
  3. //jesli wcisniesz przycisk submit to tutaj zostanie wykonana ta operacja
  4. //dodaj sobie tutaj zapisywanie logow do pliku
  5. }


BTW: Polecam zapisywanie logow w MySQL, lub innej bazie danych.
charles110
Problem w tym ze jak zrobilem
  1. <tr><td align="center" colspan="2"><input type="submit" name="zaloguj" value="Zaloguj"><br></td></tr>


i dodałem
  1. <?php
  2. if(isset($_POST['zaloguj']))
  3. {
  4. $cfg['file_name'] = 'logi.log';
  5. $tmp['date'] = date('Y-m-d H:i:s');
  6. $tmp['data'] = "[".$tmp['date']."] Zapisał date i godzine\r\n";
  7. $tmp['handle']['file'] = fopen('./'.$cfg['file_name'], 'a');
  8.  
  9. if($tmp['handle']['file'])
  10. {
  11.  
  12. flock($tmp['handle']['file'], 2);
  13. fputs($tmp['handle']['file'], $tmp['data']);
  14. flock($tmp['handle']['file'], 3);
  15. fclose($tmp['handle']['file']);
  16. }
  17. else
  18. {
  19. echo 'Cos nie tak';
  20. }
  21. }
  22. ?>


To nie zapisuje nic do pliku logi.txt a chciałbym żeby wprowadzał date i jakaś adnotacje.
Dominis
spróbuj tak:

  1. if(isset($_POST['zaloguj']))
  2. {
  3.  
  4. $dane = date('Y-m-d H:i:s')."tekst do wprowadzenia\n";
  5. // przypisanie zmniennej $file nazwy pliku
  6. $file = "log.txt";
  7. // uchwyt pliku, otwarcie do dopisania
  8. $fp = fopen($file, "a");
  9. // blokada pliku do zapisu
  10. flock($fp, 2);
  11. // zapisanie danych do pliku
  12. fwrite($fp, $dane);
  13. // odblokowanie pliku
  14. flock($fp, 3);
  15. // zamknięcie pliku
  16. fclose($fp);
  17.  
  18. }
  19. else
  20. echo 'pusty $_POST['zaloguj']';


Mysle ze powinno zapisywac. Jesli ten skrypcik nie zapisze to prawdopodobnie masz zle uprawnienia do pliku.
charles110
Niestety wyrzuca: "pusty" . To gdzie należy zmienić te uprawnienia?
prz3kus
Wrzuć kod całego formularza.
charles110
W jednym pliku test.php

  1. <?php
  2. if(isset($_POST['zaloguj']))
  3. {
  4. $dane = date('Y-m-d H:i:s')."tekst do wprowadzenia:\r\n";
  5. // przypisanie zmniennej $file nazwy pliku
  6. $file = "log.txt";
  7. // uchwyt pliku, otwarcie do dopisania
  8. $fp = fopen($file, "a");
  9. // blokada pliku do zapisu
  10. flock($fp, 2);
  11. // zapisanie danych do pliku
  12. fwrite($fp, $dane);
  13. // odblokowanie pliku
  14. flock($fp, 3);
  15. // zamknięcie pliku
  16. fclose($fp);
  17. }
  18.  
  19. else{
  20. echo "pusty" ;
  21. }
  22. ?>


  1.  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  3. "http://www.w3.org/TR/html4/loose.dtd">
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <tr><td align="center" colspan="2"><input type="submit" name="zaloguj" value="Zaloguj"><br></td></tr>
  7. </body>
  8. </html>
prz3kus

  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  2. </head>
  3. <tr><td align="center" colspan="2"><input type="submit" name="zaloguj" value="Zaloguj"><br></td></tr>
  4. </body>
  5. </html>


To jest twój cały formularz?
charles110
Tak potrzebuje tylko po kliknięciu przycisku wprowadzić zapis do pliku log.txt
prz3kus
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  2. </head>
  3. <form action="test.php" method="post">
  4. <input type="submit" name="zaloguj" value="Zaloguj">
  5. </form>
  6. </body>
  7. </html>


Jak dla mnie to formularze tak wyglądają 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.