Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System Online
Forum PHP.pl > Forum > Przedszkole
4file.cba.pl
Potrzebuję pomocy w moim systemie a raczej w jego części. Chodzi o to, że chcę zrobić listę osób online ale nie wiem jak dokończyć kod. Nie używam bazy danych SQL/MySQL
logowanie.php:
  1. [PHP]
  2. <form action="dalej.php" method="POST">
  3. //pola tekstowe i przycisk (to to sam zrobilem)
  4. </form>
[/php]
dalej.php:
  1. [PHP]
  2. //czesc logujaca uzytkownika i sprawdzajaca nazwe i haslo (to to sam zrobilem)
  3. $otworz = fopen("online.txt","a+");
  4. $dopisz = $_SESSION['user'];
  5. fwrite($otworz, $dopisz);
  6. fclose($otworz);
  7. header("Location: index.php");
[/php]
online.php:
  1. [PHP]
  2. $otworz= fopen("online.txt", "a+");
  3. $odczytaj= file_get_contents("online.txt");
[/php]
wyloguj.php:
  1. [PHP]
  2. //jakis kod
  3. include("online.txt");
  4. if(isSet($_SESSION['user']))
  5. {
  6. str_replace($_SESSION['user'], "");
  7. }
  8. else { }
  9. //jakis kod
[/php]
No i tu jest problem w pliku wyloguj.php nie działa str_replace sad.gif . Pomożecie?
pedro84
Funkcja klucz: unset. Co to za paskudztwo z tym str_replace?
4file.cba.pl
Nie rozumiem... wytłumaczysz?
4file.cba.pl
A i byś mógł pomóc mi w innym kodzie?
pedro84
Zamiast str_replace użyj unset
com
Cytat
  1. $otworz= fopen("online.txt", "a+");
  2. $odczytaj= file_get_contents("online.txt");


po kiego grzyba Ci te 2 funkcje?

Cytat
include("online.txt");


oO dziwne rzeczy tu tworzysz smile.gif

odczyt:
http://pl1.php.net/manual/en/function.file-get-contents.php
zapis:
http://pl1.php.net/manual/en/function.file-put-contents.php

Przykładowo:
dalej.php

  1. //czesc logujaca uzytkownika i sprawdzajaca nazwe i haslo (to to sam zrobilem)
  2. $person = $_SESSION['user'];
  3. file_put_contents("online.txt", $person, FILE_APPEND | LOCK_EX);
  4. header("Location: index.php");


#edit już wiem skod czerpiesz inspiracje Temat: PHPProsty system komentarzy ale tam to źle napisał, a inni tego nie zauważyli smile.gif
4file.cba.pl
No wiem ale unset to chyba się w cookie i sesjach a ja chcę tylko w pliku tekstowym usunąć nazwę użytkownika. Przyjmijmy, że $_SESSION['user'] to Admin. Jak admin się loguje jego nazwa użytkownika dopisuje się do pliku online.txt. Po wylogowaniu w pliku logout.php jest str_replace które podmienia wartość $_SESSION['user'] na pustkę. Nwm jak to zrobić wiem mam nadzieję, że ktoś złoży, albo przynajmniej jakieś zrywki kodu da. closedeyes.gif
Turson
Cytat
No i tu jest problem w pliku wyloguj.php nie działa str_replace

A błąd nie wyskoczył, że str_replace wymaga 3 parametrów? Co zmienić, na co zmienić, z którego stringa ma zmienić.
pedro84
Cytat(4file.cba.pl @ 24.10.2013, 08:25:51 ) *
No wiem ale unset to chyba się w cookie i sesjach a ja chcę tylko w pliku tekstowym usunąć nazwę użytkownika.

Przecież z kodu ewidentnie widać, że chcesz zmienną sesyjną wyczyścić closedeyes.gif
4file.cba.pl
ja nie chcę wyczyścić tylko wyczyści nazwę użytkownika bo u mnie:
  1. $_SESSION['user']

To jest login i zarazem nick. A chcem z pliku online wyczyścić poprzez:
  1. str_replace($_SESSION['user'], " ");

Ale wpadłem na lepszy pomysł:
  1. $zmienna1 = $_SESSION['user'];
  2. $null = " ";
  3. str_replace($zmienna1, $null);

Ale wciąż mam problem z tym po potrzeba 3 warunków.
A tak na marginesie u mnie czyszczenie sesji to:
  1. unset($_COOKIE['sesja']);

Tyle!
4file.cba.pl
  1. $_SESSION['user']

To chcę usunąć z pliku online.txt
phpion
  1. unset($_SESSION['user']);

lub:
  1. $_SESSION['user'] = '';

w zależności czy chcesz usunąć czy wyczyścić.
Turson
Cytat
Ale wciąż mam problem z tym po potrzeba 3 warunków.

A spojrzałeś chociaż w manualu czym jest 3. parametr?


  1. $plik=filegetcontents("online.txt");
  2. $zmienna1 = $_SESSION['user'];
  3. $null = " ";
  4. str_replace($zmienna1, $null, $plik);
4file.cba.pl
Chcę usunąć z pliku online.txt dlatego tam jest:
  1. include("online.txt):

bo nick to też login.
4file.cba.pl
Okej zaraz cały kod złożę i powiecie czy dobrze wink.gif
4file.cba.pl
login.php:
  1. //sprawdzanie loginu i hasla itd
  2. $person = $_SESSION['user'];
  3. file_put_contents("online.txt", $person, FILE_APPEND | LOCK_EX);
  4. header("Location: index.php");

online.php:
  1. //jakis kod strony
  2. $open= fopen("online.txt", "a+");
  3. $czyt= file_get_contents("online.txt");
  4. echo $czyt;
  5. fclose($open);
  6. //koncowka strony

logout.php:
  1. $plik=file_get_contents("online.txt");
  2. $zmienna1 = $_SESSION['user'];
  3. $null = " ";
  4. str_replace($zmienna1, $null, $plik);

Oceńcie i napiszcie czy dobrze napisałem ten kod.
Turson
Jak używasz fileGetContents to fopen i fclose jest niepotrzebne.
com
Turson już to pisałem biggrin.gif ale widać kolega nie zajrzał do manuala..
4file.cba.pl
No to dobrze napisałem ten kod? arrowheadsmiley.png
phpion
Jeśli działa tak jak chcesz to tak, jeśli nie to nie.
4file.cba.pl
Okej wszystko śmiga tylko mam problem z usuwaniem z pliku nazwy użytkownika.
logout.php:
  1. <?php session_start(); ?>
  2. <html>
  3. <head>
  4. <title>4File</title>
  5. </head>
  6. <body>
  7. <?php
  8. if(isSet($_SESSION['user']))
  9. {
  10. echo "Wylogowano Poprawnie<br>";
  11. echo "<a href=\"index.php\">Strona Główna</a>";
  12. unset($_COOKIE['sesja']);
  13. $plik=file_get_contents("online.txt");
  14. $zmienna1 = $_SESSION['user'];
  15. $null = " ";
  16. str_replace($zmienna1, $null, $plik);
  17. }
  18. else{
  19. header("Location:index.php");
  20. }
  21. ?>
  22. </body>
  23. </html>

Nie działa kod powyżej (wylogowuje dobrze ale nie usuwa z pliku online.txt nazwy użytkownika). Pomóżcie!!! Proszę biggrin.gif
freemp3
Ponieważ nie zapisujesz do pliku zmienionej wartości.
Po drugie najpierw niszczysz sesje, a później odczytujesz z niej nazwe użytkownika? Sesje usuwa się na samym końcu, a nie na początku.
4file.cba.pl
Okej wszystko smiga tylko z usuwaniem problem. Jakieś sugestie?
com
No przecież freemp3 napisał dlaczego nie usuwa, przeczytałeś to wgl?
4file.cba.pl
No tak poprawiłem kod ale dalej nie usuwa już nie rozumiem facepalmxd.gif , kod:
  1. <?php session_start(); ?>
  2. <html>
  3. <head>
  4. <title>4File</title>
  5. </head>
  6. <body>
  7. <?php
  8. if(isSet($_SESSION['user']))
  9. {
  10. echo "Wylogowano Poprawnie<br>";
  11. echo "<a href=\"index.php\">Strona Główna</a>";
  12. $plik=file_get_contents("online.txt");
  13. $zmienna1 = $_SESSION['user'];
  14. $null = " ";
  15. str_replace($zmienna1, $null, $plik);
  16. unset($_COOKIE['sesja']);
  17. }
  18. else{
  19. header("Location:index.php");
  20. }
  21. ?>
  22. </body>
  23. </html>
4file.cba.pl
Jeżeli bym dostał cal gotowy kod (już niewiem jak to zrobić nerdsmiley.png ) to nie bym był obrażony biggrin.gif
com
Cytat(freemp3 @ 25.10.2013, 12:45:33 ) *
Ponieważ nie zapisujesz do pliku zmienionej wartości.


Czytaj wszytko a nie tylko połowę wink.gif
4file.cba.pl
Nie rozumiem
utek44
W takim przypadku trzeba to zapisywać czy wręcz nie można ?
4file.cba.pl
Ok dzięki za pomoc nawet taką.
freemp3
Funkcja file_get_contents zwraca jedynie zawartość pliku. Jeśli coś zmodyfikujesz to nie zostanie to automatycznie zapisane. Sam to musisz zrobić. Służy do tego m.in funkcja file_put_contents.
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.