簡體   English   中英

使用CURL和php在遠程站點中使會話保持活動狀態

[英]Keep session alive in remote site using CURL and php

我的代碼正在使用CURL登錄到遠程站點。 但這並不能使會話在那里保持活躍。 就我而言,我使用以下代碼登錄該站點。

        $username=$options['session[login]']; 
        $password=$decryptedPassword; 
        $cookie = tempnam("/tmp", "cookies");  

        $postdata = "session[login]=".$username."&session[password]=".$password; 

        $ch = curl_init(); 
        curl_setopt ($ch, CURLOPT_URL, $url); 
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
        curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
        curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
        curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
        curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
        curl_setopt ($ch, CURLOPT_REFERER, $url); 

        curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
        curl_setopt ($ch, CURLOPT_POST, 1); 
        $result = curl_exec ($ch); 
        $result = str_replace("href=\"","href=\"$onappurl\\",$result);
        $result = str_replace("href=\"$onappurl\\","href=\"$onappurl",$result);
        echo $result;
        curl_close($ch);

現在,結果在彈出窗口中回顯,並顯示已登錄界面。 但是,如果我單擊該站點的任何鏈接,則會丟失該會話,並將其重定向到登錄頁面。

我認為這是因為您的服務器正在發送請求,而遠程站點正在為您的服務器而不是為您創建會話。 因此,如果您單擊重定向到該遠程站點的鏈接,並且那里沒有活動的會話,則會提示您登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM