Проблема с функцией извлечения CURL - PullRequest
1 голос
/ 18 октября 2010

Я создал скрипт php, который позволит удалять пользовательские свойства. Сценарий сначала находит все свойства, связанные с пользователем, а затем зацикливается, чтобы удалить все из них.

Когда я запускаю это для определенного пользователя, он переходит к циклу foreach и распечатывает все свойства ( $ name2 ), но, похоже, застревает на curl_fetch часть. Когда я тогда пытаюсь получить свойства, они все еще существуют для пользователя. Есть идеи, почему это происходит? Код ниже для вас, чтобы посмотреть. Заранее спасибо.

 <?php

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

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

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

    $delete = "https://admin:password@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,'admin','password');
    }
    ?>

1 Ответ

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

Вы нажимаете этот URL как запрос GET.Вы уверены, что выполнение вызова типа удаления по крайней мере не потребует POST?Подумайте о хаосе, который может произойти, если веб-паук получит список URL-адресов и будет невинно уничтожать весь ваш сайт, просто проиндексировав его?

Мой плохой, не заметил, что DELETE был методом по умолчанию вваша функция curl.

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

...