Programu ya PHP inawahudumia Alice na Bob, na wote wawili hutumia mteja wake wa cURL upande wa seva kufikia tovuti ile ile ya mbali kupitia proksi. Ikiwa kila ombi linapakia cookies.txt, watumiaji hao wawili wanaweza kurithi kuingia kule kule kwa mbali. Kubadilisha anwani zao za proksi hakutenganishi faili hilo.

Chagua mmiliki wa kidakuzi kabla ya kuchagua jina la faili. Kwa kawaida ni kipindi cha mbali cha kimantiki cha programu: mtumiaji wa ndani, akaunti fulani ya mbali na, inapohitajika, nafasi tofauti ya kazi. Nukta ya mwisho ya proksi ni uchaguzi wa njia, si kitambulisho cha kipindi kinachotegemewa. Watumiaji kadhaa wanaweza kushiriki nukta moja ya mwisho, na nukta ya mwisho inaweza kubadilisha njia za kutoka.

Pakia na uhifadhi mtungi wa kipindi kimoja

Acha programu ihusishe kipindi chake kilichothibitishwa na ufunguo wa faili unaozalishwa na seva. Ukiwa na saraka ya vidakuzi ya faragha na $sessionKey inayotegemewa, usanidi wa cURL una umbo hili:

$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,
]);

Kwa jaribio la kipindi linaloruhusiwa kwenye tovuti ya umma katika mtandao unaoruhusu mpatanishi wa umma, orodha ya proksi za HTTP hutoa nukta za mwisho zinazofaa. Tumia kipini kisicho na uthibitishaji wa proksi uliosanidiwa au vitambulisho vya proksi vilivyohifadhiwa, na uweke hali ya vidakuzi iliyotengwa kwa kipindi kinachokusudiwa. Kipande hiki husanidi kipini; programu hufanya uhamishaji na hukagua matokeo kupitia mtiririko wake wa kawaida wa maombi. COOKIEFILE hupakia vidakuzi vya awali vya kipindi. COOKIEJAR huchagua mahali kipini huandika vidakuzi vyake vilivyohifadhiwa. Kuweka faili la matokeo pekee hakupakii kuingia kwa awali.

Kipindi kipya kinaweza kuanza bila faili. Ipe uhamishaji wake wa kwanza njia ya mtungi inayokusudiwa, acha tovuti ianzishe vidakuzi, na uhifadhi hali inayotokana kwa ombi linalofuata. Saraka ya vidakuzi lazima iweze kuandikwa na mfanyakazi wa programu na ihifadhiwe nje ya mti wa hati unaohudumiwa kwa umma. Usigeuze jina la mtumiaji au njia iliyotolewa na mgeni kuwa jina la faili; tafuta ufunguo unaotegemewa kwenye seva.

Uhifadhi unahitaji nafasi katika mzunguko wa maisha ya ombi

libcurl kwa kawaida huandika mtungi wakati wa usafishaji wa kipini. Ikiwa programu inahitaji nukta ya uhifadhi iliyo wazi baada ya mabadilishano ya mbali, inaweza kuomba:

curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');

Hii huandika vidakuzi vinavyojulikana sasa na kipini kwenye mtungi wake uliosanidiwa. Maliza kutumia kipini kwa kipindi hicho kabla ya kukitenga kwa kazi isiyohusiana. Kubadilisha njia ya mtungi pekee kwenye kipini ambacho tayari kinashikilia vidakuzi vya Alice si sawa na kuunda kipindi safi cha Bob.

Pia tofautisha upakuaji uliofanikiwa na uhifadhi uliofanikiwa. Nyaraka za mtungi wa vidakuzi zinasema kwamba kushindwa kuandika wakati wa usafishaji hakutolewi kama hitilafu ya kawaida ya uhamishaji. Angalia umiliki wa saraka, ruhusa na matokeo ya uchunguzi wa programu wakati kuingia kunafanya kazi kwa ombi moja na kutoweka kwa linalofuata.

Maombi ya wakati mmoja huleta mpaka mwingine. Wafanyakazi wawili wanaweza kupakia mtungi ule ule wa zamani, kubadilisha hali zao za kumbukumbu kwa uhuru, kisha kuhifadhi matokeo tofauti. Kufuli kwa kipindi kimoja au ufuatanishaji sawa lazima kugharamia mfululizo wote wa upakiaji, mabadilishano na uhifadhi ikiwa maombi yote mawili yanashiriki kuingia kumoja kwa mbali; kufunga uandishi wa mwisho pekee hakuoanishi picha zao za awali. Vipindi tofauti vinapaswa kuwa na faili tofauti na kufuli huru.

Wakati wa kutoka, maliza kipindi cha mbali kinachokusudiwa na uondoe hali yake ya vidakuzi vya ndani kwa mujibu wa sera ya programu. Proksi mpya iliyochaguliwa inaweza kisha kuunganishwa na kipindi kipya chochote anachokianzisha mtumiaji, bila kufanya anwani ya proksi iwe na jukumu la kuamua kuingia kwa nani kuko kwenye kumbukumbu.

Makala zinazohusiana