我有一个HTML表单,被提交到PHP页面。 PHP页面需要验证验证码,然后将表单值传递给JSP页面。我无法控制JSP页面。 Captcha工作得很漂亮。我的PHP页面中有些东西丢失了,因为当它加载JSP页面上的信息时,目标页面的CSS和标题没有加载,表单数据也没有被传递。我无权访问JSP页面。有什么想法吗?
BTW,Captcha验证工作正常,如果我直接将它传递给JSP页面,HTML工作正常: <?php
require_once('recaptchalib.php');
$privatekey = "privatekeyhere";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("<p align='center'>The reCAPTCHA wasn't entered correctly. Please go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")</p>");
} else {
$ipaddress = $_SERVER["REMOTE_ADDR"];
$fname = $_POST['fname'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$h = curl_init();
curl_setopt($h, CURLOPT_URL, "//remote JSP page");
curl_setopt($h, CURLOPT_HEADER, true);
curl_setopt($h, CURLOPT_POST, true);
curl_setopt($h, CURLOPT_POSTFIELDS, array(
'fname' => '$fname',
'address' => '$address',
'city' => '$city',
'state' => '$state',
'zip' => '$zip',
'phone' => '$phone',
'email' => '$email',
));
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($h);
echo $result;
}
?>
答案 0 :(得分:1)
我可以立即发现的问题:
CURLOPT_POSTFIELD
必须是POST字符串,而不是数组。 对于第1点,这是David Walsh的一个简单的cUrl教程,涵盖了一个与你的非常相似的案例,并且包含了一种在POST字符串中转换数组的方法:http://davidwalsh.name/execute-http-post-php-curl
对于第2点,不评估'single quotes'
内的字符串。要引用变量,您应该使用$var
,而不是'$var'
。
奖励:POST / GET字符串中的任何内容都应该是urlencoded。