Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] problem z sesją
#1
Kod:
<?php
session_start();
include "include.php";
$page = new c_Szablon;
$dbase = new db_interface ($_base_name, $_user, $_pswd, $_host);


if (isset($_POST['login']) && isset($_POST['password'] ))
{
    $result = $dbase ->get_query("SELECT * FROM urzytkownicy
                                WHERE login='".$_POST['login']."'
                                AND haslo = '".$_POST['password']."';");
    if(($_POST['login']==$result[0]['login']) && ($_POST['password']==$result[0]['haslo']))
    {
        $_SESSION['zalowogowany'] = 1;
        $_SESSION['czas'] = time();
        $page->assign['main'] .="Witaj <b>".$result[0]['login']."</b>";
    }
    else
    {
        $login_form = new c_Szablon;
        $page->assign['main'] .="Podano złe hasło, sprobój ponownie";
        $page->assign['main'] .=$login_form->parse("szablon/logowanie.htm");
        echo $page ->parse("szablon/admin/index.htm");
        exit;
    }
}
else
{
    $login_form = new c_Szablon;
    $page->assign['main'] .="Zaloguj się";
    $page->assign['main'] .=$login_form->parse("szablon/logowanie.htm");
    echo $page ->parse("szablon/admin/index.htm");
    exit;
}

if ($result[0]['ranga']==1)
{
    $page->assign['main'] .= "<br><a href=\"?action=add_news\" class=\"link_opcje\">DODAJ NEWSA</a><br>";
}


if (isset($_SESSION['zalogowany'])&&isset($_SESSION['czas'])&&($_SESSION['zalogowany']===1))
{
    if(time()-$_SESSION['czas'] <1800)
    {
        $_SESSION['czas']=time();
        $page->assign['main'] .= "jestes zalogowany<br><br>";

                            if(!isset($_GET['action']))
                             {
                            $_GET['action'] ="";
                            }

             switch ($_GET['action'])
          {
             case "add_news":
                    { ...}
             break;

             default :
                   { ...}
            break;
        }
    }
}



echo $page ->parse("szablon/admin/index.htm");
?>

tak wyglada fragment mojego kodu,
problem tkwi w tym, że jeżeli klikne dodaj newsa, to zamiast wyskoczyć mi formularz za pomocą ktorego dodałbym newsa, to wraca do formularza logowania.

gdzie popełniam błąd?
Odpowiedz
#2
Po pierwsze to skąd bierzesz tablicę $result? Po drugie w instrukcji switch, na końcu jak masz default nie stawia się break.
[Obrazek: 2guxq1i.gif]
Odpowiedz
#3
@Dziamber, można wstawiać break po defaulcie, nawet w manualu php jest przykład z breakiem.
Odpowiedz
#4
$result = $dbase ->get_query("SELECT * FROM urzytkownicy
WHERE login='".$_POST['login']."'
AND haslo = '".$_POST['password']."';");


stąd biore result, chyba widac
Odpowiedz
#5
@Dhofca - przez cały czas spotykałem się z taką wersją, ale to chyba nie ma znaczenia w działaniu to break na końcu, ale dzięki za uwagę.

Co do twojego problemu, to masz linijkę:
Kod:
if (isset($_SESSION['zalogowany'])&& isset($_SESSION['czas']) && ($_SESSION['zalogowany']===1)) {
Spróbuj tak:
Kod:
if (isset($_SESSION['zalogowany']) && isset($_SESSION['czas']) &&  $_SESSION['zalogowany'] == 1) {
[Obrazek: 2guxq1i.gif]
Odpowiedz
#6
dalej nie działa,

jeżeli kliknę w jakiegoś linka na wyswietlonej stronie po logowaniu, to dalej wyslakuje logowanie, a chcialbym wykonać jakąś akcje


ma ktoś inną propozycje? w jaki sposób rozwiązać sesję?
Odpowiedz
#7
Kod:
if(($_POST['login']==$result[0]['login']) && ($_POST['password']==$result[0]['haslo']))
    {
        $_SESSION['zalowogowany'] = 1;
        $_SESSION['czas'] = time();
Literówka w nazwie zmiennej sesyjnej. :p
Odpowiedz
#8
to już zauważyłem wczoraj po dodaniu tego posta,

znalazłem rozwiązanie, najpierw sprawdzam sesje, a w razie fałszu wyświetlam okienko logowania,

i teraz mam pytanie czy do zamknięcia sesji wystarczy wywołać session_destroy(); ?
Odpowiedz
#9
Nie, należy również wyczyścić tablice $_SESSION np.
unset( $_SESSION);
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Strona z sesją i bez Marys 4 4,025 09-10-2012, 23:12
Ostatni post: hieroshima
  Problem z sesją kam7 2 2,338 03-03-2010, 07:41
Ostatni post: kam7

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl