Автор Тема: Урок за бисквитки, кога?  (Прочетена 14576 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Урок за бисквитки, кога?
« Отговор #15 -: 09 Декември 2011, 23:59:21 »
@infinity1305 В началото бях решил да пиша собствено мнение по темата, но после се сетих че ти си ОК с английския и намерих този линк от някакъв форум, мода там добре описва самият процес на сетване на бисквитките в php - http://www.zubrag.com/forum/index.php?topic=58.0
Ще си позволя да ти дам приятелска препоръка. Недей задълбава много надълбоко в теорията, тя трябва да върви успоредно с практиката. В противен случай след време ще се стовари с пълна сила в/у главата ти и ще се окажеш в ситуацията на wuser ( да ме прощава за него се сетих, той ми е френд и ще потвърди ), да знаеш много (теория) от различни сфери в програмирането, а като се захванеш да правиш нещо, наглед елементарно дори, ще бъдеш неспособна да вземеш решение от къде да го почнеш и как да го свършиш  ;)
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

HanKrum

  • Гост
Re: Урок за бисквитки, кога?
« Отговор #16 -: 10 Декември 2011, 00:06:00 »
Или като мен, с много практика а кух като бас-барабан :) !

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Урок за бисквитки, кога?
« Отговор #17 -: 10 Декември 2011, 00:12:41 »
A, чакай малко сега, никой не може да ме убеди, че ще почне да програмира без да знае теория, обаче обратното е възможно  ;)
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

infinity1305

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 55
Re: Урок за бисквитки, кога?
« Отговор #18 -: 10 Декември 2011, 09:56:33 »
...
 намерих този линк от някакъв форум, мода там добре описва самият процес на сетване на бисквитките в php - http://www.zubrag.com/forum/index.php?topic=58.0
...
Прочетох и смея да твърдя, че съм наясно с механизма. Откакто пиша тук се чопля с бисквитките и на локалната ми машина разледах редица примери. Не получих отговор обаче от предния ми коментар. Кое удължава живота на бисквитката с всяко ново влизане? И толкова ли е трудно да бръкнете в торбата с хитрини и да извадите вашите скриптове, които ползвате. Почвам да си мисля, че не ползвате бисквитки или пазите скрипта в дълбок секрет. Егоисти! Ще се наложи да открия топлата вода. Рано или късно, заклевам се....

П.П.
А кой е бас китара и кой тарамбука...има фацебоок, там лигните...
« Последна редакция: 10 Декември 2011, 09:58:28 от infinity1305 »

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Урок за бисквитки, кога?
« Отговор #19 -: 10 Декември 2011, 10:45:35 »
Просто бисквитката се презаписва, така един вид се "налива" живот в нея. Прикачвам ти файла с login функциите, които форумът използва. Ако не си забелязала отдолу има линк и от там може да си свалиш абсолютно същия форум и да си го инсталираш на твоя компютър. Няма нищо скрито-покрито. :)

п.п.
Нещо не мога да прикачвам файлове, ето направо линк към въпросния файл: http://pastebin.com/ZXu6DB7a
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

infinity1305

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 55
Re: Урок за бисквитки, кога?
« Отговор #20 -: 10 Декември 2011, 12:24:57 »
OK, благодаря за линка. Добавих го в букмаркса и обещавам да го разуча.

Позволи да те върна към моите терзания.Как става технически презписването на бисквитката в $_COOKIE? Проверява се за съществуване и ако има такава, директно се презаписва времето или първо се убива и после се презаписва?  Този момент ми убягва, защото при бисвкитките нещата влизат в сила след рефреш на браузъра.

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: Урок за бисквитки, кога?
« Отговор #21 -: 10 Декември 2011, 13:35:56 »
Мисля,че ти си отговори сама.Доколкото разбирам искаш да знаеш как става механизма в сайтове при които ако нямаш активност примерно 10мин те изкарва от профила , а ако рефрешнеш страницата преди да са изтекли те държи логната още 10мин ? Всъщност незнам каква е логиката, но първото нещо за което се сещам е това:

Код: PHP
  1. if(isset($_COOKIE['log']) and $_COOKIE['log']=='true')
  2. {
  3.       unset($_COOKIE['log']);//трием бисквитката  
  4.       setcookie('log','true', time()+600);//слагаме същата с нови 10мин
  5. }
  6. else
  7. {
  8.     //ако я няма(или е свършил живота или се логваме за пръв път) отиваме към формата за вход от където,ако се логнем правилно ще получим нова бисквитка с 10мин живот
  9. }
  10.  

infinity1305

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 55
Re: Урок за бисквитки, кога?
« Отговор #22 -: 10 Декември 2011, 14:22:31 »
Aaa! Ето откъде изтича вода през джапанката ми, кога съм в банята! Ще ги изкъртя сега!
Имах догатки, не смеех да мисля, че unset($_COOKIE) е правилен запис. Това ми трябваше. Раздавам зелени точки на всички и си запазвам правото при нови подводни камъни, да излея самосвала с въпроси.

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: Урок за бисквитки, кога?
« Отговор #23 -: 12 Декември 2011, 15:49:42 »
Всъщност въпреки, че $_COOKIE  е глобален масив като $_SESSION,$_POST,$_GET той е малко по-специален и функцията unset() няма да изтрие самата бисквитка, за което подвеждане се извинявам!!По-горе кода, който съм дал ще направи същото нещо което казах, но просто ще презапише бисквитката.За да изтрием самата бисквитка трябва да създадем същата само, че с "изтекъл срок на годност".

Код: PHP
  1. setcookie('log','true', time()-600);
  2.  

HanKrum

  • Гост
Re: Урок за бисквитки, кога?
« Отговор #24 -: 12 Декември 2011, 15:59:09 »
Или със трайност 1 сек.
Код: PHP
  1. <?php
  2. include 'load.php';
  3. $bd = new BazaDanni();
  4. $bd->prati_zaqvka('UPDATE users SET
  5.            users_active=0,
  6.            user_time="' . time() . '",
  7.            user_ip="' . $_SESSION['user_ip'] . '" WHERE user_id="' . $_SESSION['user_id'] . '";');
  8. setcookie('name', '', 1);
  9. setcookie('pass', '', 1);
  10. header('Location: index.php');
  11.  

streleca_stz

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 6
  • -Получени: 0
  • Публикации: 68
    • Tokio Hotel Фен Сайт
Re: Урок за бисквитки, кога?
« Отговор #25 -: 03 Юли 2013, 10:43:29 »
Здравейтее! Предарително се извинявам ако нарушавам някое правило във форума, че съживявам тази стара тема, но реших, че не е нужно да правя нова. Все пак въпросът ми е свързан с бисквитките. :)

Понеже сте говорили за проблема със сигурността се замислих за един вариант, който може и да сработи (давам пример със система за профили):
- при влизане в профила се създава бисквитка, която просто да съдържа id на потребителското име ($_COOKIE['logged']="n";);
- след това ти извлича данните от БД и ги записва в сесия;
- ако сме ѝ задали живот по-дълъг от час (например 1 седмица) да се проверява дали има я има създадена тази бисквитка и ако я има пак да изтегля информацията от БД и да я записва в нова сесия (нали старата ще се унищожила);
- и разбира се ако излезе от профила си да се унищожава бисквитката (както дадохте пример да се презапише с живот от 1 секунда)

Цялото това нещо си го мисля с цел ограничен достъпа до данните на потребителя от трето лице (или нарочно от потребителя) + по-голямо бързодействие на системата (да не се правят постоянно заявки за извличане на профилните данни). По този начин хем имаме бисквитка за проверка, хем имаме и сесия, която държи данните и се унищожава (и създава при ново влизане) в уеб сайта.
Вие как мислите? Така логиката добра ли е или има някъде пукнатини, защото обмислям да използвам този начин в сайта ми? :)
« Последна редакция: 03 Юли 2013, 10:46:16 от streleca_stz »
In Your Shadow I Can Shine! (: