problem z $_SESSION

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
glodny
Początkujący
Początkujący
Posty: 19
Dołączył(a): środa, 9 maja 2012, 19:27

problem z $_SESSION

Post przez glodny »

witam mam problem z $_SESSION zaraz na początku mianowicie wprowadzam taki kod:

Code: Zaznacz cały

<?php
session_start();

?>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     
        <title>Zmienna Predefiniowana $_POST - by Arkadiusz Włodarczyk - videokurs.pl</title>

    </head>
    <body>
        <form action="bbb.php" method="post" enctype="multipart/form-data">
            <div>
                <div>
                    Login: <input type="text" name="login" maxlength="8" size="5" />
                </div>
                <div>
                    Password: <input type="password" name="haslo" maxlength="15" size="5" />
                </div> 
                <div>
                    <input type="submit" value="Zaloguj się™" />
                </div>
            </div>
        </form>
        
        <?php
        
        if ((isset($_POST['login'])&& isset($_POST['haslo'])) || $_SESSION['zalogowany'] == 1)
            
        {
          if  ((!empty($_POST['login'])&& !empty($_POST['haslo'])) || $_SESSION['zalogowany'] == 1)
            {
                $login= filter_var($_POST['login'], FILTER_SANITIZE_STRING);             - TO JEST LINIA 34

                $haslo= filter_var($_POST['haslo'], FILTER_SANITIZE_STRING);            - TO JEST LINIA 36  
                
                if (($login == "daniel" && $haslo == "skibek") || $_SESSION['zalogowany'] == 1)
                {
                    echo "gratulacje zalogowałeś sie na konto  ".$login."<br/>";
                    echo "PANEL ADMINISTRACYJNY<br/>";

                    $_SESSION['zalogowany']= 1;
                    
                }
                else
                    echo "podałes niepoprawny login lub hasło spróbuj ponownie  <a href='bbb.php'>tutaj</a>";
                    
            }
          else
                    echo "Nie podłeś loginu lub hasła. Spróbuj ponownie <a href='bbb.php'>tutaj</a>";
        }
        
        
        ?>
        
        
        </body>
</html>

po odświeżeniu strony wyskakuje błąd taki jak załączyłem do wiadomości nie mam pojęcia dlaczego tak się dzieje proszę o pomoc
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: problem z $_SESSION

Post przez Morfidon »

Witam,

Proszę o stosowanie znacznika code (został już dodany).

W kodach źródłowych poprawiłem kod, aby nie było ostrzeżenia w najnowszym vertrigo server. W kursie korzystam ze starszej wersji, w której domyślne ustawienie error_reporting wyświetla coś co się zwie ostrzeżeniami - nie jest to żaden błąd, jest to potencjalne miejsce w którym może się znaleźć błąd, jeśli programista nie wiedział co robi.

Sugeruję wyłączyć to wchodząc do php.ini i zmienić
error_reporting na E_ALL & ~E_NOTICE
glodny
Początkujący
Początkujący
Posty: 19
Dołączył(a): środa, 9 maja 2012, 19:27

Re: problem z $_SESSION

Post przez glodny »

dzięki Arku pomogło :D
lightkozak
Nowicjusz
Posty: 2
Dołączył(a): piątek, 28 grudnia 2012, 06:36

Re: problem z $_SESSION

Post przez lightkozak »

Morfidon napisał(a):...W kodach źródłowych poprawiłem kod, aby nie było ostrzeżenia w najnowszym vertrigo server. ...
Czy można skądś ściągnąć te kody źródłowe, ewentualnie je obejrzeć. Z panelu administracyjnego, gdy klikam "Ściągnij pliki źródłowe", otwiera się filmik z informacją "Token zabezpieczający przestał istnieć, prosimy o przelogowanie się" Próbowałem, przez przeglądarkę Chrome oraz Mozille. Chodzi mi szczególnie właśnie o lekcje związane z $_SESION.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: problem z $_SESSION

Post przez Morfidon »

Z załączniku. Pamiętaj by nie korzystać ze wspomagaczy do ściągania oraz AdBlockerów, niektóre blokują możliwość ściągania.
lightkozak
Nowicjusz
Posty: 2
Dołączył(a): piątek, 28 grudnia 2012, 06:36

Re: problem z $_SESSION

Post przez lightkozak »

Leciałem z lekcjami, dosyć szybko, ale ta od $_SESION zatrzymała mnie gdzieś na kilka godzin :)
Po brutalnym porównaniu plików, za pomocą alt+tab okazało się, że w jednym miejscu zamiast $_GET miałem $GET.
Wcześniej sprawdzałem to z 10 razy i nie wiem, jak to mogłem przeoczyć, chyba z powodu zmęczenia.

Dziękuję za pomoc

ps

Informacyjnie piszę, by zadziałała opcja: Ściągnij pliki źródłowe
1) W Mozilli musiałem wyłączyć dodatek VLC Media player (VLC media player Web Plugin 2.0.0)
2) W Chrome nie ma znaczenia jakie ma się dodatki, nie działa :) wyłączyłem wszystkie zrestartowałem przeglądarkę w razie czego i tak nie działa.
3) W IE, mogłem ściągać pliki.
tajger
Zaawansowany
Zaawansowany
Posty: 223
Dołączył(a): niedziela, 11 marca 2012, 03:08
Lokalizacja: Poland
Contact:

Re: problem z $_SESSION

Post przez tajger »

Mam też mały problemik dotyczący sesji a dokładnie zalogowania. Po pewnym randomowym czasie zostaję wylogowany czasami. Sprawdzałem po IP czy ktoś może wbijać na konto, ale jednak to nie to. Czy host na którym mam stronkę, może jakieś refreshe robić i dlatego czasami utracam sesję. Mam ustawioną na 15min.
Zawsze walcz do końca i nigdy się nie poddawaj!
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: problem z $_SESSION

Post przez Morfidon »

Tak w ustawieniach serwera sesja również może być skrócona, ale najczęściej ustawiona jest na 15 minut / 30 minut. Randomo jednak nie powinno się tak dziać. Jeśli dzieje się randomowo to gdzieś błąd jest w skrypcie.
tajger
Zaawansowany
Zaawansowany
Posty: 223
Dołączył(a): niedziela, 11 marca 2012, 03:08
Lokalizacja: Poland
Contact:

Re: problem z $_SESSION

Post przez tajger »

Rozwiązałem już problem... Pamiętam jak kiedyś używałem twojego kodu. U ciebie jest tylko jedna niepotrzebna rzecz, ty zawsze sprawdzasz nawet jak jest zalogowany czy jest sessiong[logged]=1 i tam cały czas podpisywales sesje zeby sie utrzymala ofc. Ja to zmienilem ostatnio i jak tylko raz sie zalogujesz to juz nie musisz sprawdzac caly czas czy jest zalogowany i podpisywac sesje w tamtym miejscu i wiele innych spraw.. Zapomniałem podpisywać sesje-logged, która mi po 15minut wygasała. Dodałem ją do innego warunku, tak żeby jak najmniej powtarzać tego typu sytuacje. Zawsze zaoszczędzi się czas i transfer, w małym stopniu, ale zawsze. :)
Zawsze walcz do końca i nigdy się nie poddawaj!
Post Reply