2009-06-02 5 views
0

J'essaie de transmettre une variable de nom d'utilisateur et mot de passe aux informations d'identification de Twitter, mais il continue à retourner que je ne suis pas authentifié. Cependant, lorsque j'utilise le nom d'utilisateur et le mot de passe, au lieu des variables, il autorise avec succès.Twitter API Erreur à l'aide de variables dans php DEFINE

$username = $_POST["username"]; 
$password = $_POST["password"]; 

$url = "http://search.twitter.com/search.atom?q=golf&show_user=true&rpp=100"; 
$search = file_get_contents($url); 

$regex_name = '/\<name\>(.+?) \(/'; 
preg_match_all($regex_name,$search,$user); 
for($i=0;$user[1][$i];$i++) 
{ 
$follow = $user[1][$i]; 
    define('TWITTER_CREDENTIALS', '$username:$password'); 
    $url = "http://twitter.com/friendships/create/".$follow.".xml"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_USERPWD, TWITTER_CREDENTIALS); 
    $result= curl_exec ($ch); 
    curl_close ($ch); 

Je pense qu'il a quelque chose à voir avec le côlon entre le nom d'utilisateur et mot de passe, ou peut-être essayer d'utiliser des variables dans la fonction définir.

Des indices?

Répondre

6
$username = $_POST["username"]; 
$password = $_POST["password"]; 
// INCORRECT. Will literary assign TWITTER_CREDENTIALS as $username:$password 
// define('TWITTER_CREDENTIALS', '$username:$password'); 

// CORRECT, will parse the variables and assign the result to TWITTER_CREDENTIALS 
define('TWITTER_CREDENTIALS', "$username:$password"); 

Rappelez-vous des chaînes avec des guillemets doubles (") parser variables dans la chaîne, des chaînes avec des guillemets simples (') ne le font pas

En savoir plus sur les chaînes en PHP.

1

Cela a quelque chose à voir avec l'utilisation de guillemets simples au lieu de guillemets.

0

Vous utilisez define à l'intérieur d'une boucle, cela ne fonctionnera pas car vous ne pouvez définir une constante e qu'une seule fois.

+0

Il n'utilise pas DEFINE correctement, mais cela ne veut pas dire que ça ne marchera pas. Ça va lui donner un avis; mais son nom d'utilisateur et son mot de passe ne changent pas de toute façon, donc il n'y a pas de problème. – SilentGhost