Php 我可以使用CURL?

Php 我可以使用CURL?,php,session,curl,oauth-2.0,Php,Session,Curl,Oauth 2.0,我有2.php文件 第一个php创建一个会话: <?php session_start(); $_SESSION['ID'] = '1'; $_SESSION['NAME'] = 'ALIAS'; $_SESSION['TIME'] = time(); print_r($_SESSION); 我得到: {"status":1,"msg":ALIAS} 但是,当来自第三方的脚本: <?php $ch = curl_init('https://test.com.mx/p_se

我有2.php文件

第一个php创建一个会话:

<?php
session_start();
$_SESSION['ID']  = '1';
$_SESSION['NAME'] = 'ALIAS';
$_SESSION['TIME']   = time();
print_r($_SESSION);
我得到:

{"status":1,"msg":ALIAS}
但是,当来自第三方的脚本:

<?php 
$ch = curl_init('https://test.com.mx/p_session?access_token=b8bc45179e0c022a0a5e7738356549a3ebf3788c');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);     
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
$response = curl_exec($ch);
curl_close($ch);
print_r($response);

在PHP中使用会话时,会在客户端浏览器中设置会话cookie,其中包含会话id。 默认情况下,Curl不保存cookies,因此当您调用第二个文件时,它无法访问您的cookies

首先,您应该使用curl调用第一个url,获取它返回给您的cookies,然后使用这些cookies请求第二个url。而且,您甚至没有首先调用第一个文件,因此它甚至没有返回cookie。(尽管如此,如果没有选择,你也无法保持这种状态)

示例选项:

curl_setopt( $curl_handle, CURLOPT_COOKIESESSION, true);
curl_setopt( $curl_handle, CURLOPT_COOKIEJAR, $cookie);
curl_setopt( $curl_handle, CURLOPT_COOKIEFILE, $cookie);
您应该使用curl调用第一个url,保留cookies,然后调用第二个url。

相关的:


谷歌“curl-php-cookie”和类似的功能,但基本上就是这样。

我不认为
curl
可以使用当前的方法进行会话。尝试
print\r($\u会话);或者您可以尝试找出您已经设置的会话id,并使用
CURL
发送该id。CURL不会重复使用您的会话cookie,您必须手动附加它们看起来第三方脚本正在向第二个PHP文件发送请求,但会话变量正在第一个PHP文件中设置。因此,脚本将无法访问在第一个PHP文件中设置的值。我想知道的是,如果querystring中的键名不正确,为什么它返回的状态为1。。。。i、 e.您提供的URL拼写错误的access\u token为acces\u token。我知道这对你的问题没有帮助,但我确实觉得这很有趣。我尝试在同一个浏览器中使用我的应用程序数据进行第三次应用程序登录
<?php 
$ch = curl_init('https://test.com.mx/p_session?access_token=b8bc45179e0c022a0a5e7738356549a3ebf3788c');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);     
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
{"status":1,"msg":null}
curl_setopt( $curl_handle, CURLOPT_COOKIESESSION, true);
curl_setopt( $curl_handle, CURLOPT_COOKIEJAR, $cookie);
curl_setopt( $curl_handle, CURLOPT_COOKIEFILE, $cookie);