Я хочу войти в мою Horde Webmail автоматически через phpcurl, а затем отобразить все мои электронные письма.
Пока мой логин работает отлично.
Я вхожу с учетными данными и Cookies.
В чем проблема?
Я показываю свою панель инструментов, но без данных. Вот скриншот, как это выглядит:
Какой вывод ошибок я получу?
В консоли это говорит:
Failed to load resource: the server responded with a status of 404 (Not Found)
Вот скриншот моей консоли:
Какой код я использую до сих пор?
//Data
$webmail_login = "http://webmail.licht-austria.at/login.php";
$webmail_mailbox = "http://webmail.licht-austria.at/imp/dynamic.php?page=mailbox";
$login = "";
$password = '';
$postdata = "login_post=1&horde_user=$login&horde_pass=$password&horde_select_view=auto&new_lang=de_DE";
//Curl Login POST
$ch = curl_init();
$agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, $webmail_login );
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$result = curl_exec($ch);
//Until here it works i logged in
//Curl Mailbox GET
curl_setopt($ch, CURLOPT_URL, $webmail_mailbox);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$data = curl_exec($ch);
echo $data;
Как работает мой код?
На первых этапах я использую свои учетные данные и вход через POST в мою веб-почту.
PostData не верен, и я могу войти. После завершения работы webmail.at/login.php я перенаправляю на свой почтовый ящик (webmail.at/imp/dynamic.php?page=mailbox).
Теперь веб-почта использует метод GET, чтобы получить все электронные письма и материалы, и в этот момент я получаю 404 ошибки.
Не удалось загрузить ресурс: сервер ответил со статусом 404
(Не обнаружена)
Ну, эта ошибка не связана с завитком, она связана с загрузкой ресурсов сайта на вашу веб-страницу.
Чтобы решить эту проблему, вы можете обойти это путем:
echo '<base href="http://www.example.com" />' . $data;
однако, это не рекомендуется делать.
будет лучше, если вы повторно манипулируете данными своего ответа,
например, если ответ является HTML, проанализируйте его с помощью Дом библиотека, например, или просто с помощью регулярных выражений, и, если это ответ json, перестройте новый простой пользовательский интерфейс для просмотра ваших результатов.
Он загружает свои ресурсы, используя относительные пути. Нужны абсолютные пути, такие как http://www.example.com/jquery.min.js. Что вы можете сделать, это загрузить все необходимые ресурсы с его веб-сайта и поместить их в папку src. Сайт, используемый, например, /script.js
и теперь он ищет его в вашем проекте, потому что это относительный путь.