![]() ![]() |
2005. Aug 15., 17:20
Post
#1
|
|
![]() Főpilóta ![]() ![]() Group: haladó tag Posts: 450 Joined: 05. April 19. From: Magyarhon Member No.: 950 |
Szóval az lenne a problémám, hogy egy ismerőssel hatalmas fejlesztésben vagyunk, de a legutóbb kapott feladaton elakadtam. A lényege amit tudnia kell, azaz, csinalni kell egy cookie kezelo osztalyt, amivel nagyon egyszerüen tudunk cookikat csinálni, törölni, módosítani. Eddig van meg. Hogyan tovább? Nem kódot kérek, hanem leírást, hogy mi hiányzik, mi kell még bele. Köszönöm előre is. Ja és a kód:
CODE class Cookies { function Add($name, $value, $time) { SetCookie($name, $value, time()+$time, "/"); } function Del($name) { global $_COOKIES; unset($_COOKIES[$name]); } function Set($name, $value) { global $_COOKIES; $_COOKIES[$name] = $value; } function IsSet($name) { global $_COOKIES; if (strlen($_COOKIES[$name]) > 0) return true; return false; } } -------------------- A Tutorial.hu fórum igazolt Főpilótája és Kvízmestere :)
Sose vitatkozz idiótákkal! Lesülyedsz az ő szintjükre és legyőznek a rutinjukkal!!! Az életben a nyuszika az igazi jellem: Ott ül a fűbe, de mégse szívja!! |
|
|
|
2005. Aug 15., 17:27
Post
#2
|
|
![]() ,.., ![]() ![]() ![]() ![]() Group: törzstag Posts: 3130 Joined: 04. August 17. Member No.: 437 |
global $_COOKIES;
ez minek a $_* szuperglobál tömbök bárhonnan elérhetőek a szkriptben http://hu.php.net/manual/hu/reserved.variables.php This post has been edited by toxin: 2005. Aug 15., 17:36 -------------------- Bugs, bugs, bugs. If I had them all in jugs,
I'd dig, dig, dig, till a big, big hole was dug, dug, dug, dug, And that would be the end of the bug song. I'm gonna dig, dig, dig, dig, dig, dig, dig, dig, dig ..... The Bug Song - Charles Thomas "Stompin' Tom" Connors |
|
|
|
2005. Aug 15., 17:34
Post
#3
|
|
![]() Segítség, lehugyoz a fa! ![]() ![]() ![]() ![]() Group: törzstag Posts: 1848 Joined: 05. April 25. From: Magyarország / Kecskemét Member No.: 966 |
Nem akarok hülyeséget mondani, de ha globálissá teszel egy egyébként is globális tömböt, akkor az hibás működést eredményez. Én konkrétan a session kezelés kapcsán olvastam, hogy iylen esetben a tömb értéke nem fog mentésre kerülni. Szóval használd csak simán a $_cookies-t!
-------------------- |
|
|
|
2005. Aug 15., 18:56
Post
#4
|
|
|
új tag ![]() Group: tag Posts: 25 Joined: 05. July 11. Member No.: 1168 |
A Del() függvénynek nem az lenne a célja, hogy törölje a cookiet? Mert szerintem itt csak a programban törli, a felhasználó gépén nem. Ehhez elvileg a setcookie-t kéne meghívni csak a süti nevével, de gyakorlatban lejáratnak egy múlt idejű időpontot szokás meghatározni.
Ebben nem vagyok teljesen biztos (mivel nem találkoztam még ilyennel), de szerintem így van. -------------------- Üdv.: fberci
Magyar phpBB közösség - www.phpbb.hu |
|
|
|
2005. Aug 15., 20:24
Post
#5
|
|
![]() Segítség, lehugyoz a fa! ![]() ![]() ![]() ![]() Group: törzstag Posts: 1848 Joined: 05. April 25. From: Magyarország / Kecskemét Member No.: 966 |
Ha már annyira forszírozzuk ezt az osztály megoldást, akkor az IsSet() függvényt én úgy ahogy van kiszedném belőle, mert minek írsz függvényt egy már meglévő helyett, ami ráadásul ugyanazzal a névvel rendelkezik?
-------------------- |
|
|
|
2005. Aug 15., 23:01
Post
#6
|
|
|
bitwizard ![]() ![]() ![]() ![]() Group: Admin Posts: 1265 Joined: 03. April 28. Member No.: 11 |
Akkor tegyük még hozzá, hogy a $_COOKIES tömb ugyan irható a user space-ből is csak nem szép dolog.
A másik pedig hogy igy ebben a formában az egész osztálynak nincs értelme Az add fügvényed hosszabb lett mint az eredeti parancs, és nem nyújt semmilyen extrát. A dell fügvényed rossz. Nem a sütit törli. A set fügvény hülyeség. Minek piszkálod a $_COOKIE tömböt? Attól a süti értéke nem fog változni. Max akkor lenne értelme, hogyha az add után beirnád a $_COOKIE -be is. Akkor süti beállítása után rögtön elérhető lenne a $_COOKIE -ban is a süti tartalma nem csak újra töltődés után. Az isSet pedig már mint standard php parancs is létezik. -------------------- TLoF
Kepregeny.NET |
|
|
|
2005. Aug 15., 23:15
Post
#7
|
|
![]() Segítség, lehugyoz a fa! ![]() ![]() ![]() ![]() Group: törzstag Posts: 1848 Joined: 05. April 25. From: Magyarország / Kecskemét Member No.: 966 |
Szvsz felesleges ez az egész osztályosdi... Szép dolog az OOP, de azért az echo()-t ne akarjuk már újra feltalálni!
-------------------- |
|
|
|
2005. Aug 16., 07:49
Post
#8
|
|
![]() ,.., ![]() ![]() ![]() ![]() Group: törzstag Posts: 3130 Joined: 04. August 17. Member No.: 437 |
én kiszedtem hogy fölösleges mert ha ebből származtatja vagy erre építi majd a felhasználó azonosítást lásd 13-1 php fejlesztés felsőfokonból akkor meg van értelme szvsz növeli a kód olvashatóságát (bár az alábbi osztály nem az alap süti kezelést végzi hanem a kódolását és a verzió követést oldja meg)
CODE <?php // // Chapter 13, pg 334-336 // require_once 'Exception.inc'; class Cookie { private $created; private $userid; private $version; private $td; private $cookie; private $cypher = 'blowfish'; private $mode = 'cfb'; private $key = 'choose a better key'; private $cookiename = 'USERAUTH'; private $myversion = '1'; private $expiration = '600'; private $warning = '300'; private $glue = '|'; public function __construct($userid = false) { $this->td = mcrypt_module_open ($this->cypher, '', $this->mode, ''); if($userid) { $this->userid = $userid; return; } else { if(array_key_exists($this->cookiename, $_COOKIE)) { $buffer = $this->_unpackage($_COOKIE[$this->cookiename]); } else { throw new AuthException("No Cookie"); } } } public function set() { $cookie = $this->_package(); set_cookie($this->cookiename, $cookie, 0); } public function logout() { set_cookie($this->cookiename); } public function validate() { if(!$this->version || !$this->created || !$this->userid) { throw new AuthException("Malformed cookie"); } if ($this->version != $this->myversion) { throw new AuthException("Version mismatch"); } if (time() - $this->created > $this->expiration) { throw new AuthException("Cookie expired"); } else if ( time() - $this->created > $this->resettime) { $this->set(); } } private function _package() { $parts = array($this->myversion, time(), $this->userid); $cookie = implode($glue, $parts); return $this->_encrypt($cookie); } private function _unpackage($cookie) { $buffer = $this->_decrypt($cookie); list($this->version, $this->created, $this->userid) = explode($glue, $buffer); if($this->version != $this->myversion || !$this->created || !$this->userid) { throw new AuthException(); } } private function _encrypt($plaintext) { $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND); mcrypt_generic_init ($this->td, $this->key, $iv); $crypttext = mcrypt_generic ($this->td, $plaintext); mcrypt_generic_deinit ($this->td); return $iv.$crypttext; } private function _decrypt($crypttext) { $ivsize = mcrypt_get_iv_size($this->td); $iv = substr($crypttext, 0, $ivsize); $crypttext = substr($crypttext, $ivsize); mcrypt_generic_init ($this->td, $this->key, $iv); $plaintext = mdecrypt_generic ($this->td, $crypttext); mcrypt_generic_deinit ($this->td); return $plaintext; } private function _reissue() { $this->created = time(); } } /* vim: set ts=2 sts=2 ai bs=2 expandtab: */ ?> szóval az ebbe szereplő set_cookie(*); -kat le lehet váltani az alap süti kezelő osztály parancsaira bár se rövidebb se jobb nem lesz tőle az is igaz This post has been edited by toxin: 2005. Aug 16., 08:17 -------------------- Bugs, bugs, bugs. If I had them all in jugs,
I'd dig, dig, dig, till a big, big hole was dug, dug, dug, dug, And that would be the end of the bug song. I'm gonna dig, dig, dig, dig, dig, dig, dig, dig, dig ..... The Bug Song - Charles Thomas "Stompin' Tom" Connors |
|
|
|
2005. Aug 16., 09:09
Post
#9
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
Siluro:
CODE class Cookies { function CookieAdd($name, $value, $time = 3600) { SetCookie($name, $value, mktime()+$time, "/"); $_COOKIE[$name] = $value; } function CookieDel($name) { setcookie($name, '', mktime()-3600*24); unset($_COOKIES[$name]); } function CookieSet($name, $value) { $this->Add($name, $value); $_COOKIES[$name] = $value; } function CookieVal($name) { if(!IsSet($_COOKIE[$name])) { return false; } return $_COOKIE[$name]; } function CookieIsSet($name) { if(!Empty($_COOKIE[$name])) { return true; } return false; } } De amúgy télleg felesleges BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2005. Aug 16., 09:28
Post
#10
|
|
![]() ,.., ![]() ![]() ![]() ![]() Group: törzstag Posts: 3130 Joined: 04. August 17. Member No.: 437 |
akkor már
CODE function CookieAdd($name, $value, $time = 3600) { SetCookie($name, serialize($value), mktime()+$time, "/"); $_COOKIE[$name] = $value; } function CookieGet($name) { return unserialize(stripslashes($_COOKIE[$name])); } ?> vagy valami ilyesmi -------------------- Bugs, bugs, bugs. If I had them all in jugs,
I'd dig, dig, dig, till a big, big hole was dug, dug, dug, dug, And that would be the end of the bug song. I'm gonna dig, dig, dig, dig, dig, dig, dig, dig, dig ..... The Bug Song - Charles Thomas "Stompin' Tom" Connors |
|
|
|
2005. Aug 16., 10:41
Post
#11
|
|
![]() Segítség, lehugyoz a fa! ![]() ![]() ![]() ![]() Group: törzstag Posts: 1848 Joined: 05. April 25. From: Magyarország / Kecskemét Member No.: 966 |
Azért születnek itt a megoldások a felesleges dolgokra!
-------------------- |
|
|
|
2005. Aug 16., 13:45
Post
#12
|
|
![]() Főpilóta ![]() ![]() Group: haladó tag Posts: 450 Joined: 05. April 19. From: Magyarhon Member No.: 950 |
Köszi a helpeket. Egy olyan fejlesztésbe vagyok amihez ez kell mindenképpen, de hogy mi az majd meglátjátok ha elkészült, vagy befuccsolt
-------------------- A Tutorial.hu fórum igazolt Főpilótája és Kvízmestere :)
Sose vitatkozz idiótákkal! Lesülyedsz az ő szintjükre és legyőznek a rutinjukkal!!! Az életben a nyuszika az igazi jellem: Ott ül a fűbe, de mégse szívja!! |
|
|
|
2005. Aug 17., 03:45
Post
#13
|
|
|
Altartalékos ![]() ![]() ![]() ![]() Group: törzstag Posts: 1930 Joined: 03. December 8. Member No.: 213 |
QUOTE(toxin @ 2005. Aug 16., 10:28) akkor már ...stripslashes... Ha mar nagy dolog akkor illik a program elejen rekurzivan vegigszaladni ezeken a szuperglobalis tombokon is kiescapelni oket. Es maris securebb a progi. This post has been edited by BlackPrince: 2005. Aug 17., 03:46 |
|
|
|
2005. Dec 7., 19:44
Post
#14
|
|
![]() tag ![]() ![]() Group: tag Posts: 221 Joined: 05. November 20. From: Martfű Member No.: 1579 |
Sziaztok. Én egy szavazót csináltam de ott van a baj hogy akár 1 000 000* is szavazhatok rá. Ezért azt szeretném ha csinálna egy sütit amiben meg van adva a szavazás témája és az hogy már szavazott ebben témában. És neki az jöjjön ki hogy Te már nem szavazhatsz! enyi aszem.
ui: Ja és erről egy kis tutor is elég, ami elmond minden sütivel foglalkozó és kapcsolatos fügvényeket. This post has been edited by C.o.D.er.: 2005. Dec 7., 19:47 -------------------- Ha valaki még egyszer azzal jön, hogy használja macroszar(azaz microsoft) legújabb tetvét, felkötöm egy lámpavasra!
|
|
|
|
2005. Dec 7., 20:24
Post
#15
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
http://www.php.net/manual/hu/features.cookies.php
Felhasználói kommenteket is érdemes olvasgatni BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 2012. May 21. - 19:57 |