Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Curl和PHP创建经典的ASP会话变量_Php_Session_Curl_Asp Classic - Fatal编程技术网

使用Curl和PHP创建经典的ASP会话变量

使用Curl和PHP创建经典的ASP会话变量,php,session,curl,asp-classic,Php,Session,Curl,Asp Classic,我创建了一个简单的经典ASP脚本,它将从帖子中获取用户名和密码,并创建会话变量。如果我使用标准html表单并重定向到此页面,则该脚本工作正常。我有一个php网站,我想让用户在登录php网站时登录这两个网站。为此,我想在php中向登录脚本添加一个curl请求。这会将密码和用户名发送到脚本并创建会话变量。我从curl请求得到的响应表明它是有效的,但它似乎并没有保存会话 这是curl请求 $postinfo=“username=”..$username.&password=“..$password;

我创建了一个简单的经典ASP脚本,它将从帖子中获取用户名和密码,并创建会话变量。如果我使用标准html表单并重定向到此页面,则该脚本工作正常。我有一个php网站,我想让用户在登录php网站时登录这两个网站。为此,我想在php中向登录脚本添加一个curl请求。这会将密码和用户名发送到脚本并创建会话变量。我从curl请求得到的响应表明它是有效的,但它似乎并没有保存会话

这是curl请求

$postinfo=“username=”..$username.&password=“..$password;
$ch=curl\u init($url);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postinfo);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_VERBOSE,TRUE);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);
$result=curl\u exec($ch);
卷曲关闭($ch);
var_dump($结果);
我不想粘贴完整的asp脚本,但它大致就是这样工作的。当我使用html表单登录时,会话仍然存在,因此我知道它工作正常。当curl请求完成执行时,似乎已填充会话变量,但当我访问另一个页面时,会话不存在

“对数据库执行一些操作以检查凭据是否有效。
如果success=true,那么
会话(“userid”)=userid
会话(“登录”)=“良好”
Write(“登录成功-”&会话(“用户ID”))
其他的
Response.Write(“登录失败”)
如果结束
当我运行curl请求时,响应是“Login successful-123”。这意味着登录不仅可以工作,还可以设置会话值。问题是,当我尝试访问asp站点时,它没有检测到任何会话数据


我已经验证了所有链接都指向。这两个网站的域名相同,只有两个不同的子目录/语言。它们都在同一台服务器上运行

请注意,它指向一个
https
url初始登录请求是否也发生在https上(这显然是由php代码判断的)?如果没有,请在ASP会话属性中检查。理想情况下,尽管任何登录请求都应该通过https进行,但如果不是这样的话,应该是这样。是的,PHP脚本也在https上运行。我检查了设置,“安全连接上的新ID”=真。我确保所有的php和asp脚本都是正确的,因为我知道会话不会在https/http和子域之间共享。我应该在安全连接上禁用新ID吗?我至少会尝试一下,看看会话在不安全连接和安全连接之间切换时是否存在问题。不要担心PHP脚本不会影响会话管理,但ASP登录脚本会。如果不禁用新的id设置,则需要使用https在同一域中运行会话才能持久。您是如何开始的?仍然没有运气。为了排除ASP是原因,我尝试使用php做同样的事情,会话仍然没有正确保存。我甚至将脚本输出为绝对url,它匹配我想从中调用它的所有内容。脚本返回它正在运行的状态,这是我想要的,但是会话没有保存。注意,它指向一个
https
url初始登录请求是否也发生在https上(根据php代码判断,它看起来确实如此)?如果没有,请在ASP会话属性中检查。理想情况下,尽管任何登录请求都应该通过https进行,但如果不是这样的话,应该是这样。是的,PHP脚本也在https上运行。我检查了设置,“安全连接上的新ID”=真。我确保所有的php和asp脚本都是正确的,因为我知道会话不会在https/http和子域之间共享。我应该在安全连接上禁用新ID吗?我至少会尝试一下,看看会话在不安全连接和安全连接之间切换时是否存在问题。不要担心PHP脚本不会影响会话管理,但ASP登录脚本会。如果不禁用新的id设置,则需要使用https在同一域中运行会话才能持久。您是如何开始的?仍然没有运气。为了排除ASP是原因,我尝试使用php做同样的事情,会话仍然没有正确保存。我甚至将脚本输出为绝对url,它匹配我想从中调用它的所有内容。脚本返回它正在运行的状态,这是我想要的,但是会话没有保存。