ďťż
Podstrony
|
telcocafeSłuchajcie no nie mogę:index.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <form action="plik.php" method="post"> Podaj login: <input type="text" name="login" /><br /> Podaj hasło: <input type="password" name="haslo" /><br /> <input type="submit" value="Loguj" /> </form> </body> </html> plik.php <?php include('included/db.inc'); include('included/common.inc'); $id_connect = mysql_connect($host, $user, $pass); if(!$id_connect){ echo("błąd połączenia z bazą danych..");} else{ $select_db = mysql_select_db($db, $id_connect); } function auth_user($login, $haslo) { $query = "SELECT login FROM user WHERE login = '$login' AND haslo = '$haslo'"; $result = mysql_query($query); if(!mysql_num_rows($result)) return 0; else { $query_data = mysql_fetch_row($result); return $query_data[0]; } } session_start(); if(!isset($login)) { login_form(); exit; } else { session_register("login", "haslo"); $login = auth_user($login, $haslo); if(!$login) { session_unregister("login"); session_unregister("haslo"); echo "blad"; } else { echo "okok"; } } echo $_SESSION['login']; echo $GLOBALS['haslo']; ?> Teraz pytanie brzmi następująco. 1) koleś się loguje. To jak zrobić żeby na każdej podstronie te zmienne sesyjne były sprawdzane? Znaczy się jak zrobić żeby mógł plynnie chodzić po stronie bez potrzeby ciąglego logowania? 2) jak zrobić wylogowanie? Szczerze? To pierwszy raz bawie się sesjami a musze to dziś mieć ;/ sprawdzasz po prostu na początku każdego pliku: if(empty($_SESSION["login"]))exit; 1. Utwórz sobie zmienną sesyjną, w której będzie zawarta wartość logowania - domyślnie "0", a jeśli się zalogował "1" (albo domyślnie daj pustą, w przypadku poprawnego logowania niech zawiera nazwę zalogowanego użytkownika). Później na każdej stronie sprawdzaj wartość owej zmiennej :) Oczywiście możesz to wszystko rozszerzyć, wymyślić jakieś sposoby upraszczania itp. 2. Musisz opróżnić zmienną sesyjną (na przykład tą z pkt.1) i ją usunąć ;) Ja robiłem tak:$_nazwaSesji = 'jestZalogowany'; $_SESSION[$_nazwaSesji] = ''; session_unset($_nazwaSesji); session_unregister($_nazwaSesji); Wogóle rozbuduj skrypt o plik z funkcjami dotyczącymi sesji, tj. deklaracja rozpoczącia, funkcje logowania, wylogowania, sprawdzania czy user jest zalogowany itd. a później go include()'uj :) edit: loguś był szybszy, ale ja się bardziej rozpisałem :P ;) Użytkownik DJ_ProG edytował ten post 21 luty 2007, 21:12 dobra, a możecie wyjaśnić jak totalnemu debilowi co gdzie wstawić? bo jak sprawdzałem coś to $GLOBALS['zmienna'] i $_SESSION['zmienna'] zachowywaly sie dziwnie bo jak zmieniałem podstrony to już miały pustą wartość i zupełnie się pogubiłem. W każdym pliku musisz mieć session_start()!!! Zapewne to był błąd ;) Powtórze się, ale co tam... Zrób sobie plik w którym będziesz miał owe session_start() i reszte funkcji sprawdzających. I ten plik dołączaj do każdej podstrony. Wogóle pokombinuj trochę. Tak w ciemno (odnośnie tego, co chcez osiągnąć i jak to widzisz) to raczej nikt nic nie zdziała, poza tym, to nie my mamy kodzić, lecz Ty ;) z tego co mówisz to mogę se tak podpinać -> plik.php no i też tak zrobiłem i o ile na strone główńa wejdzie to jak przejde do innej podstrony to wywala Fatal error: Cannot redeclare auth_user() in /home/users/trans/public_html/ogrody/1/admin/plik.php on line 13 Bo za dużo razy includujesz owy plik :) Jedynie domyślam się, jak robisz... Na oko to robisz tak: plik główny -> include podstrony. Więc include() zostaw jedynie w tym głównym pliku, a w innych wywal ;) Pokombinuj Panie ;) To są podstawowe błędy. hehe sorki, ale zarywam właśnie 3 noc z rzędu i powoli rozumuje :P ale dobrze kombinuje z tym, że plik.php może być włąśnie tym który należy includowac ? Jeśli w nim trzymasz session_start() itp. to tak :) OT: man, prześpij się, bo zaczyna się śmietnik robić... Ja idę spać :) Jak coś, na pewno ktoś Ci pomoże. Pzdr. mam nadzieje bo coś mi nie idzie :/ edit// dobra zrobione. Dzięki za rady :) Potem wrzuce pewnie kodzik może się komuś kiedyś przyda :) Użytkownik Dawid-San edytował ten post 22 luty 2007, 00:05 |
|||
Sitedesign by AltusUmbrae. |