Эта проблема заставляет меня быть занятой всю неделю, и я почти ничего не нахожу в сети ...
То, что я хочу сделать, это просто ... на моем собственном веб-сайте создать PHP-скрипт на стороне сервераэто делает вход на другой веб-сайт с действительными учетными данными и загружает файл, который я хочу обработать.
Я использую curl_init (), curl_setopt () и curl_exec (), чтобы добиться этого.Это не работает.
Поэтому я сократил эту веб-страницу, чтобы выяснить, в чем дело.Как вы можете видеть в html-коде, событие action формы - это URL-адрес для извлечения файла, когда отправляются правильные учетные данные.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<form name="form1" method="post" action="http://otherwebsite/login.aspx?ReturnUrl=/export_file.aspx?id=xxxxxxx" >
<script type="text/javascript" language="JavaScript">
function Submit_Form()
{
document.form1.Login$UserName.value="myname";
document.form1.Login$Password.value="mypassword";
//document.form1.Login$LoginButton.click();
document.form1.submit();
}
</script>
<input type="hidden" name="Login$UserName" value="myname" />
<input type="hidden" name="Login$Password" value="mypassword" />
<input name="Login$LoginButton" type="submit" />
<br /><a href="javascript:Submit_Form();">Login</a>
</form>
</body>
</html>
Теперь вот где это становится странным.Если я нажимаю кнопку, она работает, и я получаю файл загрузки.Если я нажимаю гиперссылку, я получаю страницу с надписью, чтобы правильно войти в систему.Когда я раскомментирую строку javascript: click () она тоже работает.
Итак, все сводится к следующему: почему кнопка отправки работает, а отправка javascript не работает?Есть ли способ, чтобы сервер другого сайта проверял, как была размещена форма?Спасибо за ваши мысли!