我想连接这个网站(https://ais.usvisa-info.com/en-ae/niv/users/sign_in)与cURL在PHP,但空白屏幕显示,没有错误。问题在哪里?
感谢代码:<?php
function login($url, $data){
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_TIMEOUT, 40000);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec ($login);
ob_end_clean();
curl_close ($login);
unset($login);
}
?>
<?php
echo login("https://ais.usvisa-info.com/en-ae/niv/users/sign_in", 'utf8=✓&authenticity_token=TEST&user[email]=test@yss.com&user[password]=12345&recaptcha_challenge_field=TEST&recaptcha_response_field=TEST&commit=Sing In');
?>
您正在回显登录结果。Login返回curl_exec($ Login)。由于调用了curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
,它将在成功时返回结果,在失败时返回FALSE
。如果没有错误,结果可能是一个空字符串(请查看服务器日志以确定)。
在这里阅读更多关于返回值的信息。
顺便说一下,return
完成了function
,之后的任何进一步的行都是完全不相关的。请将curl_exec
的结果存储到一个局部变量中,并在function
的末尾返回。