- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
尽我所能,我无法让 curl 传递 PHPSESSID
cookie。我的设置与其他几个人所描述的设置类似,但我无法使任何建议的解决方案发挥作用。
我有一个页面向 pageA.php
发送获取请求。 pageA.php
需要来自位于另一台服务器上的 pageB.php
的一些信息,因此我正在使用 curl。 pageB
维护我需要进出我的页面的 session 状态。
我可以将其他 cookie 从 pageA
传递到 pageB
,只是不能传递 PHPSESSID
cookie。
以下工作(cookie 到达 pageB
):
$options[CURLOPT_COOKIE] = "myPHPSESSID=". $sessionId;
以下不是:
$options[CURLOPT_COOKIE] = "PHPSESSID=" . $sessionId;
(我构建了一个 $options 数组,然后将其传递给 curl_set_opt_array
)
事实上,后者会导致某种我无法辨别的错误,因为我对 curl_exec
的调用永远不会返回(并且永远不会到达 pageB
)。
我试过设置 header 而不是使用 CURLOPT_COOKIE,但也没有成功:
$options[CURLOPT_HTTPHEADER][] = "Cookie: myPHPSESSID=" . $sessionId;
上面的工作正常但是
$options[CURLOPT_HTTPHEADER][] = "Cookie: PHPSESSID=" . $sessionId;
没有。
PHP 显然不希望我手动设置 PHPSESSID。我不确定它是否相关,但我从未在 pageA 上调用 start_session()
(尽管我尝试这样做并得到了相同的结果)。
我意识到我可以(可能)将 session ID 作为一个不同名称的 cookie 传递,并让 pageB 调用 set_session_id()
或类似的东西。但我真的很想知道为什么我正在做的事情不起作用,因为我宁愿修复我做错的事情也不愿创建解决方法。如果有帮助,我可以提供一些正在 ping 的各种 header 的转储,但我认为这个问题现在已经足够长了。
谢谢...
最佳答案
在 curl_exec 之前调用 session_write_close();
。
这救了我的命:http://kmak.1funkybit.com/?p=126 (阅读解释)。
例子:
<?php
session_start();
var_dump($_SESSION); //See what's in session
echo "<br>";
$c = curl_init('http://192.168.100.204/logintest/index.php?r=AccessTest/CheckAcess');
$parametros_post = 'action=verChau';
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $parametros_post);
curl_setopt($c, CURLOPT_VERBOSE, TRUE);
curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID']);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
session_write_close();
$page = curl_exec ($c);
echo "<br>";
echo "<br>";
echo $page;
curl_close ($c);
?>
关于php - curl 不传递 phpsessid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15627217/
我有一个 iOS 应用程序向基于 PHP 的 Web 服务发送请求,过去一切正常,但最近我一直在丢失 session 。 我检查了 cookie 并注意到 PHPSESSID 在我发送的每个请求上都发
正如标题所说,我想知道,因为它无法识别 DB_Functions 类中的 $sessionID 变量。 当我检查表时,除了变量 sessionID 之外的所有字段都已存储。 最佳答案 两种方式修复:
我对 PHPSESSID 漏洞感到困惑。如果我将 document.cookie 更改为另一个活跃用户的(在像 youtube 或 instagram 这样的简单社交媒体网站上 [只是一个例子])PH
Psudeocode 或 PHP 代码可取。更好地引用了手动生成 PHPSESSID 的组件和过程。 最佳答案 生成sssion ID的代码是here - 但它是 C,因为这就是 PHP 本身的实现方
我正在将 PHPSESSID 传递到 PHP 页面(通过 POST),我想知道清理输入的最佳方法是什么。 mysql_real_escape_string 就足够了吗?在处理 session ID 时
在我当前的应用程序中,PHPSESSID Cookie 被发送了多次。这是一个示例响应: HTTP/1.1 200 OK Date: Tue, 11 Jun 2013 08:18:29 GMT Ser
保存 session ID 的 PHPSESSID 变量没有保存到客户端 cookie 中。这导致我每次调用 session_start() 函数时都会生成一个新的 session ID。 当我使用
我有一个用 PHP 编写的登录表单,每次我启动浏览器并转到相应的页面时,表单的第一个字段是这样的: 如果我关闭窗口,但不重新启动浏览器,则不会发生这种情况。知道发生了什么以及为什么吗? 谢谢! 表单
问题更新: 在某些浏览器上,我们有两个 PHPSESSID。 我没有在我的脚本中的任何地方设置一个 PHPSESSID 它的 HOST(而不是我设置的 PHPSESSID 的 DOMAIN)为 www
想知道如何将 PHP session ID 从 PHPSESSID 更改为其他内容,以便它不会干扰在同一域上运行的其他 PHP 脚本。这可能吗? 谢谢你的时间 最佳答案 查看此链接以获取 PHP ru
我在玩 cookies 。而且我没有任何名为 PHPSESSID 的 cookie。 我需要吗?我可以删除它吗? 它的“功能”是什么? if (count($_POST)) { setcookie("
我们在 PHP session Cookie 方面遇到了一些问题,无法登录到我们的 *SugarCRM** 应用程序,该应用程序是开源 PHP 应用程序。 问题是我们在 2 个子域上安装了相同的应用程
我想执行一些帖子,但这篇帖子需要 PHPSESSID 和一个参数。如果我从浏览器获取此参数并在我的代码中执行,则一切正常。不幸的是,当我使用我的代码获取“PHPSESSID”和参数的页面内容和 coo
尽我所能,我无法让 curl 传递 PHPSESSID cookie。我的设置与其他几个人所描述的设置类似,但我无法使任何建议的解决方案发挥作用。 我有一个页面向 pageA.php 发送获取请求。
我注意到每天有多个用户被分配相同的 session_id。我现在使用的是 php 7.2,但回顾用户 session 的历史记录,自从我使用 php 5.4 以来一直在发生这种情况。 我只是使用 ph
我想知道出于安全目的是否值得使用 session_name() 函数将默认的 phpsessid 重命名为散列或加密的 id? 如果是这样,实现它的最佳方式是什么? 谢谢, 最佳答案 网上有很多关于此
我开始使用 Retrofit 2。我发现当我有一个新的 Activity 或 fragment 时,我的 PHP session ID 发生了变化。如何保持同一个 session ? 此外,我想在每个
我的 Symfony2 应用程序在我登录时替换了我的 PHPSESSID cookie。这是预期的行为吗?这对我来说毫无意义……为什么不保留相同的 PHPSESSID? 这里有更多细节。 要登录到我的
有关 PHPSESSID cookie 命名的最佳做法是什么? Symfony2 允许您通过配置更改它,您也可以在 php.ini 的 session.name 中更改它。 你为什么要这么做? 最佳答
我已经在这里工作了一天,但似乎没有任何效果。我想做的是:更改 session cookie PHPSESSID 的到期时间,选中特定复选框时,我该怎么做?我试过: ini_set() session_
我是一名优秀的程序员,十分优秀!