1

これは私のcurl関数です。私のローカル Windows マシンで動作します。しかし、サーバーでは Cookie ファイルの保存に失敗します (エラーは発生せず、Cookie ファイルが表示されず、プログラムは失敗します)。Cookie を保存しようとしているフォルダーに file_put_contents() を実行できるため、アクセス許可は適切に設定されているようです。Cookie ファイルの作成に失敗する理由として考えられるものは何ですか? 1つずつ確認できるように、誰かリストしてくれませんか。または他の提案を歓迎します。

SOS

ありがとう

 define('DS',DIRECTORY_SEPARATOR) ;

if (DS == '\\')  {
    define ('CKFILE',"C:/cookiefile.txt" );
}
else {
   define ('CKFILE',"/home/user/public_html/sitename.com/cookiefile.txt" );
}

function curl_fetch($url, $save_cookies = true, $load_cookies = true, $post_data = false, $https = false) {
    file_put_contents("/home/username/public_html/sitename.com/testfile.txt", 'writable file') ; 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); // Target site


    if ($load_cookies) curl_setopt($ch, CURLOPT_COOKIEFILE, CKFILE);
    if ($save_cookies) curl_setopt($ch, CURLOPT_COOKIEJAR, CKFILE);

    if ($https) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    }
    curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");

    if ($post_data) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    }
    curl_setopt($ch, CURLOPT_TIMEOUT, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects
    curl_setopt($ch, CURLOPT_MAXREDIRS, 4); // Limit redirections to four
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return in string

    $page = curl_exec($ch);
    //echo $page ;
    curl_close($ch);
    return $page;
}
4

0 に答える 0