Prijava na forum:
Ime:
Lozinka:
Prijavi me trajno:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:

ConQUIZtador
nazadnapred
Korisnici koji su trenutno na forumu 0 članova i 0 gostiju pregledaju ovu temu.
Idi dole
Stranice:
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
Tema: Kolačići – bez po muke  (Pročitano 253 puta)
23. Jul 2005, 03:19:42
Administrator
Capo di tutti capi


Underpromise; overdeliver.

Zodijak Gemini
Pol Muškarac
Poruke Odustao od brojanja
Zastava 44°49′N - 20°29′E
mob
Apple iPhone 6s
Kolačići – bez po muke

Šta je kolačić?
Ponekad je neophodno da pratite izvesne detalje vezane za posetioca web strane (broj poseta, imena, poseldnja poseta itd.). Klijent mašina čuva takve informacije i šalje ih web serveru kadgod postoji potreba. Kolačić podaci (engl. cookies data) se šalju zajedno sa HTTP zaglavljima („hederima”).

Razlika između sesije i kolačića?
Ključna razlika je u tome što se kolačići smeštaju na vaš hard disk dok se sesije ne smeštaju na vaš hard disk. Sesije su u osnovi kao tokeni, koji se generišu pri autentifikaciji. Sesija je na raspolaganju sve dok je pretraživač (čitač; engl. browser) otvoren.

Sesije su prilično popularne pošto postoji mogućnost da vaši kolačići budu blokirani ako je korisnik podesio sigurnost svog pretraživača na High.

Napomena: Kada vi zadate naredbu session_start(), ona generiše ID sesije i smešta ga na klijentskoj strani u kolačić. Takođe, postoje načini da se ovo izbegne korišćenjem taga (kontrolne oznake) rewrite.

Koliko je sigurno čuvanje lozinke pomoću kolačića?
Generalno, mi čuvamo kolačiće sa korisničkim imenom i lozinkom. Sada možemo da koristimo bilo koji algoritam da kriptujemo (šifrujemo) lozinku pre nego što je memorišemo kako bi bila sigurna. Sada ćemo imati korisničko ime i kriptovanu lozinku smeštene u kolačić, koji ponovo mogu biti upotrebljeni. Dobra praksa je da se izbegava smeštanje korisničkog imena i koristi jedinstveni generisani ID. To je dodatak koji imamo kao kompromis da bi sve bilo sigurnije. **

PHP kolačić funkcija
Kao što je ranije pomenuto, kolačić se šalje zajedno sa HTTP zaglavljima i da bi se to postiglo koristimo funkciju set_cookie().

boolean setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] )

Svi argumenti izuzev argumenta name su opcioni. Ako je naveden samo argument name, kolačić pod tim imenom biće obrisan na udaljenom klijentu. Takođe, možete zameniti bilo koji argument praznim stringom(“”) da biste preskočili argument. Argumenti expire i secure su celobrojni i ne mogu se preskočiti korišćenjem praznog stringa. Umesto toga može da se koristi (0). Argument expire je regularna Unix vremenska vrednost kao da je vraćena od funkcija time() i mktime(). Argument secure pokazuje da kolačić treba da bude prenesen preko HTTPS konekcije.

Uobičajena greška kod korišćenja kolačića manifestuje se upozorenjem:

Warning: Cannot modify header information – headers already sent by …

Uvek proverite da ne postoje beline ili HTML tagovi pre funkcije kolačića. Kada se desi da imate početni prazan red u svom PHP fajlu postoji mogućnost da se pojavi navedeno upozorenje.

Primer
Dati primer će vam omogućiti da snimite (sačuvate) korisničko ime i lozinku na klijentskom PC-ju kao kolačić i da ih tražite kada su vam potrebni.
Primer se sastoji od tri „.php” fajla i sada ću ukratko objasniti šta oni rade. Ovde se nisam upuštao u detalje dizajniranja pošto je cilj ovog uputstva da demonstrira kako se kolačići implementiraju.


Index.php
Ova strana inicijalno proverava da li je kolačić kreiran ili ne. Ako je kolačić kreiran, ona prikazuje sačuvano korisničko ime i lozinku.

Kod:
<?php 
//Check if cookie is set 
if (!isset($_COOKIE['cookie_info']))   
{   
echo 
$_COOKIE['cookie_info']; 
?>


    <body>
    <form method="POST" action="login.php">
     
    <center><h1>Cookies </h1>
      <Center>
        <table border="0" width="auto">
        <tr>
          <td width="33%">Login Name</td>
          <td width="33%"><input type="text" name="name" size="20"></td>
          <td width="34%">&nbsp;</td>
        </tr>
        <tr>
          <td width="33%">Password</td>
          <td width="33%"><input type="password" name="pass" size="20"></td>
          <td width="34%"><input type="checkbox" name="set" value="ON">Remember Me</td>
        </tr>
      </table>
    <center>
    <p><input type="submit" value="Submit" name="sub">
    <input type="reset" value="Reset" name="res"></p>
    </center>
    </body>
    </form>
<?php 
else 

  
//Cookie is set and display the data 
   
$cookie_info explode("-"$_COOKIE['cookie_info']);  //Extract the Data 
   
$name $cookie_info[0]; 
   
$pass $cookie_info[1]; 
   echo 
"<center><h3>Welcome back $name and your password is $pass";   
   echo 
"<a href='logout.php'>Logout</a>"
   exit; 

?>

$_COOKIE ili $HTTP_COOKIE_VARS je superglobalna promenljiva koja se koristi za pretraživanje podataka. Kada je kolačić postavljen tada mogu da se pretražuju podaci smešteni u njega. Ovde se koristi crtica (-) kao graničnik polja (ime-lozinka).

Login.php
Ova strana se prikazuje kada kolačić nije kreiran. Korisnik mora da „čekira” polje za potvrdu ako je potrebno da njegovi detalji budu zapamćeni.

Kod:
<?php 
if(empty($_POST['name']) || empty($_POST['pass'])) 
{  
?>

    <b>Fill All Details </b>
              <?php exit; 

else 

    
//Colllect the details and validate 
    
$time time(); 
    
$name $_POST['name']; 
    
$pass =md5($_POST['pass']); 
    
$check $_POST['set']; 
    
$db mysql_connect("localhost""admin","admin") or die(mysql_error()); 
    
mysql_select_db("test",$db) or die(mysql_error()); 
              
$query "select * from Login where name='$name' and password='$pass'";   
    
$sql mysql_query($query) or die(mysql_error()); 
    
$count mysql_num_rows($sql); 
     
    if (
$count == 1
    { 
        
$cookie_data $name.'-'.$pass;   
        if(
$check=='ON'
        { 
            if(
setcookie ("cookie_info",$cookie_data$time+3600)==TRUE
            { 
                echo 
"Cookie SET".$cookie_data?>

                <a href='logout.php'>Logout</a>
                 
            <? }
        }
    }
    else
    {
        echo "Authentication Failed";
        exit;
    }
     
}
?>



Prethodni kôd autentifikuje korisnika i ako je korisnik izabrao snima lozinku i korisničko ime u kolačić. Lozinka se kriptuje pomoću md5 a crtica se koristi kao graničnik između polja. Sada promenljiva $cookie_data sadrži nadovezani string. Funkcija setcookie se koristi za smeštanje podataka u kolačić. Prvi argument je referentno ime kolačića (u ovom primeru „cookie_info”). Drugi argument je podatak koji treba da se čuva a treći argument određuje koliko dugo kolačić važi.

U ovom primeru životni vek kolačića je postavljen na 1 sat. Možete se zapitati kako je to urađeno? Funkcija time() vraća tekuće UNIX vreme. Na primer „1072724721” što je u stvari Mon, 29 Dec 2003 19:05:21 UTC. Dodajmo sada 3600 na tu vrednost, 1072724721 + 3600 = 1072728321, što je u stvari Mon 29 Dec 2003 20:05:21 UTC. Nije loše da posvetite malo pažnje funkcijama time i mktime kako biste ovo bolje razumeli. Kolačić vraća vrednost TRUE po uspešnom kreiranju.

Logout.php
Ova strana briše kolačić koji je bio kreiran.

Kod:
<?php 
$time 
time(); 

if (isset(
$_COOKIE['cookie_info'])) 

  
setcookie ("cookie_info"""$time 3600); 
echo 
"Logged Out"


echo 
$time
?>

Uništavanje kolačića je prilično prosto i vidite da ponovo koristimo za to istu funkciju. Sada oduzimamo 3600. Šta to stvarno znači? Kada oduzmemo 3600 to je kao kada vratimo sat jedan sat unazad. Ako ste kreirali kolačić u 9 sati, ja ću ovom procedurom  postaviti na 8 sati što znači da je kolačić istekao.

Pripremio Dragan Marković
IP sačuvana
social share
Pobednik, pre svega.

Napomena: Moje privatne poruke, icq, msn, yim, google talk i mail ne sluze za pruzanje tehnicke podrske ili odgovaranje na pitanja korisnika. Za sva pitanja postoji adekvatan deo foruma. Pronadjite ga! Takve privatne poruke cu jednostavno ignorisati!
Preporuke za clanove: Procitajte najcesce postavljana pitanja!
Pogledaj profil WWW GTalk Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Idi gore
Stranice:
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
nazadnapred
Prebaci se na:  

Poslednji odgovor u temi napisan je pre više od 6 meseci.  

Temu ne bi trebalo "iskopavati" osim u slučaju da imate nešto važno da dodate. Ako ipak želite napisati komentar, kliknite na dugme "Odgovori" u meniju iznad ove poruke. Postoje teme kod kojih su odgovori dobrodošli bez obzira na to koliko je vremena od prošlog prošlo. Npr. teme o određenom piscu, knjizi, muzičaru, glumcu i sl. Nemojte da vas ovaj spisak ograničava, ali nemojte ni pisati na teme koje su završena priča.

web design

Forum Info: Banneri Foruma :: Burek Toolbar :: Burek Prodavnica :: Burek Quiz :: Najcesca pitanja :: Tim Foruma :: Prijava zloupotrebe

Izvori vesti: Blic :: Wikipedia :: Mondo :: Press :: Naša mreža :: Sportska Centrala :: Glas Javnosti :: Kurir :: Mikro :: B92 Sport :: RTS :: Danas

Prijatelji foruma: Triviador :: Nova godina Beograd :: nova godina restorani :: FTW.rs :: MojaPijaca :: Pojacalo :: 011info :: Burgos :: Sudski tumač Novi Beograd

Pravne Informacije: Pravilnik Foruma :: Politika privatnosti :: Uslovi koriscenja :: O nama :: Marketing :: Kontakt :: Sitemap

All content on this website is property of "Burek.com" and, as such, they may not be used on other websites without written permission.

Copyright © 2002- "Burek.com", all rights reserved. Performance: 0.094 sec za 17 q. Powered by: SMF. © 2005, Simple Machines LLC.