【发布时间】:2013-01-20 17:57:53
【问题描述】:
我有一个带有 cURL 的 PHP 脚本,它向 ASP 文件发出 POST 请求(不是我的,所以我无法更改它)。
我设置了一个从 Echo(Mac 的 HTTP POST 应用程序)收到的 Cookie (ASPSESSIONID),并在我的代码中使用它,但是当我更改我的 POST 变量时,它仍然返回与以前相同的数据,但是当我使用 Echo(使用相同的 Cookie)进行 POST 时,它可以工作,并接收新数据。当我现在用我的脚本提出相同的请求时,它也可以工作!没有 Echo 怎么办?
我的代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "Bgnm=3Ve&rst=$rst");
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Cookie: ASPSESSIONIDAACQRCDD=LAODBMKAPLDAJNILIKFGFPFP'));
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
普通的 HTML 表单(完全正常):
<form method="post" target="rechts">
<p align="center">
<br>Kies een basisgroep:<br>
<select name="Bgnm">
<option>1a</option><option>1b</option>
</select>
<br>
<br>Kies een roostersoort:<br>
<select name="rst">
<option selected="">Basisrooster</option>
<option>Rooster deze week</option>
<option>Rooster volgende week</option>
</select>
<br><br>en druk op deze knop:
<br>
<input type="submit" value="toon lessen en lijst">
</p>
</form>
我在 Echo 中的设置: Echo setup (image)
【问题讨论】:
-
没有代码很难说清楚,所以请告诉我们你做了什么,尤其是
but when I let Echo make the POST部分。调试它,向你的服务器发送请求也是个好主意。 -
尝试使用cookie文件而不是自己设置
-
您在帖子中提到的 cookie 名称与您在代码中设置的 cookie 名称不同;这有什么意义吗?
-
什么意思?当我不更改我的(POST)变量时,它可以工作。但是当我改变它时,ASP 仍然返回带有旧变量的数据。我不知道如何解决这个问题!
-
我添加了之前使用的 HTML 表单,效果很好!
标签: php asp-classic session-cookies