![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Siedzę już od rana i prubuję wymyślec dobre logowanie ale ni w ząb nie mogę nic wymyslić. Co prawda zrobiłem taki system ale opiera się o na sprawdzaniu czy w POST są dane ale jak user wejdzie w inny katalog (tworzę internetowy dysk) to te dane z post znikają i zostaje wywalony
![]() Pomyślałem aby zrobic tak ze jak się zaloguje i hasło i login będą się zgadać to ustawia ciacho z zawartościa zalogowany i tyle ale sęk w tym że jeśli ktoś zaloguje się na swój internetowy dysk z loginem np. zosia i zostanie przeniesiony do strony strona.pl/zosia i tam ma swój skrypt to gdy teraz wpisze sobie w pasku adresu strona.pl/marysia to skrypt sprawdzi że ok, jest w ciachu zalogowany wiec dopuści. Czy ktoś może mi podsunąć pomysł jak to zrobić ? Więc tak, pomyślałem że zrobię z tym ciachem ale w ciachu będzie pisać jeszcze katalog - dobre rozwiązanie ? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o sesjach w PHP. Możesz w nich zapisać czy użytkownik jest zalogowany czy nie oraz nazwę katalogu do jakiego ma mieć dostęp.
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
ciacha nie są dobre bo są client-side natomiast sesje są server-side i teoretycznie nie ma do nich dostępu potenjalny użytkownik, więc popieram Kicok'a jężeli chodzi o zastosowanie sesji a są one dość proste: (każda osoba ma swój unikatowy numer sesji, który dostępy jest pod poleceniem session_id();
a wyświetlasz je tylko echo $_SESSION['zalogowany'] itd ![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Poczytałem troszkę o sesjach i jakos nie rozumiem zabardzo o co w tym chodzi
![]() Więc mam sobie folder X a w nim foldery kasia, zosia, marysia. No i w kazdym znich skrypt który pozwala zarządzać tym katalogiem. Problem jest taki że nie wiem jak zrobić to logowanie. Bo przeiciez user kasia nie może miec dostepu do folderu zosia itd. Czy w sesjach moge sobie przekazywac dowolną ilośc danych ? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 12.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
ile chcesz ... choć za duża ilość danych nie jest wskazana
Nie mam co robić więc ci to jakoś wyjaśnie ... - Masz tablicę superglobalną $_SESSION ... Jak się zapisuje dane w tablicy to powinieneś wiedzieć ... - Dane z post sprawdzasz tylko raz przy logowaniu... zapisujesz sobie czy użytkownik to zosia czy kasia... - przy dostępie do katalogów sprawdzasz czy wartość zapisana w sessji ma określoną wartość |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Te sesje są *** już meni zaczynają wkurzać. Sesja po zalogowaniu ok, jest ale jak wpisze w pasku adresu adres gdzie pobierane sa dane z sesji to tej sesji nie ma !
Poza tym zastanawiam się skąd serwer wie o którą sesję chodzi ?! edit: Sesje moje kochane przepraszm was, zapomniałem was wystrtować ![]() Teraz mam problem jak zrobic wylogowanie ? Tzn. jak tą sesję zniszczyć ? ecit: oświadczam oficialnie że sesje sa huja warte ! Namęczyłęm się przystowałem wszytko do sesji i co widze ? Zalgowałem się jako kasia i owszem w kasi buszuje, teraz wpisałem bez logowania się się katalog basia i co ? No nie wyświetlił sie, odświerzyłem stronę i się pokazał bez logowania ![]() Ten post edytował kiler129 19.03.2007, 14:40:32 -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 12.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dobra dobra
![]() Cytat Poza tym zastanawiam się skąd serwer wie o którą sesję chodzi ?! session_id(); ... pokazuje ci id sesji. Takie samo id jest zapamiętywane w cookies przeglądarki ( może być także przekazane metodą GET ) i jest rzeczą świętą :!: jeżeli ci 'ukradną' id podczas gdy sesja jeszcze nie wygasła to może być równe z utratą serwisu... Cytat Teraz mam problem jak zrobic wylogowanie ? Tzn. jak tą sesję zniszczyć ? session_destroy(); ![]() ![]() Cytat ecit: oświadczam oficialnie że sesje sa huja warte ! Tego może nie będe komentował ... powiem tylko tyle że bez sesji nie ma życia ... Co do startu sesji to musi być to na każdej stronie ... ale to chyba oczywiste a to że ci nie wychodzi :?: to już na sesje nie zwalaj |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
No tak ale dlaczego tak jest ze sesja się jakby sama dososowuje ?
Trudno będzie luka ;P Kiedyś ją poprawie. A co do sesion_destroy() to nie pomyślałem, szukałem sesion_stop(), sesion_kill() itp ![]() -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
po 1 id sesji musisz przekazywać a) w cookie b ) post c) get, wybierz sobie jedną z metod
![]() potem na początku każdego dokumentu dajesz:
Ten post edytował misiek172 19.03.2007, 18:28:53 -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
jakoś nie rozumiem, po co dawać session_id($_REQUEST['PHPSESSID']); ?
-------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 12.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
na razie zostawiaj session id w cookies ... bo ci się za bardzo za gmatwa
![]() i jak na razie tego nie musisz pisać to znaczy pisz tylko session_start(); |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
tylko że jak ktoś ma wyłączone cookie to lipa, nie będzie działać. Sesja się utworzy inna nowa, a co za tym idzie skasują się zmienne.
![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co tak serio to żadko widuje kogoś z wyłaczonymi ciachami
![]() Co ja bym bez was zrobił ? W informacjach o skrypcie będa wasze nicki jako tych co nabardziej pomogli w pisaniu ![]() Wiec jak narazie beta 3 w 98% gotowa, tylko tworzenie userów zostało ![]() a tak na marginesie to jak skopiowac cały katalog wraz z zawartością ? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
zdaje mi się że nie ma konkretnego polecenia do tego... bedziesz musiał napisać sobię taką funkcje która tworzy katalog w danym miejscu o tej samej nazwie co katalog do skopiowania i potem kopiuj zawartość katalogu czyli pliki. Będzie musiał też pomyśleć o pęlach sprawdzających czy w katalogu nie ma drugiego katalogu ... troche zagmatwane i wymaga rekurencji.
Ten post edytował misiek172 19.03.2007, 19:30:24 -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
misiek172 mam wrżnie że ty jak widzisz jakieś zadanie to szukasz najtruniejszego rozwiaznia
![]() Z katalogu bede kopiowal do drugiego 3 pliki - download, index, logout i tworzył cfg ![]() Myślałem ze będe leniwy i zrobię tak ze tylko coś w stylu copy -> past i utowrze cfg a jednak musze kazdy plik kopiować ![]() ![]() -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
znaczy ja poprostu nie znam i nie słyszałem o poleceniu kopiującym folder z zawartością
![]() ![]() a jeśli chodzi o to kopiowanie to przecierz nei takie złe, pobierasz nazwy plików to tablicy oraz nazwe folderu. Tworzysz folder w danym miejscu i pętelką kopiujesz pliki do stworzonego folderu ![]() Ten post edytował misiek172 19.03.2007, 20:00:44 -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 46 Pomógł: 8 Dołączył: 19.03.2007 Skąd: z nad Jarugi Ostrzeżenie: (0%) ![]() ![]() |
Z tego co słyszałem, mechanizm sesi zawarty w php4 (chyba od 4 wersi) nie jest zbyt praktyczny i lepiej napisać własny jako bezpieczniejszy.
Mi samemu sesie napsuły krwi ![]() -------------------- Aktualny projekt: Nauka OOP :)
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ja lubię sesje, więc Ci pomogę:
plik z formularzem logowania form.html plik logowanie.php
plik index.php
troche to na około ale działa, odpalasz w przeglądarce plik index.php on wywołuje plik logowanie.php, jeśli nie było logowania lub było błędne to do zmiennej $print jest zapisywana stosowna informacja i wyświetlany jest formularz logowania. jeśli użytkownik się zalogował poprawnie to do zmiennej $print zapisywana jest jego nazwa i link do wylogowania. Potem w plikach w tych folderach do których mają dostęp tylko wybrane osoby sprawdzasz:
-------------------- |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
masz w ostatnim błąd po 1 w if dajemy do porównania '==' a nie '='
po 2 to if (isset($_SESSION['nazwa_uzytkownika']) && ($_SESSION['nazwa_uzytkownika']='nick użytkownika') ) jest bez sensu, wystarczy samo if ($_SESSION['nazwa_uzytkownika']=='nick użytkownika') bo jeśli ma wartość to wiadomo że istnieje ![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat po 2 to if (isset($_SESSION['nazwa_uzytkownika']) && ($_SESSION['nazwa_uzytkownika']='nick użytkownika') ) jest bez sensu, wystarczy samo if ($_SESSION['nazwa_uzytkownika']=='nick użytkownika') bo jeśli ma wartość to wiadomo że istnieje smilingsmiley.gif przecierz nie może mieć wartość i nie być isset ;p Ale samo $_SESSION['nazwa_uzytkownika']=='nick użytkownika' wygeneruje wyjątek E_NOTICE, jeśli zmienna $_SESSION['nazwa_uzytkownika'] nie będzie zadeklarowana. A jeśli użytkownik nie będzie zalogowany, to ta zmienna raczej zadeklarowana nie będzie. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:11 |