php stream_context_create путаница - PullRequest
0 голосов
/ 07 июня 2011

Я знаю, что эта функция в php создает и возвращает контекст потока с любыми опциями, предоставленными в предустановке опций.Я также знаю, что могу использовать это, чтобы сделать то, что я хочу - передать мои учетные данные для имени пользователя и пароля ... Но я все еще не совсем понимаю, как использовать эту функцию, и что именно делает сложные слова в описаниидействительно сбивает меня с толку .... У меня есть код из примера, но я не знаю, как я могу использовать эту функцию для передачи учетных данных на www.confluence.com (только я могу получить к нему доступ, так как он на сервере Apache).Может ли кто-нибудь объяснить или привести пример того, как я могу использовать это для передачи учетных данных?

РЕДАКТИРОВАТЬ: Вот общее резюме, довольно короткое, так что не знаю, если вы называете это резюме .... Мне назначеноприложение, чтобы сделать ..... есть около 10 различных способов сделать это.из-за ограничений, которые они мне дали, я могу работать только одним способом, который нашел ... Я очень расстроен, потому что есть намного более простой способ сделать это с помощью календаря Google, но они отказываются из-за соображений безопасности, поэтому я застрялк календарю слияния ..... В дополнение к этому, чтобы сделать это сложнее, слияние проводится внешней компанией, и поэтому я даже не могу использовать get_contents для прямого доступа к календарю слияния, потому что он запрашивает учетные данные для входа в систему .... Я непрофессионал в этом и одно за другим постоянно появляются препятствия, чтобы сделать мою жизнь сложнее, и это просто бс ... Я провел часы и часы в течение последних 3 недель, находя решения только для того, чтобы его отвергли ... Я наконец-то получил это get_contentsчто-то работает, но теперь учетные данные входа - это боль в заднице, и я никогда не сталкивался с этим, поэтому я стараюсь изо всех сил, но у меня АБСОЛЮТНО НЕТ ИДЕИ, что делает stream_context_create ИЛИ как даже использовать его для передачи моих учетных данных ... Слияние сайтаЯ пытаюсь получить доступ, я могу войти, используяу входа в систему, но код не может .... слияние на сервере apache, поэтому другие люди не могут получить к нему доступ ... и я не могу поделиться своими данными для входа, так как это проблема безопасности компании ... извините, если я не имел смыслано я очень расстроен и не могу найти решения, и мой разум наполовину мертв от кодирования и чтения. Поверьте мне, я много занимался поиском и поиском в Интернете ... Но я наконец достиг точки, когда я застрял ...

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

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

$data = array('account'=>'javier', 
              'password'=>'12345', 
              'submit'=>'SUBMIT'); 

$content = file_get_contents('http://localhost/misc/login.php', false, stream_context_create( array('http' => array('method' => 'POST', 'content' => http_build_query($data) ) ) ) ); 

$sFind = 'Logged in'; 
$search = strpos($content, $sFind); 

echo $content; 

if($search === false){ 
echo 'Invalid Account'; 
} 
else { 
echo 'Valid Account'; 
}  

Еще одна идея, которую я имею, - это использоватьJavaScript для входа в систему ... Я не знаю, что лучше, но мне не разрешено скачивать какие-либо библиотеки или такие предложения, так что предложения хороши.

1 Ответ

1 голос
/ 07 июня 2011

Вы используете метод 'GET', информация о входе в систему редко передается таким образом.Вы уверены, что запрашиваемая страница не использует POST?

Также лично при извлечении веб-страниц, особенно при отправке переменных POST или GET, я предпочитаю использовать cURL .

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