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

Problem sa sesijama - login

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

[ Pregleda: 3112 | Odgovora: 9 ] > FB > Twit

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 - pre 232 meseci
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
 
Odgovor na temu

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.ptt.yu.

Sajt: bocc.io


+771 Profil

icon Re: Problem sa sesijama - login15.02.2005. u 22:34 - pre 232 meseci
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]
Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

set_X

Član broj: 32954
Poruke: 675
62.108.97.*



Profil

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

Pokusaj tako.

poz.
 
Odgovor na temu

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 - pre 232 meseci
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
 
Odgovor na temu

set_X

Član broj: 32954
Poruke: 675
62.108.97.*



Profil

icon Re: Problem sa sesijama - login16.02.2005. u 08:48 - pre 232 meseci
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.
 
Odgovor na temu

Jbyn4e

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



+257 Profil

icon Re: Problem sa sesijama - login16.02.2005. u 14:04 - pre 232 meseci
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...


Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

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 - pre 232 meseci
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...
 
Odgovor na temu

Jbyn4e

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



+257 Profil

icon Re: Problem sa sesijama - login17.02.2005. u 08:28 - pre 232 meseci
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...

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.ptt.yu.

Sajt: bocc.io


+771 Profil

icon Re: Problem sa sesijama - login17.02.2005. u 08:55 - pre 232 meseci
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...



Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

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 - pre 232 meseci
Namestio sam, radi!
Hvala vam mnogo na pomoci!
 
Odgovor na temu

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

[ Pregleda: 3112 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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