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

session, 2 headera

[es] :: PHP :: session, 2 headera

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

davor4

Član broj: 30284
Poruke: 113
*.adsl.net.t-com.hr.



Profil

icon session, 2 headera28.03.2010. u 09:49 - pre 171 meseci
radim skriptu za login. ukoliko su uneseni podaci sa login_forma.php ispravni, nakon što se upišu sessioni, korisnik treba biti preusmjeren na stranicu login_ok.php, a u suprotnom na stranicu s greškom login_greska.php...
međutim, uvijek me preusmjerava na stranicu login_greska.php. dakle, i kada unesem točne podatke opet odlazi na tu stranicu.
u slučaju da utipkam ručno u browser adresu stranice login_ok.php (nakon točno unesenih login podataka), prikazuje je kao da je korisnik uspješno logiran.

dakle na vrhu login_provjera.php fajla imam:
Code:

session_start();
if (isset($_SESSION["WebDiP_korisnik"])) {
    header('Location: login_ok.php');
} else {
    header('Location: login_greska.php?g=1');
}


ukoliko je zadovoljen uvjet ovako zapisujem $_SESSION
Code:

$_SESSION["WebDiP_korisnik"] = new Korisnik();
$_SESSION["WebDiP_korisnik"]->korisnicko_ime = $red["kor_ime"];
$_SESSION["WebDiP_korisnik"]->ime = $red["ime"];
$_SESSION["WebDiP_korisnik"]->prezime = $red["prezime"];
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: session, 2 headera28.03.2010. u 11:39 - pre 171 meseci
Uradi print_r $_GET i $_POST nizova. Verovatno nisi upisao method="post" u formi, a ona je po default-u "get".

Zasto drzis objekat u $_SESSION-u?
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
*.dynamic.isp.telekom.rs.



Profil

icon Re: session, 2 headera28.03.2010. u 13:38 - pre 171 meseci
Ne moze tako da se kreira objekat u session.
U session upisi neki podatak na osnovu kojeg ces kreirati objekat na toj drugoj strani ili ako hoces da stavis vise podataka u jednu sesiju napravi niz pa taj niz sacuvaj u sesiji a ne ovako.
 
Odgovor na temu

davor4

Član broj: 30284
Poruke: 113
*.adsl.net.t-com.hr.



Profil

icon Re: session, 2 headera28.03.2010. u 17:02 - pre 171 meseci
imam method="post" u formi i action na "login_provjera.php"

inače to radim drugačije, ali ovako je zadan zadatak na faksu.

ovako glasi taj dio sa klasom i sessionom:
Code:
Ako su uneseni korisnik koji postoji sa točnom lozinkom potrebno je upisati podatke o aktivnom korisniku u sesiju (objekt klase korisnik spremitu u sesiju pod nazivom WebDiP_korisnik)

ne znam na koji način to onda realizirati.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: session, 2 headera28.03.2010. u 17:19 - pre 171 meseci
Citat:
davor4: imam method="post" u formi i action na "login_provjera.php"

inače to radim drugačije, ali ovako je zadan zadatak na faksu.

ovako glasi taj dio sa klasom i sessionom:
Code:
Ako su uneseni korisnik koji postoji sa točnom lozinkom potrebno je upisati podatke o aktivnom korisniku u sesiju (objekt klase korisnik spremitu u sesiju pod nazivom WebDiP_korisnik)

ne znam na koji način to onda realizirati.


WTF!? Na fakultetu da kazu ovako nesto?

Objekat se moze spremiti u sesiju (automatski serialize), ali se to nikad ne radi. Pravilo je da u $_SESSION cuvas sto manje podataka; konkretno u tvom slucaju bi to bio samo ID korisnika. Pitaj profesora koliko je platio diplomu :)

Zezam se. Aj posalji te fajlove da pomognemo.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: session, 2 headera28.03.2010. u 19:45 - pre 171 meseci
offtopic: Pa ne bih baš rekao da je "zabranjeno" stavljati objekat u sesiju, naravno, ne bilo koji objekat, ali ja npr. najčešće te korisničke informacije u sesiji držim u vidu generičke StdClass klase, jer mi je tako lakše da s njima manipulišem, nego kad bih te iste podatke imao u npr. nekom nizu.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: session, 2 headera28.03.2010. u 20:49 - pre 171 meseci
Citat:
Nikola Poša: offtopic: Pa ne bih baš rekao da je "zabranjeno" stavljati objekat u sesiju, naravno, ne bilo koji objekat, ali ja npr. najčešće te korisničke informacije u sesiji držim u vidu generičke StdClass klase, jer mi je tako lakše da s njima manipulišem, nego kad bih te iste podatke imao u npr. nekom nizu.


Naravno, nije zabranjeno, ali kad koristim Doctrine, klasa Worker extends BaseWorker extends Doctrine_Record.... to je jako puno podataka koje bi server drzao u fajlu (tmp dir).
Zato se samo drzim ID-a i klasu instanciram samo onda kad mi je to potrebno.
 
Odgovor na temu

davor4

Član broj: 30284
Poruke: 113
193.198.27.*



Profil

icon Re: session, 2 headera28.03.2010. u 23:40 - pre 171 meseci
Citat:
mitke013: WTF!? Na fakultetu da kazu ovako nesto?

Objekat se moze spremiti u sesiju (automatski serialize), ali se to nikad ne radi. Pravilo je da u $_SESSION cuvas sto manje podataka; konkretno u tvom slucaju bi to bio samo ID korisnika. Pitaj profesora koliko je platio diplomu :)

Zezam se. Aj posalji te fajlove da pomognemo.


ma radimo dosta stvari koje se inače ne rade, to je vjerojatno obrazovni proces :)

ovaj problem sa headerima sam riješio tako što sam promijenio if uvjet i ubacio ga odmah iza upisivanja u session. naravno, bilo je problema sa headers already sent by, ali i to sam nekako riješio.
jedina stvar koja mi ne radi je ovo sa klasom koja se zapisuje u session.
ako ne preusmjerim korisnika s ove stranice za provjeru, nego odmah iza upisivanja
Code:
$_SESSION["korisnik"] = $red["kor_ime"];
ispišem
Code:
echo $_SESSION["korisnik"]->ime;
, stvar radi.
međutim, nakon preusmjeravanja na stranicu login.ok ne ispisuje ništa iz session-a (u zadatku je upravo to zadano).
sada je već prošlo vrijeme za predaju, tako da nije hitno, ali zanima me kako to riješiti.
hvala, pozdrav.
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
*.dynamic.isp.telekom.rs.



Profil

icon Re: session, 2 headera29.03.2010. u 01:40 - pre 171 meseci
Mozda nemas definiciju klase na toj drugoj strani. Isto ti treba ucitavanje klase na toj drugoj strani da bi mogao da radis sa objektom koji si preneo kroz sesiju.

Pitanje je i kako si stavio objekat u sesiju. Ako si radio serialize() kao sto mitke rece onda moras da ucitas klasu na drugoj strani pa odradis unserialize() tog objekta. Iz tvog poslednjeg primera se ne vidi da si stavio objekat u session vec vrednost variable.
 
Odgovor na temu

davor4

Član broj: 30284
Poruke: 113
193.198.27.*



Profil

icon Re: session, 2 headera14.04.2010. u 14:39 - pre 170 meseci
da, pogrešno sam radio. nisam znao za (un)serialize.
ovako radi:
Code:
$ikorisnik = new Korisnik();
$ikorisnik->korisnicko_ime = $red["kor_ime"];
$ikorisnik->ime = $red["ime"];
$ikorisnik->prezime = $red["prezime"];
$_SESSION["korisnik"] = serialize($ikorisnik);
a ispisujem onda ovako:
Code:

$ikorisnik = unserialize($_SESSION["korisnik"]);
echo $ikorisnik->ime;

hvala na pomoći
 
Odgovor na temu

[es] :: PHP :: session, 2 headera

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

Postavi temu Odgovori

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