Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MySQL] Logowanie
Beosky
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Po wpisaniu danych i kliknięciu Zaloguj się po prostu nie zalogowywuje mnie do strony.



Ten post edytował Beosky 14.02.2012, 19:37:04
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A skąd wiesz, że nie jesteś zalogowany?
Go to the top of the page
+Quote Post
Beosky
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Faktycznie, faktycznie nie zauważyłem tego.


Ten post edytował Beosky 14.02.2012, 19:37:16
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Brak jednej klamry zamykającej pętlę. Po to używa się edytorów z kolorowaniem składni i odpowiednio formatuje się kod - to co wkleiłeś, to śmietnik!

Ten post edytował Kshyhoo 14.02.2012, 17:50:39
Go to the top of the page
+Quote Post
Beosky
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Ok zamknąłem, ale nie loguje, bo powininem mieć link do wylogowania, a go nie ma. :/

Smietnik tzn?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przekazujesz do sesji:
  1. $_SESSION['admin']='ok';
  2. $_SESSION['login']=''.$dane['login'].'';

Można zresztą tak:
  1. $_SESSION['admin']='ok';
  2. $_SESSION['login']=$dane['login'];

Sprawdź, czy masz to w sesji.
Zobacz też, co to za konstrukcja:

To zaś jakiś potwór:
  1. if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
Go to the top of the page
+Quote Post
Beosky
post
Post #7





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat(Kshyhoo @ 14.02.2012, 17:56:29 ) *
To zaś jakiś potwór:
  1. if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))


Niby dlaczego potwór? Chyba powinno działać normalnie, jakis pomysł jak to inaczej zrobic ?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Sprawdź, jak funkcjonuje !isset.
Twoje rozwiązanie: jeżeli nie jest ustawiona zmienne sesyjna o nazwie "admin" i nie jest ustawiona zmienna sesyjna o nazwie "login" i zmienna sesyjna "admin" nie jest równa "ok" i nie jest ustawiona $_POST['submit'] i zmienna $_GET['p'] nie jest równa "wyloguj" i nie jest ustawiona $_COOKIE['log']... to pokaż, że jesteś zalogowany. To kiedy ma pokazać, że jesteś zalogowany?
Powodzenia!

Ten post edytował Kshyhoo 14.02.2012, 18:11:45
Go to the top of the page
+Quote Post
Beosky
post
Post #9





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Nie zrozumiałem nic z tego co napisałeś. Wiem jak dziala isset.
Cytat
Funkcja isset sprawdza czy zmienna została utworzona. Zwraca true jeśli istnieje lub false jeśli zmiennej nie ma. Wyjątek stanowi sytuacje gdy zmienna ma "wartość" NULL - wtedy funkcja isset zwraca false.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Dokładnie "jest ustawiona i nie ma przypisanej wartości NULL". Czyli konstrukcja:
  1. if(!isset($_SESSION['admin']) {
  2. echo'x';
  3. } else {
  4. echo'y';
  5. }

co wyświetli, x czy y?
Go to the top of the page
+Quote Post
Beosky
post
Post #11





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Wyświetli błąd.

Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\portal\login.php on line 26

^^


Ten post edytował Beosky 14.02.2012, 19:37:39
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Brakuje jednego nawiasu, mogłeś sobie go dołożyć a nie komentować:
  1. if(!isset($_SESSION['admin'])) {
  2. echo'x';
  3. } else {
  4. echo'y';
  5. }
Go to the top of the page
+Quote Post
Beosky
post
Post #13





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Wyświetliło y.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #14





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jeżeli nie jest ustawiona zmienne sesyjna o nazwie "admin", wyświetl X, w innym przypadku wyświetl Y.

Jakie wnioski?
Go to the top of the page
+Quote Post
Beosky
post
Post #15





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Ustawić odpowiednią zmienną?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #16





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Boże! Masz zły warunek. Widzisz różnicę:
  1. if(!isset($_SESSION['admin'])) {
  2. echo'x';
  3. } else {
  4. echo'y';
  5. }

  1. if(isset($_SESSION['admin'])) {
  2. echo'x';
  3. } else {
  4. echo'y';
  5. }
Go to the top of the page
+Quote Post
Beosky
post
Post #17





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Teraz wyświetliło X. Już rozumiem na czym to polega, ale nadal nie mogę się zalogowac.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #18





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jeżeli użyjesz !isset, to znaczy, że zaprzeczasz warunkowi, czyli użyłeś formy, jeżeli NIE jest ustawiona - więc jesteś zalogowany, ale nie pokaże Ci tego. Zrób tak, a zobaczysz różnicę:
  1. if(TWÓJ POTWÓR) {
  2. echo'lipa';
  3. } else {
  4. echo'a tu zalogowany';
  5. }


Ten post edytował Kshyhoo 14.02.2012, 18:44:07
Go to the top of the page
+Quote Post
Beosky
post
Post #19





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


a tu zalogowany wyświetla. Jednak nie rozumiem

Ten post edytował Beosky 14.02.2012, 19:37:53
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #20





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Rany, ale jesteś CKM. Na przykładzie Twojego potwora:
  1. if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log'])) {
  2. echo'tu nie jestem zalogowany, bo użyłem !isset, czyli złego warunku';
  3. } else {
  4. echo 'Jestes zalgowany! jako '.$_SESSION['login'].', <a href="?p=wyloguj">Wyloguj </a>';
  5. }

Mam nadzieję, że teraz zakumasz.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.08.2025 - 05:38