Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak to złożyć ?
Forum PHP.pl > Forum > Przedszkole
Carl
Gdy gosć wchodzi na strone, tworzy się plik txt, potem POST'em dopisuje dane, ale po każdym wysłaniu z forma strona się odświeża, a skrypt tworzy mi nowy plik, a chce żeby ten jeden gośc dopisywał do tego jednego pliku.


  1. <?php
  2. $temp = 'temp/'; //katalog z plikami
  3. if (!$_SESSION['byl']){   //jeśli niema jeszcze sesji to ...
  4. $file_id = substr(md5(uniqid(rand(), true)), 3,5); //losowa nazwa pliku
  5. $_SESSION['file_id'] = $file_id;     //tworzy sesje z nazwą pliku
  6. $id = $_SESSION['file_id'];   //$id to nazwa tego pliku
  7. $fp = fopen($temp.$id.'.txt', &#092;"w+\");
  8. fclose($fp);
  9. $_SESSION['byl'];   //tworzy sesje
  10. }
  11. ?>

....
potem POST i dopisywanie do pliku.
Mam nadzieje że dobrze opisałem, niemam pojęcia co robie źle..
Jabol
a inicjalizacja sessji? (session_start" title="Zobacz w manualu PHP" target="_manual)
Carl
session_start(); mam tylko zapomniałem tu napisać, sorki.
nibytak
przy trybie otwarcia pliku nalezy najprawdopodobniej zamienic 'w+' na 'a+'.

uzywajac 'w+':
- jesli istnieje kasujesz zawartość i otwierasz (bedzie pusty po otwarciu)
- jesli nie istnieje tworzysz nowy pusty i otwierasz

dla 'a+':
- jesli istnieje otwierasz plik i dopisujesz do konca pliku,
- jesli nie istnieje tworzysz nowy i otwierasz

pewnie chodzilo o to, poprobuj.



+++ DISCONNECTED
gibffe
jesli chcesz miec taki warunek
if (!$_SESSION['byl']){ ...

to $_SESSION['byl'] = true; //tworzy sesje

u mnie dziala si
Carl
No niewiem co z tym jest, dam cały kod:

index.php
  1. <?php
  2.  
  3.  
  4. $temp = 'temp/'; //katalog z plikami
  5.  
  6. if (!$_SESSION['byl']){   //jeśli niema jeszcze sesji to ...
  7. $file_id = substr(md5(uniqid(rand(), true)), 3,5); //losowa nazwa pliku
  8. $_SESSION['file_id'] = $file_id;     //tworzy sesje z nazwą pliku
  9. $id = $_SESSION['file_id'];   //$id to nazwa tego pliku
  10. $fp = fopen($temp.$id.'.txt', &#092;"a+\");
  11. fclose($fp);
  12. echo $id;   //tak tylko zeby zobaczyc jaki sie plik zrobil
  13. $_SESSION['byl'] = true;   //tworzy sesje
  14.  
  15.  
  16. if ($_POST){
  17. echo $id;  //a teraz jaki plik...
  18. chmod($temp.$id.'.txt', 0777); //chmod
  19. $dane = fread(fopen($temp.$id.'.txt', &#092;"r+\"), filesize($temp.$id.'.txt')); //otwiera
  20. $nowe = $dane .$_POST['line'];  // i
  21. $fp = fopen($temp.$id.'.txt', &#092;"r+\"); // dopisuje
  22. fputs($fp, $nowe); // dane
  23. fclose($fp);
  24. }}
  25. ?>

+
  1. <FORM ACTION="index.php" METHOD="POST">


-----------
próbowałem na odwrót :
if sesja jest ......... else dopiero utwórz plik , ale to samo....
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.