Forum Sveta kompjutera  

Nazad   Forum Sveta kompjutera > Internet > Web razvoj > Serverske aplikacije i baze podataka

Serverske aplikacije i baze podataka PHP, Perl, ASP, ASP .NET, ColdFusion...
MySQL, PostgreSQL, MSQL, Oracle...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 27.11.2010, 17:16   #1
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Problem sa sesijom

Ovako izgleda moj problem:

imam stranicu index.php na kojoj pocinje sesije i parametri sesije username i password se podesavaju pri korisnikovom logovanju.
Korisnik na svojoj stranici ima formu koju koju kad popuni unosi to popunjeno u bazu, tj. forma poziva upisUBazu.php.
Moj problem je sto u upisUBazu.php gubim parametre sesije i nemam vrijednosti username i password.

Kako ovo resiti?
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 3.12.2010, 2:21   #2
creepy00
Novi član
 
Član od: 1.11.2010.
Poruke: 7
Zahvalnice: 4
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Pa bojim se da pristupas problematici veoma lose. Da bi preuzeo podatke iz forme, moras ih proslediti post ili get metodom (ovo podesavas u atrubutu form taga) i preuzimas ih iz globalnih promenljivih $_POST ili $_GET (npr $_POST['ime_inputa'] )
creepy00 je offline   Odgovor sa citatom ove poruke
Stara 3.12.2010, 17:43   #3
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Citat:
creepy00 kaže: Pregled poruke
Pa bojim se da pristupas problematici veoma lose. Da bi preuzeo podatke iz forme, moras ih proslediti post ili get metodom (ovo podesavas u atrubutu form taga) i preuzimas ih iz globalnih promenljivih $_POST ili $_GET (npr $_POST['ime_inputa'] )
Pa ja podatke iz forme i prenosim pomocu POST metode... Ali meni trebaju podaci iz sesije $_SESSION('username') je podatak koji mi treba u php fajlu koji forma poziva
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 3.12.2010, 19:30   #4
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 278 puta na 195 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Problem sa sesijom

Mozda si zaboravio session_start(); u tom drugom fajlu...
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 3.12.2010, 20:42   #5
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Citat:
EclipsE kaže: Pregled poruke
Mozda si zaboravio session_start(); u tom drugom fajlu...
Ne, sesija mi radi u svim php stranama, gdje god mi je trebalo, jedino na toj strani nece..
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 8.12.2010, 16:41   #6
creepy00
Novi član
 
Član od: 1.11.2010.
Poruke: 7
Zahvalnice: 4
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Citat:
deejan88 kaže: Pregled poruke
Ne, sesija mi radi u svim php stranama, gdje god mi je trebalo, jedino na toj strani nece..
Cekaj malo. Kad bilo ko prvi put dodje na sajt, sesija je prazna i on nije autentifikovan.
Zatim korisnik popuni formu, podatke iz forme ubaci u sesiju i onda jeste autentifikovan. Ovako radi 90% sajtova sa user identifikacijom.
Moje pitanje je kako ti se bilo sta moze nalaziti u sesiji, u stranici posle POST-a ako ti nisi nista upisao u nju prethodno???

Takodje pri upisa korisnika u bazu - otkuda tebi podaci u sesiji, ako user jos ne postoji u bazi? Podaci u sesiji bi trebalo da se iscitaju IZ baze...

Je li mozes da mi malo pojasnis problem posto mi je jako nejasno otkud ti ti podaci u sesiji na stranici za upis novog usera u bazu??
creepy00 je offline   Odgovor sa citatom ove poruke
Stara 8.12.2010, 21:01   #7
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Citat:
creepy00 kaže: Pregled poruke
Cekaj malo. Kad bilo ko prvi put dodje na sajt, sesija je prazna i on nije autentifikovan.
Zatim korisnik popuni formu, podatke iz forme ubaci u sesiju i onda jeste autentifikovan. Ovako radi 90% sajtova sa user identifikacijom.
Moje pitanje je kako ti se bilo sta moze nalaziti u sesiji, u stranici posle POST-a ako ti nisi nista upisao u nju prethodno???

Takodje pri upisa korisnika u bazu - otkuda tebi podaci u sesiji, ako user jos ne postoji u bazi? Podaci u sesiji bi trebalo da se iscitaju IZ baze...

Je li mozes da mi malo pojasnis problem posto mi je jako nejasno otkud ti ti podaci u sesiji na stranici za upis novog usera u bazu??
Ovako, korisnik dodje na sajt i registruje se. Kad se registruje ide na stranicu prijava.php i sa svojim username-om i password-om se prijavi. Pri toj prijavi se odradi ovo
session_register("username");
$_SESSION['username']=$username;
session_register("password");
$_SESSION['password']=$password;

Kad sek korisnik prijavi on moze uci na korisnicku stranu. Na toj korisnickoj strani se nalazi forma koja trazi od korisnika da unosi neke podatke. Ti podaci se post metodom salju u stranicu obrada.php. Ta stranica podatke koje je korisnik unio cuva u bazi. E sad, problem je sto toj stranici obrada.php promenijva $_SESSION['username'] nema vrijednost koji je korisnik unio pri prijavi i ja ne mogu da znam koji je korisnik unio podatke da bih ih sacuvao u bazi.

Je li sad problem jasniji?
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 9.12.2010, 3:59   #8
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 278 puta na 195 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Problem sa sesijom

Negde si izgleda pogresio... mogao bi da nam das deo source-a da bi mogli da ti pomognemo.
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 10.12.2010, 0:35   #9
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

U index.php imam:
session_start();
...
switch ($izbor) {
case 'prijava':
require('prijava.php');
break;
...
U prijava.php imam formu za prijavu sa korisnickim imenom i lozinkom:
<form name="form1" method="post" action="provjera.php">

U provjera.php imam:
$username=$_POST['username'];
$password=$_POST['password'];
...
session_register("username");
$_SESSION['username']=$username;
session_register("password");
$_SESSION['password']=$password;
...
echo '<SCRIPT language=\'javascript\'>';
echo "alert('Uspješno ste se ulogovali.');";
echo "window.location.href = 'index.php?izbor=korisnik';";
echo "</SCRIPT>";

u korisnik.php imam formu:
echo"<form id=\"uplata\" method=\"post\" action=\"upisUBazu.php\">";

E sad u upisUBazu.php:
$username=$_SESSION['username'];
$password=$_SESSION['password'];

mi ne daje vrijednosti korisnika koji je ulogavan trenutno..
Da li je jasniji problem?
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 10.12.2010, 19:03   #10
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 675
Zahvalnice: 107
Zahvaljeno 140 puta na 115 poruka
Određen forumom Re: Problem sa sesijom

Prvo, session_register() je zastarela funkcija i preporučljivo je da se ne koristi. Ona se oslanja na register_globals koji je takođe preporučeno izbegavati, i koji je po defaultu isključen na php-u (pogledaj u php.ini fajlu ili pozovi phpinfo() f-ju pa vidi da li je register_globals uključen). Drugo, koliko vidim ti ne koristiš globalne promenljive koje session_register() kreira. Tako da bi bilo dobro da ne koristiš session_register(), već da eksplicitno pozoveš session_start() i da onda koristiš $_SESSION (session_register() implicitno poziva session_start(), ukoliko nije bila pozvana, pa ako budeš menjao nemoj da zaboraviš da pozoveš session_start na svakoj stranici gde ti treba sesija).

Ukoliko nisi zaboravio da pozoveš session_start() na nekoj od stranica gde ti treba sesija, onda obrati pažnju da ne šalješ browseru nešto pre pozivanja session_start() f-je (ukoliko se sesije prate pomoću kukija, a najverovatnije je tako). Pored html-a, obrati pažnju da nemaš npr "space" ispred otvorenog prvog php bloka (ispred prvog <?php). Najbolje na početku svakog fajla gde ti trebaju sesije prvo pozovi session_start(), i onda ne moraš da razmišljaš o ovome.
Remedy je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Remedy na korisnoj poruci:
deejan88 (6.1.2011)
Stara 6.1.2011, 1:30   #11
deejan88
Novi član
 
Član od: 6.9.2010.
Poruke: 7
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Problem sa sesijom

Citat:
Remedy kaže: Pregled poruke
Prvo, session_register() je zastarela funkcija i preporučljivo je da se ne koristi. Ona se oslanja na register_globals koji je takođe preporučeno izbegavati, i koji je po defaultu isključen na php-u (pogledaj u php.ini fajlu ili pozovi phpinfo() f-ju pa vidi da li je register_globals uključen). Drugo, koliko vidim ti ne koristiš globalne promenljive koje session_register() kreira. Tako da bi bilo dobro da ne koristiš session_register(), već da eksplicitno pozoveš session_start() i da onda koristiš $_SESSION (session_register() implicitno poziva session_start(), ukoliko nije bila pozvana, pa ako budeš menjao nemoj da zaboraviš da pozoveš session_start na svakoj stranici gde ti treba sesija).

Ukoliko nisi zaboravio da pozoveš session_start() na nekoj od stranica gde ti treba sesija, onda obrati pažnju da ne šalješ browseru nešto pre pozivanja session_start() f-je (ukoliko se sesije prate pomoću kukija, a najverovatnije je tako). Pored html-a, obrati pažnju da nemaš npr "space" ispred otvorenog prvog php bloka (ispred prvog <?php). Najbolje na početku svakog fajla gde ti trebaju sesije prvo pozovi session_start(), i onda ne moraš da razmišljaš o ovome.
Bio sam zaboravio session_start(), ali me interesuje je li i to zastarela funkcija, ili ona treba da se koristi?
deejan88 je offline   Odgovor sa citatom ove poruke
Stara 6.1.2011, 16:03   #12
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 675
Zahvalnice: 107
Zahvaljeno 140 puta na 115 poruka
Određen forumom Re: Problem sa sesijom

Nije zastarela, session_start() treba da se koristi.

Zastarela je session_register(), ajde probaću to malo bolje da pojasnim. Kada ti uradiš:
PHP kod:
$username $_POST['username'];
session_register("username"); 
session_register() najpre proveri da li si prethodno pozvao session_start(). Ukoliko nisi, session_register() će to uraditi umesto tebe. To možda izgleda zgodno, ali to nije glavna namena funkcije session_register(). Ono što je njena namena, jeste da kreira globalnu promenljivu, koja će u ovom slučaju biti $username. Onda ti na narednim stranama gde koristiš sesije, imaš na raspolaganju tu globalnu promenljivu. Npr. na sledećoj strani:
PHP kod:
session_start();
echo 
$username
Ovo bi ispisalo username koji je stigao putem forme ($_POST['username'] u prvom php bloku). Da bi ovo funkcionisalo, u php-u mora biti uključen "register_globals". Oslanjanje na "register_globals" se ne preporučuje, pre svega zbog bezbednosti, a takođe i zbog urednosti koda (ako zamisliš da je drugi php blok sa druge stranice, pitaćeš se odakle je stigao $username, itd... kada budeš pregledao za par meseci, ili kad neko drugi bude). U suštini, zastarelost session_register() funkcije proizilazi iz zastarelosti "register_globals" direktive na koju se oslanja (i svih njenih mana).

Dakle, da bi koristio sesije, i $_SESSION niz, nije potrebno da pozivaš session_register(). Tako da, ako želiš da sačuvaš "username" koji je stigao putem forme, dovoljno je da uradiš:
PHP kod:
session_start();
$_SESSION['username'] = $_POST['username']; 
Onda je na sledećoj strani:
PHP kod:
session_start();
echo 
$_SESSION['username']; 
Podrazumeva se da ćeš izvršiti validaciju $_POST['username'] (npr da je odgovarajuće dužine, da sadrži samo dozvoljene karaktere...) i da ćeš eskejpovati pre upisa u bazu.

Poslednja ispravka: Remedy (6.1.2011 u 16:49)
Remedy je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Tagovi
php, php forma, sesija, submit forma

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Opet problem sa DVD-RW-om mmm87 Nosači podataka 30 1.1.2013 19:47
Nokia e71 i problem sa USB konekcijom PsyDuck Aparati i oprema 5 1.12.2010 15:17
Problem sa bootovanjem sa DVD-a za iATKOS S3 v2 toology Operativni sistemi 0 9.9.2010 2:03
Problem sa zagrevanjem ATI Radeon HD 4850 512MB DDR3 bokela Grafika 34 24.6.2010 12:08
WBR-3408 11g Wireless Broaband Router- Problem sa umrežavanjem Hich Komunikacioni uređaji i umrežavanje 1 19.2.2010 9:42


Sva vremena su po Griniču +2 h. Sada je 5:05.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2019, vBulletin Solutions, Inc.
Hosted by Beograd.com