2014-07-23 6 views
0

나는 간단한 PHP 페이지가, 그리고 스크립트가 터미널 콘솔에서 인이 PHP (SSH) 실행하려고 해요 : 나는 '경우, 나는이 스크립트를 실행할 수 있습니다, 지금명령 프롬프트에서 PHP 스크립트 - 쿠키를 읽을 수 있습니까?

php /home/account/domains/domain.com/public_html/script.php 

을 건이며, m 콘솔에서 PHP 스크립트를 실행하고 \ 쿠키를 읽는 설정이 작동하지 않습니다. 브라우저에서 같은 페이지를 실행하면 모든 것이 잘 작동합니다 (읽기 및 쓰기 쿠키 ..)

그래서 내 질문 이 스크립트를 터미널에서 (위와 같이) 실행할 수 있으며 쿠키를 어떻게 든 저장할 수 있습니까?

내 PHP는 scrpit은 간단하다 :

setcookie("cookie", "cookie", time()+30); 
if (!isset($_COOKIE["cookie"])){ 
echo "New Cookie is set!"; 
}else{ 
echo "The Cookie already set!"; 
} 

는 당신의 도움을 주셔서 감사합니다! 당신은() 함수 일부 간부를 실행하고자하는 경우

+0

쿠키는 클라이언트에 저장됩니다. 명령 행에서 PHP를 실행할 때 클라이언트가 없습니다. 모든'setcookie()'는 클라이언트에 대한 응답에서 헤더를 발행합니다. 헤더는 쿠키 이름과 값을 포함합니다. 명령 행에서 어떤 헤더도 발행/인쇄되지 않습니다. –

+0

안녕하세요 Jonathen과 답장을 보내 주셔서 감사합니다!, 그래서, 거기에 \ "쿠키를 저장하려면"주위에 "작업"은 터미널에서 PHP 스크립트를 실행 한 후에 무엇입니까? –

+0

* *에서 *를 읽고 *에 *를 쓰고 싶습니까? 고객이 없습니다. –

답변

0

쿠키는 브라우저에 존재하는 참조하십시오. 명령 줄에서 스크립트를 실행할 때 관련 브라우저가 없기 때문에 쿠키를 저장할 위치가 없습니다.

명령 줄 스크립트 호출을 통해 데이터를 저장해야하는 경우 데이터를 읽고 파일에 써야합니다. 이렇게하는 간단한 방법은 다음과 같습니다.

// At the start of the script... 
$PERSIST = unserialize(file_get_contents("myscript.cache")) ?: array(); 

// Read data from there... 
print $PERSIST["blah"]; 
// Write some 
$PERSIST["foo"] = "stuff"; 

// At the end of the script, save it back 
file_put_contents("myscript.cache", serialize($PERSIST)); 
+0

답장을 보내 주셔서 감사합니다. 문제는 30 초 동안 존재해야한다는 것입니다. 쿠키처럼, 나는이 파일을 지우는 또 다른 쉘 스크립트를 작성할 수 있지만 추악한 솔루션처럼 들린다. 또한 실제로 2 초마다 파일을 만들고 삭제하고 싶지 않다. 내 HD를 죽일 것이다 :). 너 생각하니? 어쨌든 고마워요! –

+0

스크립트가 마지막으로 실행 된 시간을 추적해야하는 경우 파일에 시간을 저장하십시오. 하드 디스크에 대해 걱정하지 마십시오. 괜찮을거야. – duskwuff

+0

좋아, 나는 아마 더 좋은 방법이 있다고 생각했다. 아마도 어쨌든! –

-1

, 당신은 쿠키와 일을 저장할 수 있습니다 -

How to get past the login page with Wget?

+0

그건 다른 문제에 대한 해결책입니다. (또한, 그것은 좋은 해결책이 아니며 '컬 (curl)'기능도 쿠키를 저장할 수 있습니다.) – duskwuff