2009-11-09 17 views
9

मैं क्रॉन नौकरियों के लिए नया हूं और मैंने इस विषय पर बहुत कुछ किया है लेकिन मैं इसे पूरी तरह से समझ नहीं पाया। कुकीज़ या सत्र चर का उपयोग नौकरियों को क्रॉन कर सकते हैं?php cron नौकरियां एक्सेस सत्र चर/कुकीज़ कर सकते हैं?

धन्यवाद!

+0

आपको वास्तव में उपयोग केस निर्दिष्ट करना चाहिए जिसमें यह एक्सेस आवश्यक होगा। –

उत्तर

8

एक क्रॉन जॉब कुकीज़ तक पहुंचने में सक्षम नहीं होगा, क्योंकि परिभाषा के अनुसार इसे किसी वेब ब्राउज़र अनुरोध से नहीं बुलाया जा रहा है। केवल वेब ब्राउज़र एक कुकी स्टोर करता है, जिसमें सत्र आईडी होती है। कोई वेब ब्राउजर नहीं, कोई कुकी नहीं, कोई सत्र नहीं।

कहा करने के बाद कि, अगर आप किसी भी तरह सत्र id पता है , आप सत्र session_start() उपयोग करने से पहले session_id() में आईडी खिला द्वारा मैन्युअल रूप से शुरू करने के लिए सक्षम होना चाहिए।

+0

और यह तभी होता है जब सत्र अभी भी मौजूद हो। एक क्रॉन जॉब चल रहा है, कहें, घंटे या दिन बाद शायद एक सत्र लोड करने का प्रयास करेगा जो अब मौजूद नहीं है। –

+0

आपके अच्छे उत्तर के लिए बहुत बहुत धन्यवाद। मुझें यह पसंद है। –

0

pseudo cron नामक एक प्रोजेक्ट है जो मुझे लगता है कि सत्र और/या कुकीज़ तक पहुंचने में सक्षम होगा। लेकिन यह मुझे कोई समझ नहीं आता।

+0

वास्तव में नहीं।वास्तविक अनुरोध से चलकर, यह उस सटीक पल पर पृष्ठ का अनुरोध करने वाले व्यक्ति से कुकीज को "देखता है", उस व्यक्ति की कुकीज़ नहीं, जिसकी क्रॉन-जॉब आप चल रहे हैं। वही प्रतिबंध @deceze उद्धरण यहां लागू होगा। आपको * session_id * पहले से ही जानना होगा और सत्र शुरू करने के लिए इसका उपयोग करना होगा। जब तक आप क्रॉन का उपयोग नहीं कर सकते हैं, तब तक वे छद्म-क्रॉन को एक अच्छा विकल्प नहीं बनाते हैं। –

+0

हाँ, आप सही हैं। लेकिन मैंने सोचा कि यह प्रासंगिक था क्योंकि सवाल से कोई विशेष सत्र नहीं पहुंचने का कोई संदर्भ नहीं आया। लेकिन दिया गया है कि आप एक ज्ञात सत्र आईडी के साथ एक सत्र तक पहुंचना चाहते हैं, धोखे से जवाब सटीक होगा। –

2

एक और जवाब यह है कि कोई भी कमांड लाइन वेब क्लाइंट्स के साथ सत्र-कुकी फ़ाइलों का उपयोग कर सकता है। उदाहरण:

C=~/tmp/x 
WGET="wget --keep-session-cookies --load-cookies=$C --save-cookies=$C" 

1. प्रवेश पृष्ठ

$WGET -O index.html "http://mail.yahoo.com" 

2. मछली बाहर किसी भी छिपा मूल्यों को प्राप्त

HIDDENVARS=`cat index.html | tr '\r\n\t' ' ' | tr -s ' ' | sed "s|> *<|>~<|g" | tr '~' '\n' | \ 
grep -i "<input .*hidden" | sed "s|.*name=\"\([^\"]*\)\".*value=\"\([^\"]*\)\".*$|\1=\2|g" | tr '\n' '&'` 

3 मैन्युअल रूप से गैर छिपा जोड़ने वार्स

FORMVARS = ".persिस्ट = y & लॉगिन = USERNAME & passwd = SE Crêt $ {HIDDENVARS} & $ {FORMVARS} "" https "लक्ष्य

$ wget -O login.html --post-डेटा = को

4. पोस्ट फार्म डेटा": // लॉगिन। yahoo.com/config/login? "

5. लाभ;)

0

एक समय आधारित, सर्वर साइड "कुकी" एक क्रॉन जॉब के भीतर चलाने के लिए: सर्वर साइड "कुकी" पढ़ने के लिए

उपयोग फ़ाइल() - एक पाठ फ़ाइल।

सर्वर-साइड "कुकी" लिखने के लिए fopen, fwrite, fclose का उपयोग करें। बहुत ही सुंदर नहीं है, लेकिन यह काम करता है -

<?php 

$username = 'whatever'; 

$usercookie = 'http://yourdomainname.com/cookiebank/'.$username.'cookie.txt'; 

$oldtime = file($usercookie); 

if(is_array($oldtime)) { 
    $cookievalue = implode(" ",$oldtime); 
} 
else { 
    $cookievalue = $oldtime; 
} 

// $cookievalue can then be used as you wish... 

$newtime = date("M j G:i:s"); 

$newtime = strtotime($newtime)*1000; // current time in msec 

$myfile = fopen($usercookie, "w") or die("Unable to open file!"); 
fwrite($myfile, $newtime); 
fclose($myfile); 


echo 'done'; 

?> 

सीधे हीथ रॉबिन्सन के मन से एक दृष्टिकोण:

मुख्य कोड: अगर आपके "कुकी" में एक से अधिक datavalue भंडारण

उपयोग फटना यदि आप क्रॉन नौकरी के लिए कुकी जैसी व्यवहार लागू करना चाहते हैं।

संबंधित मुद्दे