현재 위치: > 최신 기사 목록> CURL_SHARE 캐시 쿠키를 사용하여 확인 코드 확인 문제를 해결하십시오.

CURL_SHARE 캐시 쿠키를 사용하여 확인 코드 확인 문제를 해결하십시오.

M66 2025-05-22

네트워크 요청에 PHP를 사용할 때 종종 브라우저 동작, 특히 확인 코드의 확인 문제를 시뮬레이션 해야하는 상황이 종종 발생합니다. 검증 코드는 자동화 된 프로그램이 양식을 제출하는 것을 방지하는 데 사용되는 기술입니다. 일반적으로 사용자는 표시된 문자를 입력하거나 특정 사진을 클릭하여 인간의 신원을 확인해야합니다. 이 경우 CURL 라이브러리를 사용하여 브라우저 동작을 시뮬레이션하는 것이 효과적인 솔루션입니다.

CURL은 외부 서버에 HTTP 요청을 보내는 데 도움이되는 강력한 PHP 라이브러리이며, HTTP, HTTPS, FTP 등과 같은 여러 프로토콜을 확인하여 검증 코드 확인을 위해 처리 해야하는 요청을 위해서는 여러 요청에 걸쳐 쿠키를 관리하고 캐시하는 방법입니다. 현재 Curl_share_init 함수를 사용하여 공유 쿠키를 구현하여 검증 코드의 빈번한 검증 문제를 해결할 수 있습니다.

curl_share_init 함수는 무엇입니까?

curl_share_init는 CURL에서 제공하는 함수입니다. 일반적으로 여러 컬 요청간에 쿠키, DN 및 기타 정보를 공유하는 데 사용됩니다. 이 기능을 사용하면 여러 CURL 요청이 동일한 쿠키를 공유 할 수 있으며, 이는 동일한 사이트를 여러 번 요청하고 로그인하거나 인증 된 상태로 유지 해야하는 시나리오에 유용합니다.

쿠키를 공유함으로써 쿠키를 요청할 때마다 검증 코드를 다시 구입하지 않을 수 있습니다. 이렇게하면 브라우저 동작을보다 효과적으로 시뮬레이션하고 자주 확인 코드 확인을 피할 수 있습니다.

curl_share_init 함수를 사용하는 방법?

다음은 Curl_share_init 함수를 사용하여 쿠키를 캐시하고 여러 요청을 통해 공유하는 방법을 보여주는 간단한 예입니다.

 <?php
// 공유 핸들을 초기화하십시오
$ch_share = curl_share_init();

// 첫 번째를 초기화하십시오 cURL 묻다
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://m66.net/login"); // 방문 해야하는 URL로 교체하십시오
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_COOKIEJAR, "cookies.txt"); // 유지하다 Cookie 파일로 이동하십시오
curl_setopt($ch1, CURLOPT_SHARE, $ch_share); // 공유 Cookie
$response1 = curl_exec($ch1);

// 아날로그 입력 확인 코드를 제출하십시오
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://m66.net/submit_form"); // 양식을 제출 해야하는 URL로 교체하십시오.
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_POST, true);
curl_setopt($ch2, CURLOPT_POSTFIELDS, [
    'username' => 'testuser',
    'password' => 'testpassword',
    'captcha' => 'captcha_code' // 확인 코드가 입력되었다고 가정합니다
]);
curl_setopt($ch2, CURLOPT_SHARE, $ch_share); // 공유 Cookie
$response2 = curl_exec($ch2);

// 폐쇄 cURL 묻다
curl_close($ch1);
curl_close($ch2);

// 폐쇄공유句柄
curl_share_close($ch_share);

// 输出묻다结果
echo "Response from first request: " . $response1;
echo "Response from second request: " . $response2;
?>

코드 구문 분석

  1. 공유 핸들 초기화 : curl_share_init를 사용하여 쿠키, DN 및 여러 컬 요청 간의 기타 설정을 공유하는 데 사용될 공유 핸들 $ CH_SHARE를 초기화합니다.

  2. 첫 번째 요청 : 첫 번째 CURL 요청에서 CURL_SETOPT를 사용하여 URL, 리턴 컨텐츠 및 Cookiejar 매개 변수를 설정하여 쿠키가 Cookies.txt 파일에 저장되었음을 나타냅니다. 이 요청은 확인 코드 페이지를 로컬로 요청하여 첫 번째 액세스 프로세스를 시뮬레이션합니다.

  3. 두 번째 요청 : 두 번째 요청에서 사용자 이름, 비밀번호 및 확인 코드가 포함 된 양식을 제출합니다. curlopt_share 매개 변수를 공유 핸들 $ ch_share 로 설정하면 두 번째 요청이 첫 번째 요청에서 쿠키를 재사용 할 수 있으므로 중복 확인 코드 확인을 피할 수 있습니다.

  4. 닫기 자원 : 요청이 완료된 후 Curl_Close를 사용하여 각 컬 세션을 닫고 Curl_share_close를 사용하여 공유 핸들을 닫습니다.

장점과 예방 조치

  • 중복 검증 코드 검증을 피하십시오 : 쿠키를 공유하면 요청할 때마다 확인 코드를 다시 입력하지 않고 여러 요청에서 동일한 로그인 상태 및 인증 정보를 재사용 할 수 있습니다.

  • 효율성 향상 : 각 요청이 검증 코드를 다시 접수 해야하는 경우 사용자 경험에 영향을 줄뿐만 아니라 네트워크 요청 시간을 증가시킵니다. 공유 쿠키를 사용하면 요청의 효율성을 크게 향상시킬 수 있습니다.

  • 공유 리소스의 제한 사항 : Curl_share_init은 여러 요청에서 리소스를 공유하는 데 도움이 될 수 있지만 너무 많은 동시 요청에서 동일한 공유 핸들을 사용하지 않아야합니다.

요약

curl_share_init을 사용하여 CURL 요청 쿠키를 공유하는 것은 검증 코드 확인 문제를 해결하는 효과적인 방법입니다. 여러 요청이 필요한 경우 쿠키를 캐싱 및 공유하여 중복 검증 코드 입력을 피하고 작동 효율성을 향상시킬 수 있습니다. 로그인 검증 또는 양식을 제출하든 CURL 공유 메커니즘은 브라우저 동작을 더 잘 시뮬레이션하고 검증 코드로 인한 간섭을 줄이는 데 도움이 될 수 있습니다.