Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa sesijama - login

[es] :: PHP :: Problem sa sesijama - login

[ Pregleda: 1194 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bojan Zivanovic
Freelance programer
Pančevo,Srbija

Član broj: 32974
Poruke: 146
194.106.171.*

Jabber: Bojan_Zivanovic@elitesecurity.org
Sajt: bojanz.blogspot.com


Profil

icon Problem sa sesijama - login15.02.2005. u 21:24

Pozdrav kolege!
Pravim neki sajt, pa mi treba mala pomoc.
U pitanju je admin panel, treba napraviti autentifikaciju korisnika, user i password se cita iz fajla, pa se uporedjuje sa vrednostima iz login formulara. Admin panel ima dva dela, read i new, koji se biraju preko linka u headeru (a href="admin.php?page=read", pa se to izvuce iz $_GET) biranje stranica se obavlja preko case switching-a. Problem je sto pri promeni stranica skipta opet izbacuje login form... Probao sam da stavim session_start() na pocetak svake stranice, ali ne radi...
Pogledajte kod:

Code:

include('include/lib.php');
session_start();
if ($_POST['username'] == $admin_user && $_POST['password'] = $admin_pass) {
    include('html/admin/header.html');
    switch($_GET['page']) {
    case "new" :
        session_start();
        include('html/admin/new.html');
        include('html/footer.html');
    break;
    case "read":
        session_start();
        include('html/admin/read.html');
        /* sad ovde neki kod, izbacen  da skratim...*/
        break;
        default:
            session_start();
            include('html/admin/index.html');
            include('html/footer.html');
        break;
        }
}
else {
    session_start();
    include('html/admin/login.html');/
}
?>

Molim vas pomozite mi... Ako moze da se odradi sve to na neki drugi nacin (cookies?), napisite.
Unapred hvala,
Bojan
15.02.2005. u 21:24 

boccio
Boris Krstović
Spoonlabs.com
nbgd

SuperModerator
Član broj: 7594
Poruke: 2380
*.ptt.yu.

Sajt: blog.krstovic.info


Profil

icon Re: Problem sa sesijama - login15.02.2005. u 22:34
A kad menjas stranice, jel ponovo saljes user/pass kroz POST? Ako ne, to je problem...Bolje ih sacuvaj u sesiji...

osim toga, jedan session_Start() na vrhu ti je dovoljan...

[Ovu poruku je menjao boccio dana 15.02.2005. u 23:38 GMT+1]
15.02.2005. u 22:34 

set_X

Član broj: 32954
Poruke: 675
62.108.97.*



Profil

icon Re: Problem sa sesijama - login15.02.2005. u 22:36
Mozda nije tacno, ali session_start() trebas da stavis na pocetku, pre include, i vise ne ( u case).

Pokusaj tako.

poz.
15.02.2005. u 22:36 

Nebojsa_S
Nebojsa Stankovic
projektant baza podataka
Novi Beograd

Član broj: 38157
Poruke: 46
*.ptt.yu.

ICQ: 309
Sajt: www.oglasiplus.com


Profil

icon Re: Problem sa sesijama - login15.02.2005. u 23:59
Logika rada sa sesijama ide otprilike ovako. Svaka strana koju zelis da zastitis treba da ima napocetku (pre BILO KAKVOG ISPISA) kod slican ovome:
Code:
<?php session_start();
include "provera.php";
if(provera_admina()!==true) exit;
?>


Funkcija provera_admina() radi sledece:
Code:

if(isset($_SESSION['admin']))
    {
    return true;
    }    
     // autorizacija
     if (count ($_POST) == 0) 
     {
          show_auth_form ();
          return false;
     }
     else
      {
          $user = $_POST['u'];
          $pass = $_POST['p'];
          if (empty ($user) || empty ($pass)) 
          {
               show_auth_form ('Molimo unesite username i password');
               return false;
          }
          if (auth_admin($user, $pass) !== true) {
          
               show_auth_form ('Login neuspesan, pokusajte ponovo');
               return false;
          }
     }
     // ako smo dovde dosli, user je proveren , pa ga upisujemo u sesiju
    $_SESSION['admin']=$_POST['u'];
     return true;

Funkcija show_auth_form() pokazuje formular za unos usr/pass , a funkcija auth_admin($user,$pass) vrsi stvarnu poredjenje unetih i zapamcenih podataka.
Sve navedene funkcije nalaze se u posebnom fajlu "provera.php", koji uvek na pocetku inkludujes.
Nadam se da ce ti ovo pomoci. Pozdrav
15.02.2005. u 23:59 

set_X

Član broj: 32954
Poruke: 675
62.108.97.*



Profil

icon Re: Problem sa sesijama - login16.02.2005. u 08:48
Bice ti korisno da stavis link za logout:

Code:

echo "<br><a href=\"" . $_SERVER['PHP_SELF'] . "?act=logout\">Logout</a><br>";


A kod za logout:

Code:

if ($_GET['act'] == "logout") {
       session_destroy();
// ovde npr. link za back to index...
}


poz.
16.02.2005. u 08:48 

Jbyn4e
Admin/Developer, Yunix
Zrenjanin - Beograd

Član broj: 422
Poruke: 3077
*.vdial.verat.net.

ICQ: 10450578
Sajt: bio sf.co.yu


Profil

icon Re: Problem sa sesijama - login16.02.2005. u 14:04
Tacnije, nesto ovako:
Code:

        {
        session_unset();
        session_destroy();
}

ne secam se sad zasto to bese treba i unset i destroy, ali znam da sam procitao da treba...

16.02.2005. u 14:04 

Bojan Zivanovic
Freelance programer
Pančevo,Srbija

Član broj: 32974
Poruke: 146
194.106.171.*

Jabber: Bojan_Zivanovic@elitesecurity.org
Sajt: bojanz.blogspot.com


Profil

icon Re: Problem sa sesijama - login16.02.2005. u 19:48
Hm, svi ovi predlozi (session_start pre include...) mi nisu pomogli (i dalje ne radi)
Da malo pojasnim...
Evo sta hocu da postignem; admin otvori stranu i dobije formu za login... Vrednosti iz forme se uporedjuju sa vrednostima iz settings.php, ako su ok prikazuje sajt. E sad sajt ima tri dela koja se prikazuju pomocu case/switch a pristupa im se pomocu linkova na vrhu sajta koji vode na admin.php?page=nesto, zatim se page izvuce iz $_Get i to bi trebalo da je to... Mozda je u tome problem...Medjutim prilikom prelaska sa strane na stranu on mi opet trazi login, znaci ne prebacuje kako treba... Neko je spomenuo da user i pass iz forme sacuvam u sessiju, molim neka pojasni....Ponavljam kod, ovog puta malo opsirnije, pa vi vidite sta ne valja... Dajte slobodno neko drugo resenje, samo hocu da to radi...
Znaci:
Code:

session_start();
include('include/lib.php');
if ($_POST['username'] == $admin_user && $_POST['password'] = $admin_pass) {
    include('html/admin/header.html');
    switch($_GET['page']) {
    case "new" :
        include('html/admin/new.html');
        include('html/footer.html');
    break;
    case "read":
        include('html/admin/read.html');
        // Kod za bazu... nebitno...
        break;
        default:
            include('html/admin/index.html');
            include('html/footer.html');
        break;
        }
    }    
else {
    include('html/admin/login.html');
}
?>

Znaci to ne radi... Pisite predloge, kolacici, sesije, sve...
Odradio sam sve to bio sa HTTP_AUTH, ali server na kome sam sve to testirao je imao PHP da radi kao CGI, ali tada to nije dostupno... Da li se PHP cesto koristi ovako? Bas mi bedno, kod je radio...
Sta cu kada moram da zaobilazim glupe administratore i da se prilagodjavam debiilnim instalacima...
16.02.2005. u 19:48 

Jbyn4e
Admin/Developer, Yunix
Zrenjanin - Beograd

Član broj: 422
Poruke: 3077
*.vdial.verat.net.

ICQ: 10450578
Sajt: bio sf.co.yu


Profil

icon Re: Problem sa sesijama - login17.02.2005. u 08:28
Hm, mozda ti npr. ova stranica pomogne da vidis logiku:
http://php.codenewbie.com/arti...ogin_With_Sessions-Page_1.html
Inace mozes da trazis preko gugla na reci "php session login" i eventualno "tutorial" i dobices hrpu linkova gde je to objasnjeno...
17.02.2005. u 08:28 

boccio
Boris Krstović
Spoonlabs.com
nbgd

SuperModerator
Član broj: 7594
Poruke: 2380
*.ptt.yu.

Sajt: blog.krstovic.info


Profil

icon Re: Problem sa sesijama - login17.02.2005. u 08:55
Ajmo ispocetka...

Obrati paznju na ovu liniju koda:
if ($_POST['username'] == $admin_user && $_POST['password'] = $admin_pass) {

To funkcionise normalno kada dodjes sa login strane i imas popunjen POST niz, medjutim kad krenes da prelazis sa strane na stranu iz linkova u vrhu, tog POST-a vise nema! I naravno da if() vraca FALSE i baca te ponovo na login stranu...

Dakle, resenje tvog problema je ili da non-stop "refilujes" POST niz sa:
$_POST['username'] = $admin_user;
$_POST['password'] = $admin_pass;

ili, sto je po meni elegantnije, da potpuno batalis taj POST, i prenosis user/pass preko sesije. Za to ti je Jbyn4e dao lep link (tutorial) - prostudiraj i odradi to...



17.02.2005. u 08:55 

Bojan Zivanovic
Freelance programer
Pančevo,Srbija

Član broj: 32974
Poruke: 146
194.106.171.*

Jabber: Bojan_Zivanovic@elitesecurity.org
Sajt: bojanz.blogspot.com


Profil

icon Re: Problem sa sesijama - login18.02.2005. u 10:35
Namestio sam, radi!
Hvala vam mnogo na pomoci!
18.02.2005. u 10:35 

[es] :: PHP :: Problem sa sesijama - login

[ Pregleda: 1194 | Odgovora: 9 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.