【问题标题】:Generate and save a custom cookie on the serverside在服务器端生成并保存自定义 cookie
【发布时间】:2011-06-30 20:48:42
【问题描述】:

我想生成一个具有特定名称/值的 cookie(在服务器端,因此不会有任何浏览器)并将其保存在文本文件中(例如使用 fopen )。稍后我打算将该 cookie 与 cURL 一起使用。问题是我不明白 cookie 格式是什么以及我应该如何保存它。当我查看 cURL 保存的 cookie 时,我有类似的东西

# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.example.com   FALSE   /       FALSE   0       ASP.NET_SessionId       3ddldk5iccxrj45fsl2ctrd
www.example.com   FALSE   /       FALSE   32522347      sccouscIX       548913113

我不明白空格以及我应该使用什么方法来生成有效的 cookie 。作为概念证明,我想生成一个简单的 cookie,名称为:exampleId,值为 000000000

exampleId   000000000   /   www.example.org

更新只是为了确保问题得到理解:我需要生成一个自定义 cookie,而不是使用其他网站生成的 cURL。 我还在 curl 网站上找到了Original Netscape cookie specification

【问题讨论】:

  • 明确地说,特定网站访问者或服务器与之联系的任何网站访问者是否可能使用此 cookie?问题的原因是您可能必须弄清楚如何将正确的 cookie 分配给正确的网站访问者,以确保您不会与错误的访问者共享错误的信息,如果以这种方式使用,例如每个访问者 1 个文件用于 cookie 存储

标签: php cookies curl libcurl httpcookie


【解决方案1】:
【解决方案2】:

我认为http://coderscult.com/php/php-curl/2008/05/20/php-curl-cookies-example/ 具有演示您正在寻找的内容的代码。

【讨论】:

  • 因为我已经回复了 sam 并更新了问题以明确表示我不需要使用 cURL 获取 cookie。在您给我的示例中,cURL 脚本访问一个页面并保存该页面/站点提供的 cookie。但是我需要手动生成一个 cookie(使用我需要的值)但不幸的是我还没有找到/理解什么是 cookie 标准。
【解决方案3】:

您无需手动解释 cookie 文件。 Curl 可以设置 cookie,将其存储在您指定的位置,并从中加载数据。我想你是在 php.ini 中执行此操作的。 php.net 网站在这方面提供了很好的文档。
这是我所做的
HTTP LIVE 标头 Firefox 的插件
当你调用 url(比如登录 url)时,这个插件会告诉你所有你需要发布的内容。
当您使用这些 post 值(在 curl_set_opt 中设置)调用 url 时,curl 会将相关数据存储在您指定的 cookie 文件中。
在您随后的通话中,您告诉 curl 加载此 cookie。

【讨论】:

  • @sam 我知道如果您设置选项,cURL 会自动生成 cookie,但我想生成一个自定义 cookie,而不是让其他网站生成一个。
  • 自定义cookie是指cookie中的自定义数据还是?
  • @sam 正是我所要求的。在我的问题中,我要求提供一个简单的概念证明(例如 exampleId 000000000 / www.example.org )
  • @sam 我知道 setcookie();但是如何以正确的格式保存它?
  • 我最近有一个项目,我想要一个脚本来登录并从网页获取数据。我尝试手动修改 cookie 中的数据,但没有成功。正如您所提到的,空格和其他字符必须意味着正确解释 cookie 的含义。 cookie 必须由 curl 设置才能工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 2016-09-13
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多