![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Mam skrypt który sluży do logowania, jak koles kliknie submita przechodzi do index.php?action=login gdzie sprawdza czy zmienna $_SESSION['zalogowany'] istnieje. Jezeli nie istnieje (koles nie jest zalogowany) to sprawdza czy nazwa usera i jego haslo jest poprawne, jesli tak to zmiennej sesyjnej $_SESSION['zalogowany'] nadaje wartosc 1. Pozniej zmiennej $_SESSION['login'] przypisuje nazwe uzytkownika ktory sie zalogowal (jego nazwe bierze ze zmiennej ktora, ot co, przyleciala ze strony z formularzem - $login). Jest jeszcze export zmiennej $_POST['login'] z nazwa usera. Wywala mi echo ze wlasnie sie zalogowalem jako $_SESSION['login'].
Jezeli natomiast koles jest juz zalogowany to ladnie pisze ze jestem zalogowany jako $_SESSION['login'] i przypisuje do $_POST['login'] $_SESSION['login'] bo $login juz nie dziala na tej czesci skryptu. Caly panel logowania za pomoca funkcji include osadzilem w pliku index.php. Glowna czesc strony jest w pliku body.php ktory rowniez 'zincludowalem' do index.php. W pliku body.php potrzebny mi jest login zalogowanego usera, ktory otrzymuje jako $GLOBALS['login']. Problem polega na tym, wysylanie danych przez $_POST nastepuje tylko gdy jestem na stronie index.php?action=login. Gdy znajduje sie na stronie gdzie action to cos innego niz login wtedy wysylanie nie nastepuje. Zawartosc login.php
I drugie pytanie: czemu jezeli znajduje sie na index.php?action=login po odswiezeniu strony nadal wykonuje wysyla mi przez $_POST nazwe usera? Przeciez kolejny warunek wyklucza kontynuowanie dalej skryptu bo skror $_SESSION['zalogowany']=1 to ona istnieje... Ten post edytował v1t4n 16.01.2007, 23:40:39 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
no coś musisz jeszcze doczytać o php i zmiennych:)
1. Tak się nie robi!
Tablica $_POST jest przesyłana w momencie wywołania formularza tylko chyba że każdy twój link na stronie jest takim submitem (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif) Poczytaj tutaj $_POST" title="Zobacz w manualu php" target="_manual 2. Wejdż do php.ini i daj sobie register global na off 3. Zapytanie nie odporne na SQL injection [sql]SELECT * FROM `users` WHERE `username` = ''. $login .'' LIMIT 0, 30 ';[sql] poza tym nie przesyła się hasła z bazy do skryptu tylko hasło sprawdza się w bezpośrednio w bazie. 4. z zamień na
Kodzik bardzo słabiutki dużo musisz poczytać ale pracuj a w końcu sie uda. Powodzenia!!! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
co racja to slabiutki jestem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
1. odnosnie zastosowania funkcji $_POST - jak inaczej przesylac zmienne? przez sesje mi to nie poszlo... 2. co do zamiany tego co napisales w pkt 4 musze przypisac najpierw $_SESSION['login'] wartosc $login po poki co $_SESSION['login'] jest puste wiec tego nie tykam (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ----------------------------------- Poradzilem sobie sesjami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) mianowicie w body.php dodalem session_start(); i zamiast $GLOBAL dalem $_SESSION. Mozna zamknac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) Ten post edytował v1t4n 17.01.2007, 00:24:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 00:21 |