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

potrebno misljenje iskusnijeg

[es] :: PHP :: potrebno misljenje iskusnijeg

[ Pregleda: 2484 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

progr111

Član broj: 27162
Poruke: 18
*.verat.net



Profil

icon potrebno misljenje iskusnijeg01.06.2004. u 21:14 - pre 242 meseci
napisao sam nesto cime bih pokusao da registrujem korisnike na strani.

korisnik unosi podatke i salje odredjenom skriptu na proveru.
u tom skriptu otvaram bazu i proveravam ispravnost njegovih podataka.
ako su podatci ispravni tada pocinjem sesiju. e sada me interesuje dali sam sesiju uradio
na dobar nacin.
taj deo koda u kom pravim sesiju izgleda otprilike ovako.

.
.
.
// pocinjem sesiju
session_start();

session_register("user");
session_register("pass");

setcookie("user", $user);
setcookie("pass", $pass);

// unistavam sesiju
session_destroy();
.
.
.
.


na svakoj drugoj strani su dostupne promenljive $user i $pass.
promenljive postoje sve dok je IExplorer otvoren.
sve radi ok ali me interesuje dali je ovo ispravan nacin ili ima neki bolji.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: potrebno misljenje iskusnijeg01.06.2004. u 21:45 - pre 242 meseci
Akoradi posao valja, mada ti je to prilicno primitivno.
Mada ne znam sto bi upisivao te podatke u kolacice, kada ti na klijentu ne trebaju. Samo dodeli vrednosti promenljivama sesije koje si registrovao a sesija ce se brinuti o ostalom.


Ipak, trebao bi da radis ovako:

Kada korsinik otvori stranu, a sesija nije kreirana kreiras je i u tabelu upises SESSION_ID, datum, vreme, ip s kog je user i tako to

Ako je potrebno da se korsinik uloguje strana mu ponudi login

Ako korsinik otkuca user i pass proveris u drugoj tabeli sa podacima o korisnicima da li user i pass odgovaraju pa ako odgovaraju u tabelu sesija upises user_id kome sesija pripada

Dalje na sajtu koristis samo SESSION_ID kao identifikator korisnika i preko njega vidis koji je user u pitanju a preko usera i sve ostalo sto ti o tom korisniku treba. Podaci o korisniku se nikadane cuvaju ni u promenljivama sesije ni u kolacicima. Na taj nacin pipavi podaci (a user i pass su pipavi) nikada nisu dostupni van php skriptova i otezana je zloupotreba.

 
Odgovor na temu

progr111

Član broj: 27162
Poruke: 18
*.verat.net



Profil

icon Re: potrebno misljenje iskusnijeg02.06.2004. u 12:19 - pre 242 meseci
ok.
nisam razmisljao o tome sta cuvam kod klijenta ali je tvoja primedba ok.
sada sam probao sa $PHPSESSID.
kada korisnik pokusava da se uloguje skript proveri njegove podatke i ako je
registrovan u bazi onda pocinjem sesiju.
promenljive $user1 i $pass1 su iz formulara, a $user i $pass iz baze.

.
.
.
if($user1==$user AND $pass1==$pass)
{

session_id($user1);
// pocinjem sesiju
session_start();

// unistavam sesiju
session_destroy();

header ("Location: 1.php");
}
.
.
.



ako su podatci ok, onda zapocinjem sesiju i na drugim stranama proveravam sa:


if($PHPSESSID)
{
......
}
else
{
......
}


na ovaj nacin opet funkcionise, ali mi se cini da je sve mnogo primitivno.
interesuje me sta ti mislis o tome.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: potrebno misljenje iskusnijeg02.06.2004. u 12:57 - pre 242 meseci
Meni izgleda da si sad na mnogo boljem putu.

Ne znam zasto radis session_destroy() na tom mestu. Kada kreiras sesiju ona treba da postoji sve vreme. U tom trenutku ona dobija ID koji je garantovano jedinstven i to ti sluzi kao identifikator korisnika. Kada korsinik otvori novu stranu sao po SESSION_ID mozes da znas da se radi o istom korsiniku. Sesija (i njen ID) traje sve dok korisnik ne zatvori browser (sve instance programa) ili dok je ti ne ubijes sa session_destroy() sto moze da se koristi da se korisnik izloguje.

Ako si napravio po uputstvima onda je to mnog bolje resenje. Niko do nas ti ne moze dati neke bolje savete a bez uvida u ceo kod koji si napravio a to je prilicno dangubno.

Mogu samo da ti preporucim a napravis jedan php skript koji radi posao provere da li sesija postoji ako ne postiji da je kreira, vrsi proveru korisnika (i eventualno salje korisnika na stranu za login ako je to potrebno) i da ga inkludujes u svaki php kome je to potrebno, da ne ponavaljas nepotrebno kod.

Ja imam gotov mehanizam koji to radi ali je deo mnogo veceg CMS-a i ne moze da radi bez njega a uz to je prilicno zakomplikovano dodatnim specificnim mogucnostima tako da ti nista ne bi znacilo da ti ga posaljem.

Najbolje je da na netu potrazis gotove skriptove i tutorijale vezane za rad sa sesijama. Ima toga dosta a iz gotovih i funkcionalnih primera moze dosta da se nauci. Pazi samo da te ne zbuni verzija PHP-a za koju je skript ili tutorijal. Ima dosta zastarelih, koji ne rade na aktuelnim verzijama PHP-a.
 
Odgovor na temu

progr111

Član broj: 27162
Poruke: 18
*.verat.net



Profil

icon Re: potrebno misljenje iskusnijeg02.06.2004. u 17:57 - pre 242 meseci
Ako radi posao valja, mada ti je to prilicno primitivno.
Mada ne znam sto bi upisivao te podatke u kolacice, kada ti na klijentu ne trebaju.
Samo dodeli vrednosti promenljivama sesije koje si registrovao a sesija ce se brinuti o
ostalom.


Ipak, trebao bi da radis ovako:

Kada korsinik otvori stranu, a sesija nije kreirana kreiras je i u tabelu upises
SESSION_ID, datum, vreme, ip s kog je user i tako to

Ako je potrebno da se korsinik uloguje strana mu ponudi login

Ako korsinik otkuca user i pass proveris u drugoj tabeli sa podacima o korisnicima da
li user i pass odgovaraju pa ako odgovaraju u tabelu sesija upises user_id kome sesija
pripada

Dalje na sajtu koristis samo SESSION_ID kao identifikator korisnika i preko njega
vidis koji je user u pitanju a preko usera i sve ostalo sto ti o tom korisniku treba.
Podaci o korisniku se nikadane cuvaju ni u promenljivama sesije ni u kolacicima. Na taj
nacin pipavi podaci (a user i pass su pipavi) nikada nisu dostupni van php skriptova i
otezana je zloupotreba.


____________________________________________________________________

"i_reci_Gospodaru_uvecaj_mi_znanje"
 
Odgovor na temu

progr111

Član broj: 27162
Poruke: 18
*.verat.net



Profil

icon Re: potrebno misljenje iskusnijeg07.06.2004. u 13:22 - pre 242 meseci
izvinjavam se jer nisam prekopirao pravi odgovor.
hteo sam da ti se zahvalim za savet ali sam na brzinu pogresio.

pozdrav...
 
Odgovor na temu

[es] :: PHP :: potrebno misljenje iskusnijeg

[ Pregleda: 2484 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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