Ama-cookie jar e-PHP cURL wamaseshini ahlukene wabasebenzisi
Ukuklama ukugcinwa kwama-cookie e-PHP cURL eduze kweseshini ekude: amagama amafayela athembekile, ukugcina okucacile kanye nezicelo zesikhathi esisodwa.
Uhlelo lwe-PHP lukhonza u-Alice no-Bob, futhi bobabili basebenzisa iklayenti le-cURL ohlangothini lweseva ukufinyelela isiza esikude esifanayo nge-proxy. Uma isicelo ngasinye silayisha cookies.txt, abasebenzisi ababili bangazuza ukungena okukude okufanayo. Ukushintsha amakheli abo e-proxy akulihlukanisi lelo fayela.
Khetha umnikazi we-cookie ngaphambi kokukhetha igama lefayela. Ngokuvamile yiseseshini yokucabanga ekude yohlelo: umsebenzisi wasekhaya, i-akhawunti ekude ethile futhi, lapho kudingeka khona, indawo yokusebenza ehlukile. I-endpoint ye-proxy iwukukhetha komzila, akuyona isihlonzi seseshini esithembekile. Abasebenzisi abaningi bangabelana nge-endpoint eyodwa, futhi i-endpoint ingashintsha izindawo zokuphuma.
Layisha futhi gcina ijar yaseshini efanayo
Vumela uhlelo luxhumanise iseshini yalo eqinisekisiwe nokhiye wefayela owenziwe yiseva. Ngedirekhithori ye-cookie eyimfihlo kanye ne-$sessionKey ethembekile, ukulungiselelwa kwe-cURL kunalesi simo:
$jar = $cookieDirectory . '/' . $sessionKey . '.cookies';
$ch = curl_init('https://service.example.net/account');
curl_setopt_array($ch, [
CURLOPT_PROXY => 'http://proxy.example.net:8080',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEFILE => $jar,
CURLOPT_COOKIEJAR => $jar,
]);
Ukuze kuhlolwe iseshini yesiza esivamile evunyelwe kunethiwekhi evumela umlamuli womphakathi, uhlu lwe-proxy ye-HTTP lunikeza ama-endpoint angaba khona. Sebenzisa isibambo esingenakho ukuqinisekiswa kwe-proxy okulungiselelwe noma imininingwane ye-proxy egciniwe, futhi gcina isimo se-cookie sinikezwe iseshini okuhloswe ngayo. Le ngxenye ilungiselela isibambo; uhlelo lwenza ukudluliselwa futhi luhlola umphumela ngokugeleza kwalo okujwayelekile kwezicelo. I-COOKIEFILE ilayisha ama-cookie angaphambili eseshini. I-COOKIEJAR ikhetha lapho isibambo sibhala khona ama-cookie aso agciniwe. Ukusetha ifayela lokuphuma kuphela akulayishi ukungena kwangaphambili.
Iseshini entsha ingaqala ngaphandle kwefayela. Nika ukudluliselwa kwayo kokuqala indlela yejar ehlosiwe, vumela isiza sisekelise ama-cookie, futhi gcina isimo esiwumphumela ukuze sisebenze esicelweni esilandelayo. Idirekhithori ye-cookie kufanele ibhalwe isisebenzi sohlelo futhi igcinwe ngaphandle kwesihlahla samadokhumenti asetshenziswa emphakathini. Ungaphenduli igama lomsebenzisi noma indlela enikezwe isivakashi ibe igama lefayela; sesha ukhiye othembekile kuseva.
Ukugcina kudinga indawo emjikelezweni wokuphila kwesicelo
I-libcurl ngokuvamile ibhala ijar ngesikhathi sokuhlanza isibambo. Uma uhlelo ludinga iphuzu lokugcina elicacile ngemva kokushintshisana okukude, lungacela:
curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');
Lokhu kubhala ama-cookie isibambo esiwaziyo njengamanje kujar yaso elungiselelwe. Qeda ukusebenzisa isibambo kuleso seshini ngaphambi kokusinika umsebenzi ongahlobene. Ukushintsha indlela yejar kuphela esibambweni esivele siphethe ama-cookie ka-Alice akufani nokwakha iseshini ehlanzekile ka-Bob.
Futhi hlukanisa ukulanda okuphumelelayo nokugcina okuphumelelayo. Idokhumenti ye-cookie jar iphawula ukuthi ukuhluleka kokubhala ngesikhathi sokuhlanza akubuyiselwa njengephutha elijwayelekile lokudlulisela. Hlola ubunikazi bedirekhithori, izimvume kanye nokuphuma kokuxilonga kohlelo lapho ukungena kusebenza esicelweni esisodwa futhi kunyamalala kwesilandelayo.
Izicelo zesikhathi esisodwa ziletha omunye umngcele. Izisebenzi ezimbili zingalayisha ijar efanayo endala, zishintshe ngokuzimela isimo sazo ememori, bese zigcina imiphumela ehlukene. Uma zombili izicelo zabelana ngokungena okukude okukodwa, ukukhiya kweseshini ngayinye noma ukulandelanisa okulinganayo kufanele kuhlanganise yonke indlela yokulayisha, yokushintshisana nokugcina; ukukhiya kuphela ukubhala kokugcina akubavumelanisi nezithombe zabo zangaphambili. Amaseshini ahlukene kufanele abe namaqembu ahlukene kanye nokukhiya okuzimela.
Lapho uphuma, qeda iseshini ekude ehlosiwe futhi uhoxise isimo sayo se-cookie sendawo ngokwenqubomgomo yohlelo. I-proxy entsha ekhethiwe ingase ixhunywe kunoma iyiphi iseshini entsha eqalwa umsebenzisi, ngaphandle kokwenza ikheli le-proxy libe nesibopho sokunquma ukuthi ukungena kukabani kusememori.