繁体   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