2010-10-15 4 views
1

J'ai créé un script en php qui est utilisé pour capturer les propriétés pour les utilisateurs. Pour ce faire, il faut appeler l'API pour obtenir ces propriétés.Problème potentiel avec ssl dans le script php

L'URL I est mis:

$url=("http://user:[email protected]/@api/users/=$user_id/properties"); 

Ensuite, utilisez file_get_contents pour le xml.

Lorsque je tape simplement cette URL dans le navigateur, cela fonctionne très bien. Il sort immédiatement ces propriétés pour l'utilisateur donné. Cependant, il semble qu'il passe automatiquement en https. Y at-il quelque chose qui doit être fait si cela peut fonctionner lors de l'utilisation de php?

code:

<?php 

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

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

$url=("http://user:[email protected]/@api/users/=$user_id/properties"); 
echo $url; 
$xmlString=file_get_contents($url); 

$delete = "http://user:[email protected]/@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'); 
} 

Répondre

0

Vous pouvez utiliser curl et la curl_setopt qui vous permet de définir la CURLOPT_FOLLOWLOCATION pour être vrai, cela devrait suivre les redirections et le retour de la sortie de la page de fin.

+0

Merci de répondre. Donc, je suis déjà en train d'utiliser curl le script. J'ai édité le post original afin que vous puissiez voir le code. Vous dites que je peux utiliser le setopt et cela devrait fonctionner? – Aaron

+0

Il devrait, essayer et voir, je suis sûr que c'est un moyen beaucoup plus rapide de savoir si cela fonctionne ou non. –

+0

Désolé, je suppose que la raison pour laquelle j'ai demandé est parce que je n'ai rien vu de différent. Je l'ai ajouté au début de la fonction curl_fetch. Est-il possible que son quelque chose avec le xmlString = file_get_contents ($ url) puisque cela est fait avant curl? – Aaron