Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt edycji pliku
Forum PHP.pl > Forum > Przedszkole
Visual
Witajcie
Mam problem, minowicie chcialem napisac skrypt który ładowałby plik .txt do textarea i tam uzytkownik edytowalby go, a po kliknieciu w button "Edytuj!" plik był czyszczony i wstawiana tresc z textarea.
Ale to co teraz napisalem jest do napisania, ale mam inny problem, poniewaz do edycji moze rzucic sie duzo ludzi chcialem zrobic cos takiego jak ostrzezenie ze inna osoba takze znajduje się na stronie (i zapewne proboje cos edytować biggrin.gif ). Taki warn moze ustrzec przed zepsuciem komus innemu pracy. Podam wam przykład:
A: wchodzi na stronę
B: wchodzi na stroną zaraz po A

A:wysyła zmiany (czego B nie widzi, musialby odswierzyc stronę)
B:wysyła zmiany i nadpisuje zmiany wprowadzone przez A

No i właśnie z tym mam problem. Wymyśliłem coś takiego:
  1. <form action="edit2.php">
  2. <?php
  3.  
  4. $time = time();
  5. $timefile=0;
  6. $timefile = file("$DOCUMENT_ROOT/timefile.txt");
  7. if ($time > $timefile[0] && $timefile[0] != 0)
  8. {
  9. echo '<strong>Another user is editing this file too. Try later or refresh page, because you
     can fu*k up somones work!!!</strong>'
    ;
  10. }
  11.  
  12. $timefile = fopen("$DOCUMENT_ROOT/timefile.txt", 'a');
  13. $addString=$time."n";
  14. fwrite($timefile, $addString);
  15. fclose ($timefile);
  16.  
  17. $editfile = file("$DOCUMENT_ROOT/qpa/menu.txt");
  18. echo '<textarea name="editedfile" cols="100" rows="30">';
  19. foreach ($editfile as $current)
  20. {
  21. echo $current;
  22. }
  23.  
  24. echo '</textarea>';
  25. ?>
  26. <input type="submit" value="Edytuj!">
  27. </form>


Ale jesli np. A wejdzie i odswierzy stronę to pojawi mu sie error bo zmienna $time nie zostanie nigdy usunięta! (usunięcie zrobilbym w drugim pliku edit2.php zapisującym zmiany). A jeśli A wejdzie na stronę i wyjdzie (rozmyśli się) to nigdy nie naciśnie buttona "Edytuj!" i zmienna zostanie tam na zawsze. Co mozna z tym zrobić ? :| . Przykład tego pliku macie tu: http://visualpl.cogia.net/edit.php (nie klikajcie w button, nie dodalem jeszcze strony edit2.php) (chodzilo mi oto zeby ten plik mozna bylo edytowac tak jak posty na forum happy.gif )


Pozdrawiam
Visual
Herf-Life
Tworzymy se folder o nazwie "dane" dając mu CHMOD 777. W tym folderze tworzymy pusty plik notatka.txt. Po stworzeniu wychodzimy z folderu i tam zaczynamy wgrywanie plików php
...........

w pliku edytor.php mam:
  1. <form name="postshout" method="post" action="dodaj.php?action=notes">
  2. <textarea style="font-family: Tahoma; font-size: 10" name="tekst" cols="90" rows="20">
  3. <? include('dane/notatka.txt') ?></textarea><br />
  4. <input style="font-family: Tahoma; font-size: 11" type="submit" value="Odpowiedz"></form>


potem tworze plik dodaj.php, a zawartość ma taką:
  1. <?
  2. $act = $_GET['action'];
  3. if($act=="notes"){
  4. if ($_POST["tekst"]!=""){     $tekst = $_POST['tekst']; } 
  5.  
  6. $plik = "dane/notatka.txt";
  7.  
  8. $file = fopen($plik, "w+");
  9. fwrite($file, $tekst);
  10. fclose($file);
  11. } else { die("Nie zostawiaj pustego pola"); }
  12.  
  13. ?>


pamiętajcie, że folder "dane" musi posiadać CHMOD 777 smile.gif
Wykonanie by Herf-Life ^^

Dodałem jeszcze else
NuLL
Skrypty php -> Początkujący
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.