2011-12-14 99 views
0

得到SESSION_ID()我有卷曲几个问题:如何从卷曲

  1. 我需要使用session_start()与卷曲?

  2. 如果不是,我如何从cURL获得session_id()

  3. 什么时候产生了session_id()

  4. 初始化cURL会话(curl_init)和执行cURL会话(curl_exec)有什么区别?

+2

你想完成什么? PHP会话和cURL并没有太大的关系。 – 2011-12-14 18:47:00

+2

你能解释你想完成什么吗?在这个问题中,你认为会话和cURL没有任何共同之处。 – Lars 2011-12-14 18:47:29

回答

0

卷曲是建立到服务器(就像你的web浏览器一样)连接一个库,没有session_id可言(因为它只是检索客户端所看到的和session_id()将是一个服务器端的方法) 。

就是说,通常是会话ID可以在请求的标头中找到,例如Set-Cookie标头(或有时在URL本身中)。因此,如果您需要确定会话,我将着眼于使用cURL的Cookie Jar功能,或确保检索标题的内容,以便您可以查看Set-Cookie的值。

后续:

  • curl_init正在建立一个新的卷曲请求。基本上,它会创建一个新的cURL实例,然后您可以使用众多的curl_setopt设置进行配置。
  • curl_exec是根据您的配置执行cURL请求并返回结果。根据您的设置,这可能是您要进行的实际内容,一组标题,单个状态结果或其他值。

<?php 
    // create a new instance of curl we can configure 
    $curl = curl_init('http://google.com'); 

    // begin configuring that instance 
    curl_setopt($curl, CURLOPT_COOKIE, 'PHPSESSID=12345ABCDE67890'); 

    // now fire off the result, with the specified cookie attached 
    // (in this case, it's fetching google.com with a cookie named PHPSESSID 
    // and a value of 12345ABCDE67890) 
    $result = curl_exec($curl); 
0

PHP会话Cookie中默认transmited,如果通过卷曲得到网页,并试图访问同一网页的另一部分,则必须添加你从了会议cURL

0

您可能需要考虑将用户从一个站点切换到另一个站点并仍保持其“登录”状态的替代解决方案。

我张贴类似的话题的响应,你可能想看看:Session lost when switching from HTTP to HTTPS in PHP

概括地说,你可以创建一个哈希键,将用户重定向到站点B,查找哈希键,如果他们排队将用户登录到siteB。

0

首先,会话和cURL是完全不同和不相关的东西。会话就像当前用户的服务器端缓存。 cURL是一种用PHP发送HTTP请求的方式,例如GET和POST。一些API需要使用cURL从您自己的PHP脚本/代码中与它们进行交互。

session_id()函数用于获取或设置当前用户的当前会话ID。如果你想设置的会话ID 7例如,你会打电话

session_id(7); 
session_start(); 

如果你想获取会话ID,你会打电话

session_start(); 
$CurrentSessID = session_id(); 

,当你调用生成会话ID session_start(),除非在调用session_start()之前自己设置它。