【问题标题】:Advanced cURL and PHP高级 cURL 和 PHP
【发布时间】:2011-02-22 15:34:47
【问题描述】:

几个小时前我提出了一个类似的问题,但我想我在那里问了一个错误的问题。这个更准确。

我在 PHP 上使用 cURL,我想使用一个站点,但是每次我更改我的站点时,浏览器都会向服务器发布一个值 x,如果你不这样做,你就不能去网站。

你可以从图片中看到x值一直在变化,它是一个FireFox Live HTTP headers插件,它显示了我用浏览器访问了哪些页面

我查看了源代码,发现 x 值是什么,它来自 javascript。我可以通过 cURL 或其他方式从服务器获取值吗?

date = new Date();
    ms = (date.getHours() * 24 * 60 * 1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds() * 1000) + date.getMilliseconds();

所以主要问题是 x 值一直在变化,它必须是完全“正确”的值,即使是毫秒也必须是正确的。我尝试用 javascript 自己找到值,然后将其放入 php,但仍然无法正常工作

【问题讨论】:

  • 您可以添加您的代码以便我们了解您的意思吗?
  • 好吧,假设我的页面是 www.google.com ,我想去 www.google.com/test.php .. 当我点击链接时,浏览器会发布一个值“x”从我的图片中可以看到自动浏览器? ,我认为他们是这样创建网站的,但是当我使用 curl 时,然后当我使用 curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/test.php?x=VALUE') 时,所以这个帖子为我发布了 x。你明白我的意思吗,我知道它非常模糊,但我尝试解释

标签: javascript php html curl


【解决方案1】:

原因很简单,你混在$_POST$_GET之间

检查您的 PHP 确保引用/使用 $_GET['x']

【讨论】:

  • 好吧,假设我的页面是 www.google.com ,我想去 www.google.com/test.php .. 当我点击链接时,浏览器会发布一个值“x”从我的图片中可以看到自动浏览器? ,我认为他们以这种方式创建了他们的网站,但是当我使用 curl 时,当我使用 curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/test.php?x=VALUE') 时,这会为我发布 x。为什么我需要使用GET,你明白我的意思吗,我知道它很模糊,但我试着解释一下
  • 你正在做一个 POST 请求而不是 GET 请求,取决于目标脚本来响应,如果脚本使用 $_POST['x'],你希望它如何工作?
  • 因为它以前在网站上工作过,但现在他们添加了 x 变量,我只需要为它获取正确的值
【解决方案2】:

javascript 所做的只是在客户端计算当前时间(以毫秒为单位)并将其发送到服务器。您可以使用$ms = time() * 1000; 在 php 中轻松计算出这样的时间

【讨论】:

  • 好的,但是为什么我得到不同的结果呢?我的代码和输出PICTURE
  • 好吧,好吧,你的 JS 代码示例读错了。它只返回自当天午夜以来的毫秒数。在 PHP 中是 $ms = floor(((date('H') * 24*60*60) + (date('i') * 24*60) + date('s')) * 1000 + (date('u') / 1000));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多