我对cURL有几个问题:
我是否需要将session_start()
与cURL一起使用?
如果没有,我如何从cURL获取session_id()
?
何时生成session_id()
?
初始化cURL会话(curl_init
)和执行cURL会话(curl_exec
)之间有什么区别?
答案 0 :(得分:0)
cURL是一个用于建立与服务器的连接的库(就像您的Web浏览器一样)并且没有session_id
可以说(因为它只是检索客户看到的内容和session_id()
将是一个服务器端方法。)
话虽如此,通常会话ID可以在请求的标题中找到,例如Set-Cookie
标题(或者有时在URL本身中)。因此,如果您需要确定会话,我会查看使用cURL的Cookie Jar功能,或确保使用标题检索内容,以便您可以查看Set-Cookie
值(s )。
后续:
curl_init
正在建立新的cURL请求。基本上,它会创建一个新的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);
答案 1 :(得分:0)
答案 2 :(得分:0)
您可能需要考虑另一种解决方案,解决将用户从一个站点切换到另一个站点并仍保持“登录”状态的问题。
我发布了对您可能要查看的类似主题的回复:Session lost when switching from HTTP to HTTPS in PHP
简而言之,您可以创建一个哈希键,将用户重定向到siteB,查找哈希键以及它们是否排队,将用户登录到siteB。
答案 3 :(得分: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();
当您调用session_start()时会生成会话ID,除非您在调用session_start()之前自己设置它。