завихрение php - регистрация значения состояния отображения asp.net

У меня есть следующий код для входа в систему в приложение внешнего сайта (приложение asp.net) от локальной формы входа в систему сайта (записанный в php):

<?php
$curl_connection = curl_init('www.external.com/login.aspx');

curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

// Post data array
$post_data['LoginControl$UserName'] = 'ExampleUName';
$post_data['LoginControl$Password'] = 'ExamplePWord';

// Add form fields into an array to get ready to post
foreach ($post_data as $key => $value) 
  {
$post_items[] = $key . '=' . $value;
  }
$post_string = implode ('&', $post_items);

// Tell cURL which string to post
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

// Execute and post
$result = curl_exec($curl_connection);
?>

Я направлен к форме входа в систему внешнего сайта вместо того, чтобы быть направленным к зарегистрированному приложению. Я думаю, что проблема состоит в том, что я должен передать значения состояния отображения через, но я не уверен, как пойти о выполнении этого?

Я не управляю внешним приложением. Но мы хотим, чтобы пользователи смогли войти в приложение через наш веб-сайт, поддержать брендинг и т.д.

Я недавно отправил несколько других потоков об использовании ЗАВИХРЕНИЯ php, но я на этапе теперь, где я думаю, что состояние отображения является проблемой...

Спасибо, Mark.

8
задан Mark Jones 16 July 2010 в 09:17
поделиться

1 ответ

Изменение:

curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

Кому:

curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, false);

Вам также необходимо настроить файл cookie, посмотрите CURLOPT_COOKIEFILE

CURLOPT_COOKIEFILE :

Имя файла файл, содержащий данные cookie. Файл cookie может быть в формате Netscape или просто заголовками в стиле HTTP, выгруженными в файл.

CURLOPT_COOKIE :

Содержимое заголовка «Cookie:», которое будет использоваться в HTTP-запросе. Обратите внимание, что несколько файлов cookie разделяются точкой с запятой, за которой следует пробел (например, «fruit = apple; color = red»)

CURLOPT_COOKIEJAR :

имя файла для сохранения всех внутренних файлов cookie, когда соединение закрывается.

@see http://www.php.net/manual/en/function.curl-setopt.php

curl_setopt($curl_connection, CURLOPT_COOKIEFILE, 'cookiefile.txt'); 
curl_setopt($curl_connection, CURLOPT_COOKIEJAR, 'cookiefile.txt'); 
2
ответ дан 5 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: