Сегодня я столкнулся с интересной проблемой, когда работал над разрабатываемым приложением. Надеюсь, кто-то знает, почему это происходит / как настроить мой рабочий процесс для этого!
Справочная информация:
Я пишу приложение, которое помогает студентам в университетах общаться друг с другом. Основной рабочий процесс выглядит следующим образом:
- Пользователь регистрируется на сервисе
- Приложение использует CURL для опроса университетского справочника по их имени
- Хранить их контактную информацию в таблице базы данных
Мой тестовый сайт - это каталог Университета Рутгерса (http://www.acs.rutgers.edu/directory)
Я могу получить доступ к услуге через мой браузер (Сообщения на http://www.acs.rutgers.edu/pls/pdb_p/Pdb_Display.search_results),, но если я пытаюсь опубликовать ту же информацию через CURL, я получаю ошибку 404.
Примечание: Я получаю ту же ошибку, если открываю этот URL-адрес непосредственно из браузера и не использую их форму для отправки данных.
Код:
Вот код, который они используют на сайте каталога:
<fieldset>
<legend>Search For People</legend>
<div style="width:50%;margin-left:auto;margin-right:auto;">
<form method="post" action="http://www.acs.rutgers.edu/pls/pdb_p/Pdb_Display.search_results" name="thisform" onkeyup="highlight()" onclick="highlight()">
<p>
<label for="p_name_last">Last Name: [Required]</label><br>
<input tabindex="1" accesskey="L" class="required" type="text" id="p_name_last" name="p_name_last" size="25" maxlength="23">
</p>
<p>
<label for="p_name_first">First Name: [or initial]</label><br>
<input tabindex="2" accesskey="f" type="text" id="p_name_first" name="p_name_first" size="25" maxlength="23">
</p>
<input tabindex="3" type="submit" value="Search">
</form>
</div>
А вот код, который я использую для CURL услуги:
<?php
$p_name_last = "doe";
$p_name_first = "";
$curlPost = 'p_name_last=' . urlencode($p_name_last) . '&p_name_first=' . urlencode($p_name_first) . '&SUBMIT=Search';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.acs.rutgers.edu/pls/pdb_p/Pdb_Display.search_results');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
if( ! $result = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
echo "<pre>";
print_r($result);
?>
Любые мысли или предложения будут с благодарностью!
Спасибо
Mike