개발 Q&A

제목 서버 이전 후 php curl CURLOPT_COOKIEJAR 작동 안됨
카테고리 기타
글쓴이 미니미 작성시각 2020/12/15 16:31:41
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 10510   RSS

말 그대로 php curl을 이용하여 CURLOPT_COOKIEJAR 으로 쿠키값을 서버에 저장 하고자 합니다.

원래 이용 중 이던 카페24에 웹호스팅에서는 문제 없이 작동을 하는데 새로 이전한 클라우드 서버에서는

파일만 생성이 되고 쿠키값은 저장이 안되네요....

어떤게 문제인지 아시는분 있나요??

 

아래는 현재 적용 되어있는 소스코드 입니다.

 

$sLoginID       = id;
$sPassword      = pw;

$url = "https://test.com";
$sRefererUrl    = 'https://test.com';

$sLoginID   = urlencode($sLoginID);
$sPassword   = urlencode($sPassword);

$aPostFields = 'nurl='.$sRefererUrl.'&memid='.$sLoginID.'&mempwd='.$sPassword.'&loginChk=on';
$sUserAgent     = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36';

$filename = $this->input->server('DOCUMENT_ROOT').'/data/cookies/cookie.txt';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_REFERER, $sRefererUrl);

curl_setopt($ch, CURLOPT_HEADER, TRUE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $sUserAgent);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION,6);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_rsa_aes_128_gcm_sha_256');

curl_setopt($ch, CURLOPT_POSTFIELDS, $aPostFields);
curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_COOKIEJAR, $filename);

$result = curl_exec ($ch);

curl_close ($ch);

 

 다음글 동일한 평션 사용 안되나요? (2)
 이전글 for 반복구문 관련 질문 드립니다 (2)

댓글

변종원(웅파) / 2020/12/15 16:50:55 / 추천 0

안되면 왜 안되는지 에러메세지가 출력될 겁니다. 에러 메세지를 확인하세요.

cookie.txt 파일의 퍼미션 문제일 수도 있을 것 같네요

미니미 / 2020/12/15 17:07:28 / 추천 0

@변종원(웅파)

별도의 에러메시지는 안뜨네요...;; cookie.txt는 저장 하고자 하는 디렉토리에 저장이 되는데 파일을 보면

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

이 내용만 있고 쿠키 정보값이 없는데 이런 경우에는 퍼미션 문제라 보는게 맞는건가요??

한대승(불의회상) / 2020/12/15 20:44:03 / 추천 0

@미니미 cookie.txt 파일을 삭제후 다시 시도해 보세요.

삭제된 파일이 다시 생성된다면 퍼미션 문제는 아닙니다.

변종원(웅파) / 2020/12/16 08:36:23 / 추천 0
미니미/ 검색해보시면 curl 에러출력하는 함수가 따로 있습니다.
미니미 / 2020/12/16 14:12:57 / 추천 0

@변종원(웅파) @한대승(불의회상) 퍼미션의 문제가 맞는듯 싶습니다 ㅠㅠ

새로 폴더를 만들고 테스트를 해보니 파일 생성이 안되더라구요;;;

찾아보니 퍼미션 설정은 umask로 한다는데 다른 값으로 변경을 해도 작동을 안하네요....

서버쪽 공부한다고 찾아보면서 하고는 있는데 막막하네요;;; 혹 제가 놓친 부분이 있는건가요??

(초기에 셋팅 할때 chown 과 chmod로 소유주와 권한을 설정 했고 지금은 ftp를 통해 폴더를 생성 후 그 안에 쿠키를 저장하려 했으나 안되고 있는 상황입니다)

한대승(불의회상) / 2020/12/16 15:52:33 / 추천 0

ftp로 cookie.txt 파일 하나 올리신후 퍼미션을 777로 수정하시면 해결될듯

폴더의 퍼미션을 777로 수정해도 될것 같은데....

퍼미션은 ftp 에서 수정할 수 있습니다.

미니미 / 2020/12/16 17:45:19 / 추천 0

해결 했네요 ㅎㅎ 되는 걸 보고 나니 간단한거 였는데.... 이래서 공부를 더 해야 되나 봅니다

자문자답으로 저와 비슷한 경우로 문제가 있는 분들이 있을까봐 해결 된 방법 남겨 봅니다.

1) ubuntu 에 vsftpd 를 사용 중이였고 vsftpd.conf 에서 local_umask를 수졍 했습니다. ( 022 에서 000 으로 변경)

2) 그리고 가장 중요한 쿠키를 얻고자 하는 사이트에 로그인 할때 쓰이는 아이디, 비밀번호를 확인 하세요.

저는 바보같이 비밀번호를 틀리게 입력 했었습니다.

로그인이 되는지 확인 하고자 하신다면 var_dump 꼭 찍어 보시길 바랍니다!

한대승(불의회상) / 2020/12/17 09:25:18 / 추천 0
@미니미 가끔 손가락이 배신을.... ^^;;