Obsługa sesji nawala!

Konfiguracja for z rodziny phpBB.
jagron
Posty: 9
Rejestracja: 31 gru 2007, 14:30:54
Płeć: Niewybrana
User Agent: Firefox Windows 1152x864

Obsługa sesji nawala!

Post autor: jagron »

Zrobiłem sobie ostatnio w php system logowania oparty na sesjach. Niestety okazuje się, że macie wyłączoną obsługę headersów i sesji. Kiedy to włączycie i czy w ogóle?
Awatar użytkownika
Gromed
Przyjaciel CBA
Posty: 2990
Rejestracja: 18 kwie 2006, 12:18:45
Lokalizacja: Toruń
Płeć: Mężczyzna
User Agent: Firefox Windows 1024x768

Post autor: Gromed »

hmm, u mnie sesje działały bezproblemowo; może masz jakiś błąd w kodzie?
juice
Admin CBA
Posty: 3594
Rejestracja: 15 cze 2005, 19:25:03
Płeć: Niewybrana
User Agent: Firefox Windows 1440x900

Post autor: juice »

chyba sobie żartujesz, gdyby nie było sesji to by tu nic nie działało ;) oczywiście że mamy obsługę sesji.
wargo
Posty: 633
Rejestracja: 01 sie 2007, 20:22:52
Lokalizacja: pleszew
Płeć: Niewybrana
User Agent: Internet Explorer Windows 800x600
Kontakt:

Post autor: wargo »

Mi też działają sesje, może masz jakiś błąd albo robisz coś źle. Pokaż nam kod (moze byc przykład)
NULL
jagron
Posty: 9
Rejestracja: 31 gru 2007, 14:30:54
Płeć: Niewybrana
User Agent: Firefox Windows 1152x864

Post autor: jagron »

Dobra dam kod:

Kod: Zaznacz cały

<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<?php
session_start&#40;&#41;;
//łączenie ze sql, które dla potrzeb postu wywaliłem
if&#40;!empty&#40;$_POST&#41;&#41;
&#123;
        $q = "SELECT * FROM phpbb_users WHERE username = '".mysql_escape_string&#40;$_POST['login']&#41;."' and user_password = md5&#40;'".mysql_escape_string&#40;$_POST['pass']&#41;."'&#41;";
        $result = mysql_query&#40;$q&#41;;
        


        $USER = mysql_fetch_assoc&#40;$result&#41;;

        if&#40;empty&#40;$USER&#41;&#41;
        &#123;
                echo"Podałe&#182; złe dane";
        &#125;
        else
        &#123;
                echo "Zalogowałe&#182; się poprawnie!<br> <meta http-equiv=refresh content=1>";
                $_SESSION['user'] = array&#40;'id' => $USER['user_id'],
                                          'name' => $USER['username']&#41;;
                $q = "UPDATE `phpbb_users` SET `user_ip_addr` = ".ip2long&#40;$_SERVER['REMOTE_ADDR']&#41;.",
                                                                        `user_session` = '".session_id&#40;&#41;."',
                                                                        `user_session_time` = ".time&#40;&#41;."
                                                                        WHERE user_id = ".$_SESSION['user']['id'];
                                                                        
                mysql_query&#40;$q&#41;;

        &#125;
&#125;
if&#40;empty&#40;$_SESSION&#41;&#41;
&#123;
 echo"<form method=POST action="\">
  Użytkownik: <input type=text name=\"login\">
  Hasło: <input type=PASSWORD name=\"pass\">
  <input type=submit>
  </form>";
&#125;
else
&#123;
        //pobieranie z bazy danych informacji o uÄ&#177;źytkowniku

        $q = "SELECT username, user_session, user_session_time FROM `phpbb_users` WHERE user_id = ".$_SESSION['user']['id'];
        $result = mysql_query&#40;$q&#41;;

        $USER = mysql_fetch_assoc&#40;$result&#41;;

        if&#40;time&#40;&#41; - $USER['user_session_time'] > 5000&#41; echo 'Przekroczony czas poł&#177;czenia';
        if&#40;$USER['user_session'] != session_id&#40;&#41;&#41; echo 'Zła sesja';

       $q = "UPDATE `phpbb_users` SET `user_session_time` = ".time&#40;&#41;."
                                                                        WHERE user_id = ".$_SESSION['user']['id'];
                                                                        
        mysql_query&#40;$q&#41;;
        include&#40;"menu.php"&#41;;
&#125;
if&#40;$_GET['action'] == 'logout'&#41;
&#123;
        session_destroy&#40;&#41;;
        echo "Zostałe&#182; wylogowany";
        header&#40;"location: ../index.php"&#41;;
&#125;
?>
Możecie zobaczyc system w akcji a raczej półakcji www.sdrn.info/log
konto założyc można na forum www.sdrn.info/forum. Proszę bardzo, sesje moim zdaniem nie działają, dodam też, że przed przeprowadzką strony tj. na yoyo wszystko było ok.

APELUJE JE¯ELI TAK JEST A CHYBA TAK O W£¡CZENIE OBS£UGI HEADERS, BO NIE MOGÊ NP. ODTWARZAÆ FILMÓW Z GOOGLE, KTÓRE SOBIE UMIE¦CI£EM, NIE MO¯NA TE¯ ZROBIÆ SUBDOMEN BEZ UPRZENIEJ ZMIANY KATALOGU I WIELE INNYCH. JA WIEM, ¯E OGRANICZA TO HOTLINK-OWANIE, ALE Z NIM MO¯NA WALCZYC INACZEJ!
wargo
Posty: 633
Rejestracja: 01 sie 2007, 20:22:52
Lokalizacja: pleszew
Płeć: Niewybrana
User Agent: Internet Explorer Windows 800x600
Kontakt:

Post autor: wargo »

Mi logowanie działa, zarejestrowałem się na forum i przeszedłem do logowania na www.sdrn.info/log
Jednak gdy wejdę np. na czat to pokazuje błąd. Musisz dopisac na górze strony:

Kod: Zaznacz cały

<?
session_start();
$user = $_SESSION['user'];
//kod strony
?>
A tam gdzie ma się wyświetlać nazwa użytkownika daj zmienną $user


[quote]Zalogowałeś się poprawnie!

Witaj woytecr w panelu użytkownika

[/quote]


[quote="jagron"] W£¡CZENIE OBS£UGI HEADERS[/quote]
jest
NULL
jagron
Posty: 9
Rejestracja: 31 gru 2007, 14:30:54
Płeć: Niewybrana
User Agent: Internet Explorer Windows 1024x768

Post autor: jagron »

Dałem taki kod i nie działa. Coś jest nie tak z serwerem, bo działało na [regulamin forum: punkt 2.13], a tutaj nie, chyba coś z obsługą sesji bo gdy przejdę za pomoca linku do innego katalogu to wtedy wszystko się psuje.
wargo
Posty: 633
Rejestracja: 01 sie 2007, 20:22:52
Lokalizacja: pleszew
Płeć: Niewybrana
User Agent: Internet Explorer Windows 800x600
Kontakt:

Post autor: wargo »

Ale czy móglbym wiedzieć co dokładnie nie działa-sprawdzanie czy zalogowano, wyświetlanie nazwy czy co?
NULL
Awatar użytkownika
shadowvip
Posty: 19
Rejestracja: 27 wrz 2007, 19:41:28
Lokalizacja: z kątowni
Płeć: Niewybrana
User Agent: Internet Explorer Windows 1024x768
Kontakt:

Post autor: shadowvip »

Nie wiem czy to pomoże ale kiedyś miałem podobny problem i z tego co pamiętam pomogło.

Wstaw to po rozpoczęciu sesji a nie przed:

Kod: Zaznacz cały

<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8"> 
Obrazek
Awatar użytkownika
fuma
Przyjaciel CBA
Posty: 11168
Rejestracja: 01 sie 2005, 14:57:56
Lokalizacja: z jajka niespodzianki :P
Płeć: Mężczyzna
User Agent: Opera Windows 1600x1200

Post autor: fuma »

hmmm nie sadzisz, ze skrypt sesji zawsze jest podawany przed kodem html? Uwazam, ze rada podana przez shadowvip powinna rozwiazac twoj problem i uswiadomic Tobie, ze moim zdaniem 95% bledow ze skryptami jest wynikiem niewiedzy/przeoczen ze strony uzytkownikow a nie bledna konfiguracja serwera.
wargo
Posty: 633
Rejestracja: 01 sie 2007, 20:22:52
Lokalizacja: pleszew
Płeć: Niewybrana
User Agent: Internet Explorer Windows 800x600
Kontakt:

Post autor: wargo »

Mogą też być błędy w kodzie, trzeba wtedy włączyć obsługe wyświetlania błędów.
NULL
ODPOWIEDZ