【发布时间】:2015-07-26 04:53:19
【问题描述】:
尝试一些简单的代码来处理 cURL 但没有幸运.. 我试图发布一个表单,但没有任何反应,也没有发生错误。
这是我的代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:8888/curl/home2.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'usuario=teste&senha=12345');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
print_r(curl_getinfo($ch));
echo curl_errno($ch) . '-' .
curl_error($ch);
echo $store;
当在 home2.php 表单上提交时,它应该转到另一个页面并返回一些数据。我是不是做错了什么?
--- 更新
这是我的简单 home2.php 代码:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form method="POST" action="login.php" id="formLogin" name="formLogin">
Usuario <input name="login" type="text">
Senha <input name="senha" type="text">
<input type="submit">
</form>
</body>
</html>
登录.php:
<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
if($login == "teste"){
echo "OK";
}
?>
我的结果应该是“OK”吧?
【问题讨论】:
-
这段代码看起来没问题。你能展示包括 home2.php 在内的完整代码吗?
-
尝试在curl_exec之前添加这两行
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); -
@spicydog 完成。更新了帖子。
-
@Mihai 同样的事情:(
-
您的错误似乎相当明显。您使用名为
usuario的“用户名”键发送 curl 请求,但您的表单需要login。您还需要提交给login.php而不是home2.php。当您通过浏览器在home2.php上提交表单时,实际发生的情况是浏览器将表单输入发送到login.php- 它永远不会发送到home2.php。