Помощ - Търсене - Потребители - Събития
Пълна версия: Работа със бисквитки във php
GGbit.info > Hi-Tech > Web разработка > Полезни статии
vIkToRsHeFa
Това е главният от методите по които се предава потребителска информация успоредно със сесиите. За да зададете куки можете да ползвате:
CODE
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);

TestCookie - името на променливата в което ще съхранявате данни
$value - Стойноста на променливата
time()+3600 - Времето за което да е валидна бисквитката във случая time() е сегашният момент към който прибавяме 3600 секунди (1 час) и след 1 час тя ще се саморазруши.
Забележка: За да унищожите бисквитка задайте вместо +3600 -3600 тоест валидноста и е изтекла преди 1 час и тя се самоунищожава.
/~rasmus/ - директорията на сървъря от която може да се чете бисквитката и нейната променлива. Във случая може да се чете само от зададената директория и нейните подддиректории. ако сте задали / като стойност ще може да бъде четена от целия домейн и всички подддиректории. Ако не въведете стоиност се приема текущата директория в която се намира скрипта.
.example.com - домейнът за който да е валидна бисквитката. Ако добавите и точка преди името му бисквитката ще е достъпна и до субдомейните.
Забележка: По принцип прави проблем това че някои потребители отварят сайта със www отпред, а www се пада субдомейн... Следователно ако не сте задали да е достъпна до субдомейните няма да е достъпна и до www. Решението е да зададете още едно куки от вида www.example.com успоредно със стандартното.
1 - дали да се предава посредством сигурна връзка - https или със нормалният http препоръчва се сигурният защото обменът на данните е криптиран но някои сървъри не го поддържат.

За да прочетете дадена стоиност на бисквитката ползвате кода:
CODE
$prieta_stoinost_na_kukito = $_COOKIE['ime_na_kukito'];

$prieta_stoinost_na_kukito - присвоената стойност която можем да ползваме като променлива във дадената страница след като зареди горният код.
ime_na_kukito - името на бисквитката под което сте я записали.
Забележка: За да четете стойностите на бисквитките трябва скрипта ви да се намира във директория на която е позволено да ги чете. Това е от настройките когато сте създавали кукито.

Кукитата или така наречените още бисквитки са текстови файлове съдържащи информация за даден уеб сайт. Браузерите като опера и мозила съдържат модули за разглеждане на бисквитките посредством които можете да видите какво представляват. Когато пишете скриптове за работа със бизквитки ги изписвайте пълно ако не искате да задавате стойност можете да напишете и само но е важно да го има защото интернет експлорер не създава бисквитки ако не са пълни.
CODE
setcookie("TestCookie", $value, "", "", "", 1);

Това се пренебрегва от мозила и от опера и там работи и само кода:
CODE
setcookie("TestCookie", $value);

Но имайки в предвид че близо 50% от потребителите ползват интернет експлорер не е разумно ползването на последният синтаксис.
За жалост бисквитките са спорна алтернатива тъй като има потребители които забраняват на браузерите си да ги приемат а и съществуват опасности от междусайтов скриптинг посредством който можете да загубите лични данни от бисквитките си от неправомерен достъп. Алтернативата са сесиите акто има 2 вида сесии. Едните ползват бисквитка на име PHPSID и й генерират 32 символен мисля че беше произволен код посредством който можете да си осигурявате достъп. Също така можете да запазвате и променливи които сезапазват във временната директория на сървъра докато сте онлайн c:/temp за уиндоус потребители и /usr/tmp за линукс машини. Като там създава и файл за променливите ви. Като за име ползва номера на сесията и префикса sid_
Най-сигурният но и най-сложният метод е посредством get прехвърляне на сесиината променлива от страница на страница като част от линка като не се използват бисквитки.

ПП. Надявам се да е било полезно на някои 4.gif
Relevant Advertise!
Това е "lo-fi" версия на нашия форум. За да видите пълната версия, моля натиснете тук.
Invision Power Board © 2001-2018 Invision Power Services, Inc.