અલગ વપરાશકર્તા સત્રો માટે PHP cURL કૂકી જાર
દૂરસ્થ સત્રની આસપાસ PHP cURL કૂકી ચાલુ રાખવાની રચના: વિશ્વસનીય ફાઇલ નામો, સ્પષ્ટ સેવ અને સમવર્તી વિનંતીઓ.
એક PHP એપ્લિકેશન Alice અને Bob ને સેવા આપે છે, અને બંને તેના સર્વર-સાઇડ cURL ક્લાયન્ટનો ઉપયોગ પ્રોક્સી દ્વારા એ જ દૂરસ્થ વેબસાઇટ સુધી પહોંચવા માટે કરે છે. જો દરેક વિનંતી cookies.txt લોડ કરે, તો બંને વપરાશકર્તા એ જ દૂરસ્થ લોગિન વારસામાં મેળવી શકે છે. તેમના પ્રોક્સી સરનામાં બદલવાથી તે ફાઇલ અલગ થતી નથી.
ફાઇલ નામ પસંદ કરતા પહેલા કૂકીનો માલિક પસંદ કરો. સામાન્ય રીતે તે એપ્લિકેશનનું તાર્કિક દૂરસ્થ સત્ર છે: સ્થાનિક વપરાશકર્તા, ચોક્કસ દૂરસ્થ ખાતું અને, જ્યાં જરૂરી હોય ત્યાં, અલગ વર્કસ્પેસ. પ્રોક્સી એન્ડપોઇન્ટ રૂટિંગ પસંદગી છે, વિશ્વસનીય સત્ર ઓળખકર્તા નથી. ઘણા વપરાશકર્તા એક એન્ડપોઇન્ટ શેર કરી શકે છે, અને એન્ડપોઇન્ટ એક્ઝિટ બદલી શકે છે.
એ જ સત્રની જાર લોડ કરો અને સેવ કરો
એપ્લિકેશને તેના પ્રમાણિત સત્રને સર્વર-જનરેટેડ ફાઇલ કી સાથે મેપ કરવા દો. ખાનગી કૂકી ડિરેક્ટરી અને વિશ્વસનીય $sessionKey સાથે, cURL રૂપરેખાંકન આ સ્વરૂપ ધરાવે છે:
$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,
]);
જાહેર મધ્યસ્થીને મંજૂરી આપતા નેટવર્ક પર માન્ય જાહેર-સાઇટ સત્ર પરીક્ષણ માટે, HTTP પ્રોક્સી સૂચિ ઉમેદવાર એન્ડપોઇન્ટ પૂરા પાડે છે. રૂપરેખાંકિત પ્રોક્સી પ્રમાણીકરણ અથવા સાચવેલા પ્રોક્સી ઓળખપત્રો વિનાનું હેન્ડલ વાપરો, અને કૂકી સ્થિતિ તેના ઇચ્છિત સત્રને સોંપેલી રાખો. આ ટુકડો હેન્ડલ રૂપરેખાંકિત કરે છે; એપ્લિકેશન સ્થાનાંતરણ કરે છે અને તેના સામાન્ય વિનંતી પ્રવાહ દ્વારા પરિણામ ચકાસે છે. COOKIEFILE સત્ર માટે અગાઉની કૂકીઓ લોડ કરે છે. COOKIEJAR પસંદ કરે છે કે હેન્ડલ તેની સાચવેલી કૂકીઓ ક્યાં લખે. ફક્ત આઉટપુટ ફાઇલ સેટ કરવાથી અગાઉનું લોગિન લોડ થતું નથી.
નવું સત્ર ફાઇલ વિના શરૂ થઈ શકે છે. તેના પ્રથમ સ્થાનાંતરણને ઇચ્છિત જાર પાથ આપો, વેબસાઇટને કૂકીઓ સ્થાપિત કરવા દો, અને આગલી વિનંતી માટે પરિણામી સ્થિતિ સેવ કરો. કૂકી ડિરેક્ટરી એપ્લિકેશનના વર્કર દ્વારા લખી શકાય તેવી હોવી જોઈએ અને જાહેરમાં સેવ થતા દસ્તાવેજ વૃક્ષની બહાર રાખવી જોઈએ. મુલાકાતીએ આપેલા વપરાશકર્તાનામ અથવા પાથને ફાઇલ નામમાં ન ફેરવો; સર્વર પર વિશ્વસનીય કી શોધો.
સેવને વિનંતી જીવનચક્રમાં સ્થાન જોઈએ
libcurl સામાન્ય રીતે હેન્ડલ સફાઈ દરમિયાન જાર લખે છે. જો એપ્લિકેશનને દૂરસ્થ વિનિમય પછી સ્પષ્ટ સેવ બિંદુ જોઈએ, તો તે વિનંતી કરી શકે છે:
curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');
આ હેન્ડલને હાલમાં જાણીતી કૂકીઓ તેની રૂપરેખાંકિત જારમાં લખે છે. તે સત્ર માટે હેન્ડલનો ઉપયોગ પૂર્ણ કરો, પછી તેને અસંબંધિત કાર્યમાં સોંપો. જે હેન્ડલ પહેલેથી Aliceની કૂકીઓ ધરાવે છે તેના પર ફક્ત જાર પાથનામ બદલવું Bobના સ્વચ્છ સત્ર બનાવવા સમાન નથી.
સફળ ડાઉનલોડ અને સફળ ટકાઉપણાને પણ અલગ પાડો. કૂકી-જાર દસ્તાવેજીકરણ નોંધે છે કે સફાઈ દરમિયાન લેખન નિષ્ફળતા સામાન્ય સ્થાનાંતરણ ભૂલ તરીકે પરત થતી નથી. જ્યારે એક વિનંતી માટે લોગિન કામ કરે અને પછીનીમાં અદૃશ્ય થાય, ત્યારે ડિરેક્ટરી માલિકી, પરવાનગીઓ અને એપ્લિકેશનનું નિદાન આઉટપુટ તપાસો.
સમવર્તી વિનંતીઓ બીજી સીમા દાખલ કરે છે. બે વર્કર એ જ જૂની જાર લોડ કરી શકે, સ્વતંત્ર રીતે તેમની ઇન-મેમરી સ્થિતિ બદલી શકે, અને પછી જુદા પરિણામો સેવ કરી શકે. જો બંને વિનંતીઓ એક દૂરસ્થ લોગિન શેર કરે, તો પ્રતિ-સત્ર લોક અથવા સમકક્ષ ક્રમિકીકરણે સંપૂર્ણ લોડ, વિનિમય અને સેવ ક્રમને આવરી લેવો જોઈએ; ફક્ત અંતિમ લેખનને લોક કરવાથી તેમના અગાઉના સ્નેપશોટ મેળ ખાતા નથી. જુદા સત્રોમાં જુદી ફાઇલો અને સ્વતંત્ર લોક હોવા જોઈએ.
લોગઆઉટ પર, ઇચ્છિત દૂરસ્થ સત્ર સમાપ્ત કરો અને એપ્લિકેશનની નીતિ અનુસાર તેની સ્થાનિક કૂકી સ્થિતિ નિવૃત્ત કરો. નવી પસંદ કરેલી પ્રોક્સી પછી વપરાશકર્તા શરૂ કરે તે કોઈપણ નવા સત્ર સાથે જોડી શકાય છે, પ્રોક્સી સરનામાને મેમરીમાં કોનું લોગિન છે તે નક્કી કરવાની જવાબદારી આપ્યા વિના.