【问题标题】:Programmatically access & post a form that requires session以编程方式访问和发布需要会话的表单
【发布时间】:2009-12-01 22:29:28
【问题描述】:

我正在尝试使用 PHP 和 cURL 来:

  1. 访问网络表单并维护会话
  2. 将数据发布到带有会话的表单

在我的脑海中,我将其视为两个独立的功能,一个用于获取表单(启动会话),另一个用于发布数据。

【问题讨论】:

  • 是的。问题是什么?

标签: php session post curl


【解决方案1】:

您可以从 php 执行命令行调用 curl 以将 cookie 保存到文件中,如下所示:

curl -c '/tmp/mycookies.txt' 'http://www.site.com/login.php

然后在提交到页面时使用这些 cookie,如下所示:

curl -b '/tmp/mycookies.txt' -d 'uname=MyLoginName&pass=MyPassword&action=login&x=67&y=11' 'http://www.site.com/login.php'

有关这些命令行标志的更多信息:

【讨论】:

  • 谢谢你;但我现在注意到,当我使用 cURL 时,我得到了 302 重定向。但是,不是当我使用网络浏览器时。该页面似乎也在寻找标题。
【解决方案2】:

您会找到this page helpful。特别是,请查看 CURLOPT_COOKIE、CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR。

您应该能够在同一个 php 文件中发出 2 个 curl 请求,一个启动表单(并获取您的会话 cookie,然后将其放入您的 cookie 文件中),另一个发布您的请求(使用相同的 cookie)。

查看该页面下方的 cmets 以获取示例。您可能还想看看网上流传的 paypal curl 示例,它们几乎可以满足您的需求。

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多