| |
Zdravo,
ne bom ti govoril, kako lahko sam spišeš (ker tega ne vem), ti pa bom povedal za eno rešitev.
MicroLogin je zanimiv sistem, ki blokira dostop s strani na katere prilepiš tisto kodo.
Lahko si preneseš in poizskusiš. V tvojem primeru ti pa verjetno ne bo prišlo prav, glede na to, da imaš svoj prijavni sistem.
Povezava: http://www.fileden.com/files/2008/12/19/....
|
| |
| |
Predlagam, da si pogledaš predzadnji (21.) korak v lekciji.
<?php
session_start();
if ($_SESSION['prijavljen']==true) {
echo "TRENUTNO STE PRIJAVLJENI!";
}else {
echo "TRENUTNO NISTE PRIJAVLJENI!";
}
?>
To kodo lahko uporabiš tudi drugje na strani.
Seveda jo lahko malenkost spremeniš.
Poglej npr. naslednji primer:
<?php
session_start();
if ($_SESSION['prijavljen']==true) {
?>
Tu lahko pridejo povezave <a href="povezava1.htm">Povezava z prijavljenega</a>
<?php
}else {
?>
Tu lahko pridejo druge povezave <a href="povezava1.htm">Povezava z neprijavljenega</a>
<?php
}
?>
V tem primeru je prikazano, kako lahko med seboj mešaš PHP kodo ter običajno HTML kodo.
Bistvo je samo, da se mora PHP koda vedno nahajati med <?php in ?>
Upam, da bo v pomoč.
spremenil: podtalje (12.7.2010 ob 22.53.46)
|
| |
| |
Ne razumem razlike med piškotki in sejami, oziroma zakaj se seje uporabljajo pri prijavljanju uporabnika.
Piškotek se ustvari ob prijavi uporabnika in vanj se zapiše recimo uporabniško ime. Poleg tega se da določiti tudi čas trajanja, torej lahko traja tudi leto ali več (če se ga ne pobriše). Piškotek pa je shranjen na računalniku uporabnika.
Seje se pravtako lahko ustvarijo ob prijavi in v njih se ponovno zapišejo določeni podatki. Čas trajanja je dolg toliko, kolikor časa ima uporabnik odprt brskalnik, vsi podatki pa so shranjeni na strežniku.
Odjavo uporabnika s pomočjo piškotkov ni problem narediti, verjetno se pa da tudi z if funkcijo preverjati, če določen piškotek obstaja ipd.
Če nekaj delam, mi je bistvo predvsem to, da vem kaj delam in kaj pišem v kodo. Vidim pa, da jih večina dela samo copy/paste brez vedenja, kaj pravzaprav počnejo.
lp
|
| |
| |
Piškotek lahko uporabnik spremeni. Če stran torej v piškotek zapiše, kot kateri uporabnik sem prijavljen, in jaz nato spremenim to vrednost, bom prijavljen kot nekdo drug. Halo, to pa ja ne gre. Zato se v piškotek zapiše ime seje, kar je 32 znakov dolga koda iz številk in črk. In potem se ta koda navezuje na podatke, ki so shranjeni na strežniku ...
V Cookieje se torej zapišejo kakšni bolj "nepomembni" podatki ... Seja je veliko bolj varna in primerna za prijave.
spremenil: kljuka (15.7.2011 ob 16.15.29)
|
| |
| |
Kar se tiče seje in piškotkov, si kar vse prav povedal.
Drugače pa je tako, da se da prijavo narediti tako s sejo, kot tudi s piškotki.
Iz stališča varnosti pa je vsekakor bolj priporočljivo, da se prijava dela s sejo. Piškotki se nahajajo na lokalnem računalniku in jih uporabnik tako lahko spreminja, kar pa predstavlja nevarnost, če se zanašamo samo na piškotke.
Seje si tudi zapomnijo aktivnost, tako da seja bo avtomatsko pretekla, običajno po okoli 15 minutah neaktivnost. Tako da je manj možnosti, da nekdo pride kasneje na tvoj računalnik in se avtorizira kot ti.
Piškoti se tako uporabljajo predvsem pri stvareh, za katere res želimo, da imamo informacijo o njih tudi v daljšem časovnem obdobju. Pri tem pa je priporoljivo, da tu ne gre za varnostno občutljive podatke, oz. če že so, potem morajo biti na nek način kriptirani, da se onemogoči enostavno spreminjanje.
|
| |
| |
kljuka:Zato se v piškotek zapiše ime seje, kar je 32 znakov dolga koda iz številk in črk. In potem se ta koda navezuje na podatke, ki so shranjeni na strežniku ...
No, tega dela nisem vedel.
Najlepša obema, da sta mi razjasnila zadevo.
|
| |
| |
realife, ja ja .. Kar poglej naprimer v piškotek PHPSESSID od zmage.com naprimer ... Boš videl ... Da ti dam še en primer: pred leti, ko je zmaga bila še v povojih ( ) in je bil id uporabnik, kot sem rekel, zapisan v piškotku, sem jaz vrednost piškotka spremenil in naenkrat sem bil prijavljen kot podtalje
|
| |
| |
Lahko tudi <?php
session_start();
if(!isset($_SESSION['id']))
{
header ("location: index.php");
}
?>
Sam da boš pri prijavi dodal namesto $_SESSION['uporabnik '] daš $_SESSION['id'].
|
| |
| |
Zdravo!
Imam kar nekaj težav s to lekcijo, kajti nič ne dela .
1. Že ko pridem na začetno stran mi javi napako. Poiskal sem vrstico, katero mi javlja napaka ampak je vse tako kot v lekciji.
Napaka:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\xampp\htdocs\registracija\index.php:12) in D:\xampp\htdocs\registracija\index.php on line 16
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\registracija\index.php:12) in D:\xampp\htdocs\registracija\index.php on line 16
Slika kode:

2. Ko odprem stran registracija.php, vpišem novo uporabniško ime ter geslo, kliknem na gumb Registracija, se ne zgodi popolnoma ničesar (Ne izpiše se Registracija je bila uspešna, podatki se ne shranijo v bazo).
3. Enaka napaka kot v prvi težavi, se pojavlja tudi na strani prijava.php.
Napaka:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\xampp\htdocs\registracija\prijava.php:10) in D:\xampp\htdocs\registracija\prijava.php on line 11
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\registracija\prijava.php:10) in D:\xampp\htdocs\registracija\prijava.php on line 11
Slika kode:

Torej, kaj bi bilo narobe?
spremenil: .lolo (31.8.2011 ob 01.24.26)
|
| |
| |
Kar gledam, je glavni problem v session_start() funkciji.
Ta funkcija upravlja s sejo (session), katera deluje s pomočjo cookijev. Cookie-ji pa vedno delujejo tako, da se pošljejo pred ostalo stranjo.
Zato mora biti funkcija session_start() vedno na začetku. Pred njo je lahko druga php koda, ne sme pa biti nobenega teksta (tudi presledka ne).
Zato naj bo prva vrstica v dokumentu:
<?php
session_start();
|
| |
Prikazujem 5 od skupno 6 strani |
|