отправить форму на внешнюю веб-страницу с curl - PullRequest
0 голосов
/ 13 июня 2011

Мне нужна помощь в этом.

Я пытаюсь превратить $ _POST в форму внешней веб-страницы. Идея следующая:

  • пользователь заходит на мою страницу. www.caae.cl/encuesta
  • пользователь вводит имя пользователя и пароль (на мою веб-страницу)
  • Я отправляю в форму внешней веб-страницы ( https : //www.uc.cl), которую я не могу контролировать, пользователь и pw
  • я проверяю правильность комбинации
  • я перенаправляю пользователя на домашнюю страницу пользователя моей веб-страницы

У меня есть два момента: во-первых, как мне сделать отправку через cUrl, а во-вторых, мне нужно прочитать куки-файл внешней веб-страницы, чтобы проверить, подходит ли комбинация пароль пользователя

Буду признателен за любую помощь. Я работаю с php и curl.

1 Ответ

2 голосов
/ 13 июня 2011

Прочитайте документацию для cURL здесь . У него есть опции, которые вы можете использовать для данных POST, файлов cookie и HTTPS.

Но, чтобы помочь вам, вот функция, которую я использую для выполнения запросов cURL. Вы захотите изменить параметры для своих собственных целей, например, Вы хотите включить опции HTTP и не хотите хранить куки. Читайте документацию, хотя!

function curl_request($url, $referer = false, $postdata = false, $new_session = false) //single custom cURL request.
{
    $ch = curl_init();
    if ($new_session)
    {
        curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    }
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     

    curl_setopt($ch, CURLOPT_URL, $url);

    if ($referer)
    {
        curl_setopt($ch, CURLOPT_REFERER, $referer); 
    }

    if ($postdata)
    {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);   
    }

    $response = curl_exec($ch);

    curl_close($ch);

    return $response;
}

Также, если необходимо получить переменные cookie в переменную php, следуйте ответу здесь . Тщательно продумайте, является ли проверка cookie лучшим способом проверки входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...