尽我所能,我无法让curl传递PHPSESSIDcookie.我有类似于其他几个人描述的设置,但我无法使任何提议的解决方案有效.
我有一个发送get请求的页面pageA.php. pageA.php需要一些来自pageB.php另一台服务器的信息,所以我使用curl. pageB维护我需要进入和从我的页面进入的会话状态.
我能够将其他cookie传递pageA给pageB,而不是PHPSESSIDcookie.
以下作品(cookie到达pageB):
$options[CURLOPT_COOKIE] = "myPHPSESSID=" . $sessionId;
以下不是:
$options[CURLOPT_COOKIE] = "PHPSESSID=" . $sessionId;
Run Code Online (Sandbox Code Playgroud)
(我构建一个$ options数组,然后将其传递给curl_set_opt_array)
事实上,后者会导致我无法辨别的某种错误,因为我的呼唤curl_exec永远不会返回(并且pageB永远不会到达).
我已尝试设置标头而不是使用CURLOPT_COOKIE,但也没有成功:
$options[CURLOPT_HTTPHEADER][] = "Cookie: myPHPSESSID=" . $sessionId;
Run Code Online (Sandbox Code Playgroud)
上面的工作很好但是
$options[CURLOPT_HTTPHEADER][] = "Cookie: PHPSESSID=" . $sessionId;
Run Code Online (Sandbox Code Playgroud)
才不是.
PHP显然不希望我手动设置PHPSESSID.我不确定它是否相关,但是在任何时候我都没有打电话给我start_session()(尽管我试过这样做并且得到了相同的结果).
我意识到我可以(可能)只是将会话ID作为一个不同名称的cookie传递,并具有pageB调用set_session_id()或类似的东西.但我真的想知道为什么我正在做的事情不起作用,因为我宁愿修复我做错的事情而不是创建一个解决方法.如果有帮助的话,我可以提供各种标题的转储,但我觉得这个问题已经足够长了.
谢谢...
我很想知道PHP中是否存在以下行为.并且,如果它是预期的,通过在空变量中创建一个索引来初始化一个数组被认为是可接受的(如在第一个代码片段中所做的那样)?
error_reporting(E_ALL);
$arr = null;
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
$arr["blah"] = "somevalue";
echo "<br>";
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
var_dump ($arr);
Run Code Online (Sandbox Code Playgroud)
这输出
null
somevalue
array (size=1)
'blah' => string 'somevalue' (length=9)
Run Code Online (Sandbox Code Playgroud)
但是,如果首先初始化数组(参见下面的代码),我会得到完全相同的输出,但是当我第一次尝试时会给出"未定义的索引"通知 $arr["blah"]
error_reporting(E_ALL);
$arr = array();
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
$arr["blah"] = "somevalue";
echo "<br>";
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
var_dump ($arr);
Run Code Online (Sandbox Code Playgroud) 我将 plpgsql 与 Postgres 10.6 一起使用。我有一个函数声明变量并为其赋值。该函数还定义了一个视图,我想在定义中使用该变量。
create view myview as
select
some_columns
from
mytable
where
id = _id /*_id is declared earlier in function */
;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可以定义该函数,但运行时会出现错误:UndefinedColumn: column "_id" does not exist
在 Postgres 中这样的事情可能吗?视图可以包含变量作为其定义的一部分吗?
我确实在这里看到,在 BigQuery (我从未使用过)中,我所要求的是不可能的,这让我认为这在 plpgsql 中也可能是不可能的。
这没什么大不了的,但我很好奇。一种解决方法 - 可能也是推荐的解决方案 - 是当我从视图中选择时传递 _id (例如select * from myview where id = 3)。或者,如果我真的想让 select 调用保持简单(我这样做,因为我的实际实现更复杂并且有多个变量),我可以将视图定义为字符串并execute在函数中使用(这是所有使用的内部内容)在构建和创建数据库时,而不是在担心动态 sql 固有的各种风险的情况下)。
我不小心将一个本地目录添加到我当地的Git仓库.
git add dirName
Run Code Online (Sandbox Code Playgroud)
它在该目录中添加了20个左右的文件.我不希望他们添加.以前从未添加过它们,我没有提交它们.相反,我删除它们:
git rm -rf dirName
Run Code Online (Sandbox Code Playgroud)
这成功地从repo中删除了它们,但令我沮丧的是,该目录似乎也已从磁盘中删除.它们不在我的回收站中.
有没有办法让这些文件恢复?当然,我有备份,但自上次备份以来,我对文件做了很多更改.