Потенциальная проблема с ssl в php скрипте - PullRequest
1 голос
/ 15 октября 2010

Я создал скрипт в php, который используется для захвата свойств для пользователей.

Для этого требуется вызвать API для получения этих свойств.

URL, который я установил:

 $url=("http://user:pass@oursite.com/@api/users/=$user_id/properties");

Затем используйте file_get_contents для xml.

Когда я просто набираю этот URL в браузере, он работает нормально.Он сразу выводит эти свойства для данного пользователя.Однако, похоже, он автоматически переключается на https.Есть ли что-то, что нужно сделать, чтобы это работало при использовании php?

Код:

<?php

$user=$_GET['userid'];
$user_id=str_replace(array('@', '#'), array('%40', '%23'), $user);

print "User-id: $user";
print "<br /><br />";

$url=("http://user:admin@oursite.com/@api/users/=$user_id/properties");
echo $url;
$xmlString=file_get_contents($url);

$delete = "http://user:admin@oursite.com/@api/users/=$user_id/properties/";
$xml = new SimpleXMLElement($xmlString);

function curl_fetch($url,$username,$password,$method='DELETE')
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch,CURLOPT_USERPWD,"$username:$password");
    return  curl_exec($ch);
}

print "The following properties have been removed: ";
print "<br />";

if(!count($xml->property)) die('No properties exist for this user');

foreach($xml->property as $property) {
  $name = $property['name'];
  $name2=str_replace(array('@', '#'), array('%40', '%23'), $name);
  print $name2;
  print "<br />";
  curl_fetch($delete . $name2,'user','pass');
}

1 Ответ

0 голосов
/ 15 октября 2010

Вы можете использовать curl и curl_setopt , которые позволяют установить CURLOPT_FOLLOWLOCATION в значение true, это должно следовать за любыми перенаправлениями и возвращать выходные данные с конечной страницы.

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