两个 Perl 脚本之间的 cgi 会话

2024-03-23

我在我的网站中使用了两个 Perl 脚本。我在侧面有一个搜索字段,它调用第一个脚本,结果写入输出文件中。 下一次单击时,用户调用第二个脚本,该脚本读取输出文件并根据用户搜索构建配置文件。 目前我只在输出文件上写入,但我需要使用会话 ID 来个性化该文件。

我正在尝试使用 CGI::Session 进行此操作,但我不知道如何使用这两个 Perl 脚本进行此操作。我想我需要比较会话 ID,并为每个会话编写一个输出文件。

你们中有人知道如何做到这一点吗?

第一个脚本: 在将会话写入文件中:

my $session = new CGI::Session(undef, $cgi, {Directory=>"/usr/local/path/"});

然后向客户端发送cookie:

my $cookie = $cgi->cookie(CGISESSID => $session->id );

第二个脚本: 尝试获取会话 ID:

$sid = $cgi->cookie("CGISESSID") || undef;
print $sid 

它给出了一个Status: 500.


您需要将会话 ID 传递给客户端,以便客户端在以后的请求中将其返回给您。这通常是使用 cookie 来完成的。

use utf8;
use open ':std', ':encoding(UTF-8)';

use CGI          qw( -utf8 );
use CGI::Session qw( );

use constant SESSION_DIR    => '...';
use constant SESSION_EXPIRE => '+12h';  # From last use (not creation)

my $cgi = CGI->new();

my $session = CGI::Session->new(
   'driver:file',
   scalar($cgi->cookie('session_id')),
   { Directory => SESSION_DIR },
);
$session->expire(SESSION_EXPIRE);

# Whatever your page does
my $count = $session->param('count');
++$count;
$session->param(count => $count);
my $content = "This is request $count";

print
   $cgi->header(
      -type    => 'text/html',
      -charset => 'UTF-8',
      -cookie => $cgi->cookie(
         -name => 'session_id',
         -value => $session->id,
         -expires => SESSION_EXPIRE,
       ),
   ),
   $content;

这里只显示了一个脚本,但显然没有什么可以阻止两个脚本访问同一会话(如果它们可以访问同一会话存储)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个 Perl 脚本之间的 cgi 会话 的相关文章

  • WebSphere 中跨 JVM 的会话复制

    我们建立了一个基础设施 其中网络服务器是集群的 而应用程序服务器不是 Web 服务器根据循环策略将请求路由到应用程序服务器 在这种情况下 一个应用程序服务器中可用的会话数据在另一应用程序服务器中不可用 无论如何 是否可以使来自第一个应用程序
  • OWIN中间件可以使用http会话吗?

    我有一些为 ASP NET 和 SignalR 复制的代码 我决定将其重写为 OWIN 中间件以删除这些重复 一旦我运行它 我注意到HttpContext Current Session为空 并且我没有看到任何会话对象IOwinContex
  • Symfony2 功能测试会话持久性

    我正在尝试在 Symfony 中进行一些功能测试 但目前我的会话遇到了问题 我执行了一段代码 它似乎有效 但容器的会话中没有存储任何内容 我有一个表格 您可以在其中设置数据 当您提交它时 它会检查值并将其存储在会话中 然后它重定向到另一个页
  • 使用 jquery 通配符检查 cookie 名称

    我有一个生成动态 cookie 的表单 例如 webform 62 1234356 62 1234356 可以是任意数字 我需要使用一些通配符检查来检查名称以 webform 开头的 cookie 是否存在 下面不起作用 if cookie
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • unix df 上的正则表达式帮助

    我需要一些帮助来调整我的代码以查找此 UNIX 中的另一个属性df output Ex Filesystem Size Used Avail Capacity Mounted on dev ad4s1e 61G 46G 9 7G 83 ho
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • Perl YAML 模块无法识别标量类型

    我加载以下 yaml 文件 foo bar s 1 hx 0x34 用这段代码 use YAML qw LoadFile Dump use Data Dumper my d LoadFile test yaml print Dumper d
  • 将 cookie 设置为在当天结束时过期

    我想设置一个 cookie 并让它在一天结束时过期 这有效 但 24 小时后过期 setcookie route upgrade voted true time 86400 这不起作用 setcookie route upgrade vot
  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • 将 HTML 转换为 Excel 的最佳方法是什么

    我有一个 HTML 页面 其中包含 Flash 图表 FusionCharts 和 HTML 表格 我需要将这整个事情转换成Excel HTML 表格应显示在 Excel 工作表的单元格中 Flash 图表可以显示为图像 我们可以使用任何开
  • 会话cookie太大烧瓶应用程序[重复]

    这个问题在这里已经有答案了 我正在尝试使用会话 本地 加载某些数据 并且它已经工作了一段时间 但是现在我收到以下警告 并且不再加载通过会话加载的数据 b session cookie 太大 该值是 13083 字节 但是 标头需要 44 个
  • 如何使用Python3、Selenium Chrome WebDriver在第一次请求之前预加载cookie?

    是否可以使用添加cookieadd cookie 对于一个域 比如说stackoverflow com在使用 Selenium Chrome WebDriver 进行实际请求之前get 到域上的页面stackoverflow com 尝试时
  • 打包 Perl 应用程序,以便它可以在 Perl 的默认前缀之外工作

    我正在使用 Module Build 尽管我在构建环境上很灵活 来打包我正在编写的一些 Perl 软件 供我工作的内部使用 它包括一些脚本和一些辅助模块 我的计划是这样你就可以指定任何你想要的前缀 即perl默认值之外的东西 INC 在构建
  • Redis 会话序列化器 3.2 和 4.2 之间不匹配

    我有一个基于 Spring Cloud 的应用程序在多个 spring boot 服务器上运行 所有服务器使用 EnableRedisHttpSession共享相同的Spring Session 我现在想将第三方小部件集成到我的应用程序中
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • 在 iFrame 内维护会话状态

    不确定我是否疯了 但我在 iFrame 内的会话状态遇到问题 它是一个域在另一个域中的简单设置 我不需要跨域共享任何内容 我想做的就是将一个网站嵌入到另一个网站中 并且我希望该嵌入网站能够使用 cookie 会话状态登录 编辑 更新 等 为
  • 在perl中更改多维哈希的第一个键

    我在 perl 中有一个多维哈希 我想更改所选值的第一个键 例如 我有哈希 my Hash1 Hash1 1 12 1 Hash1 1 10 1 Hash1 2 31 1 Hash1 3 52 1 Hash1 3 58 1 Hash1 4

随机推荐

  • C# 中套接字重用有什么好处

    我正在开发开源套接字服务器库 https sourceforge net projects socketservers https sourceforge net projects socketservers 我想向这个库添加套接字重用功能
  • Android 的新 Jack 编译器真的那么慢吗?

    在我的一些 Android 项目中 我发现自从使用新的 Jack 编译器以来 构建速度变得相当慢 我需要它来使用 lambda 等 Java 8 功能 但漫长的建设时间有点令人不安 所以我建立了一个新的Android项目 它只包含一个Mai
  • 在内存中强制渲染 WPF 控件

    我有以下代码 void Test currentImage Source GetBitmap RenderTargetBitmap rtb new RenderTargetBitmap 100 100 96 0 96 0 PixelForm
  • EMR 5.21、Spark 2.4 - Json4s 依赖关系已损坏

    Issue 在 EMR 5 21 中 Spark Hbase 集成已损坏 df write options format save 失败 原因是 Spark 2 4 中的 json4s jackson 版本 3 5 3 EMR 5 21它在
  • 使用 pytest 运行trace.py

    我正在尝试使用trace py跑步时pytest 我知道pytest有自己的覆盖率插件pytest cov但限制 每行执行的次数不可用 不允许我现在使用它 同样对于coverage py 我正在尝试这个命令 python3 4 m trac
  • 使用 WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH 获取所有 MotionEvent

    我的问题直接涉及到这个question https stackoverflow com q 4481226 394933 这个问题的答案表明了如何创建一个ViewGroup 将其嵌入到WindowManager 并允许WindowManag
  • Asp.net 自动完成扩展器不工作

    我想让文本框使用数据库自 动完成 我使用了以下代码 但在输出扩展器中显示了 html 代码 它甚至不执行函数后面的代码 我使用的以下代码无法正常工作 ASPx 页面
  • 如果项目存在于另一个数组中,则从数组中删除它们[重复]

    这个问题在这里已经有答案了 假设我有以下两个包含整数的 PHP 数组 foo array 1 5 9 14 23 31 45 bar array 14 31 36 我想删除其中的项目 foo其中存在相同的值 bar 所以这个过程的结果将创建
  • Wix引导程序

    我使用 WPF 编写了一个托管 wix 引导程序 实际的安装步骤需要链接多个 msi exe 和批处理文件
  • 最终方法是内联的吗?

    Java的final方法会自动内联吗 很多书说可以 很多书说不 方法的内联由 JIT 编译器执行 而不是 javac 现代 JIT 编译器 包括 Hotspot 通常甚至可以内联非最终方法 并在必要时适当地 撤消 优化 他们基本上非常聪明
  • python 中具有等式约束的 L1 凸优化

    我需要在 Mx y 的情况下最小化 L 1 x x 是维度为 b 的向量 y 是维度为 a 的向量 M 是维度为 a b 的矩阵 经过一番阅读后 我决定使用 scipy optimize minimize import numpy as n
  • 将 AWS Chime 集成到 Java 应用程序中

    我正在尝试构建一个 Java Spring 启动应用程序 用于使用 AWS Chime 创建 加入和聊天 我已经浏览了 chime 提供的演示代码 但由 node js 运行 任何人都可以帮助我如何使用 mvc 集成和使用 chime 的
  • 使图像完全填充div而不拉伸

    我有不同尺寸的大图像 需要在两个尺寸上完全填充 240 像素 x 300 像素的容器 这是我现在得到的 仅适用于一维 http jsfiddle net HsE6H http jsfiddle net HsE6H HTML div clas
  • SVG 异物大小不一致

    我正在尝试在 SVG 中创建 2 个 html 对象 并在 Vis js 图表中进一步使用它们 我的第一个 svg 按钮 按预期工作并且看起来不错 我的问题是 当我尝试插入表格 div 时 宽度 高度不是我设置的值 这是我得到的 正如您所看
  • 为输入范围生成红色和绿色之间的颜色[重复]

    这个问题在这里已经有答案了 可能的重复 基于数字的颜色编码 https stackoverflow com questions 5533297 color coding based on number 我希望用户能够从 1 100 的范围内
  • 如何在 Nest js 中使用 fastify-adapter 配置速率限制

    我刚刚开始实现 API 的 Nest js 并且正在使用 Fastify 适配器 我需要帮助在 Nest JS 中使用 FastifyAdapter 配置速率限制 async function bootstrap const app awa
  • 对 super 的调用必须是构造函数中的第一个语句,但它是

    我不断收到错误消息 调用 super 必须是构造函数中的第一个语句 问题是它is我的构造函数中的第一条语句 public void CheckingAccountCustomer int a super n p b accountNo a
  • 将简单的 MFC CView/CDocument/CSingleDocTemplate 应用程序转换为 ActiveX 控件

    我有一个相当简单的 MFC 应用程序 它只定义了自己的子类CDocument CView and CFrameWnd并通过使用它们CSingleDocTemplate在视图的树中显示文档的只读内容 都是非常标准的MFC MVC 我现在需要转
  • TreeSet 如何检查重复项

    我正在检查 TreeSet 如何检查重复元素并具有以下代码 import java util public class TreeDemo public static void main String args new TreeDemo go
  • 两个 Perl 脚本之间的 cgi 会话

    我在我的网站中使用了两个 Perl 脚本 我在侧面有一个搜索字段 它调用第一个脚本 结果写入输出文件中 下一次单击时 用户调用第二个脚本 该脚本读取输出文件并根据用户搜索构建配置文件 目前我只在输出文件上写入 但我需要使用会话 ID 来个性