Beosky
14.02.2012, 17:34:59
Po wpisaniu danych i kliknięciu Zaloguj się po prostu nie zalogowywuje mnie do strony.
Kshyhoo
14.02.2012, 17:37:53
A skąd wiesz, że nie jesteś zalogowany?
Beosky
14.02.2012, 17:44:24
Faktycznie, faktycznie nie zauważyłem tego.
Kshyhoo
14.02.2012, 17:49:06
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!
Beosky
14.02.2012, 17:51:35
Ok zamknąłem, ale nie loguje, bo powininem mieć link do wylogowania, a go nie ma. :/
Smietnik tzn?
Kshyhoo
14.02.2012, 17:56:29
Przekazujesz do sesji:
$_SESSION['admin']='ok';
$_SESSION['login']=''.$dane['login'].'';
Można zresztą tak:
$_SESSION['admin']='ok';
$_SESSION['login']=$dane['login'];
Sprawdź, czy masz to w sesji.
Zobacz też, co to za konstrukcja:
To zaś jakiś potwór:
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
Beosky
14.02.2012, 17:58:47
Cytat(Kshyhoo @ 14.02.2012, 17:56:29 )

To zaś jakiś potwór:
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 ?
Kshyhoo
14.02.2012, 18:11:03
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!
Beosky
14.02.2012, 18:18:07
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.
Kshyhoo
14.02.2012, 18:24:02
Dokładnie "jest ustawiona i nie ma przypisanej wartości NULL". Czyli konstrukcja:
if(!isset($_SESSION['admin']) { } else {
}
co wyświetli, x czy y?
Beosky
14.02.2012, 18:27:30
Wyświetli błąd.
Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\portal\login.php on line 26
^^
Kshyhoo
14.02.2012, 18:31:07
Brakuje jednego nawiasu, mogłeś sobie go dołożyć a nie komentować:
if(!isset($_SESSION['admin'])) { } else {
}
Beosky
14.02.2012, 18:31:44
Wyświetliło y.
Kshyhoo
14.02.2012, 18:34:11
Jeżeli nie jest ustawiona zmienne sesyjna o nazwie "admin", wyświetl X, w innym przypadku wyświetl Y.
Jakie wnioski?
Beosky
14.02.2012, 18:36:30
Ustawić odpowiednią zmienną?
Kshyhoo
14.02.2012, 18:38:23
Boże! Masz zły warunek. Widzisz różnicę:
if(!isset($_SESSION['admin'])) { } else {
}
if(isset($_SESSION['admin'])) { } else {
}
Beosky
14.02.2012, 18:39:48
Teraz wyświetliło X. Już rozumiem na czym to polega, ale nadal nie mogę się zalogowac.
Kshyhoo
14.02.2012, 18:43:17
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ę:
if(TWÓJ POTWÓR) {
} else {
}
Beosky
14.02.2012, 18:48:25
a tu zalogowany wyświetla. Jednak nie rozumiem
Kshyhoo
14.02.2012, 18:54:35
Rany, ale jesteś CKM. Na przykładzie Twojego potwora:
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log'])) { echo'tu nie jestem zalogowany, bo użyłem !isset, czyli złego warunku'; } else {
echo 'Jestes zalgowany! jako '.$_SESSION['login'].', <a href="?p=wyloguj">Wyloguj </a>'; }
Mam nadzieję, że teraz zakumasz.
Beosky
14.02.2012, 18:58:08
Trzeba było tak od razu.
Teraz elegancko wyświetliło mi informacje, że nie jestem zalogowany, bo użyłem !isset.
I teraz pytanie czy jak !isset zamienie na isset. To jest to jakiś poważny błąd?
Kshyhoo
14.02.2012, 19:01:26
Przecież masz to wyżej już napisane. Próbowałem Cię naprowadzić, żebyś zakumał a nie za każdym razem myk na forum po gotowca. Zobacz
tę odpowiedź i różnicę w wyświetleniu.
Beosky
14.02.2012, 19:02:59
No tak, ale jak zamienie tego ' potwora ' jak to nazwałeś z
!isset na
isset to wyświetli mi
Cytat
Jestes zalogowany! jako , Wyloguj
Kshyhoo
14.02.2012, 19:04:47
No chyba do tego dążysz? Miałeś sprawdzić różnicę z ! i bez !.
Beosky
14.02.2012, 19:05:40
Tak dąże do tego, aby było to wyświetla, ale to ma być wyświetlane tylko wtedy gdy jestem zalogowany. A, tak mi wyświetla jak jestem wylogowany i zalogowany...
Kshyhoo
14.02.2012, 19:08:41
To duża różnica:
if(!isset($_SESSION['admin'])
Jeżeli $_SESSION['admin']
nie jest ustawiona...
if(isset($_SESSION['admin'])
Jeżeli $_SESSION['admin']
jest ustawiona...
Beosky
14.02.2012, 19:11:05
Ech nie ogarniam tego.. :/
trzeba o issecie poczytać.
Kshyhoo
14.02.2012, 19:12:35
To nie kwestia ISSET, tylko wykrzyknika przed nim. Więcej nic nie napiszę, prześledź to, co napisałem.
Beosky
14.02.2012, 19:16:32
if(isset($_SESSION['admin']) && isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && isset($_POST['submit']) && $_GET['p']!='wyloguj' && isset($_COOKIE['log'])) {
Wyświetla: Jestes zalogowany! jako , Wyloguj
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log'])) {
Wyświetla: tu nie jestem zalogowany, bo użyłem !isset, czyli złego warunku
--
Powinno wyświetlać Jestes zalogowany! jako NICK, Wyloguj
Zresztą zobacz sam:
http://83.29.118.80/portal/
Kshyhoo
14.02.2012, 19:20:22
No już łapiesz... Do logowania potrzebne są dane ;p
Masz problem z kodowaniem na stronie, stąd krzaki.
O operatorach przeczytasz w jakimkolwiek kursie PHP, to podstawy.
Beosky
14.02.2012, 19:21:25
Cytat
Masz problem z kodowaniem na stronie, stąd krzaki.
Jakie krzaki? Ja mam Polskie znaki
Cytat
Do logowania potrzebne są dane ;p
Tak są potrzebne dane, ale konto możesz stworzyć.
Kshyhoo
14.02.2012, 19:31:47
Cytat(Beosky @ 14.02.2012, 19:21:25 )

Jakie krzaki? Ja mam Polskie znaki
Cytat
Strona G��wna
Cytat(Beosky @ 14.02.2012, 19:21:25 )

Tak są potrzebne dane, ale konto możesz stworzyć.
I podam e-mail, żebyś mnie spamował?
Beosky
14.02.2012, 19:35:02
Podaj byle jaki email.

Zrób tak:
test
test
test@wp.pl
Dziwne, bo kodowanie mam na UTF-8
Kshyhoo
14.02.2012, 19:39:33
Takie kombinacje:
if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
Po co tyle ciapów, ukręcisz serwer...
Beosky
14.02.2012, 19:41:39
Temat do zamknięcia masz plusa, ale jednak napisze ten skrypcik od nowa i bez błędów tym razem, bo pierdzielnie mnie coś.
Kshyhoo
14.02.2012, 19:47:06
Jeżeli się uczysz, to pisz kod modułowo - napisz jakąś część i sprawdź, czy działa - potem dokładaj kolejne kawałki, jak coś zmieniasz, to nie usuwaj, tylko zakomentuj. Używaj porządnego formatowania kodu (zagłębienia) dla zwiększenia przejrzystości. I nie przesadzaj z używaniem takiej ilości warunków jak w Twoim POTWORZE. Lepiej dać więcej zagłębień i kilka stopni sprawdzenia - wtedy wyskoczy, co jest skopane.
Sprawdzaj też, co przechodzi do tablic, np tak:
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.