2009-06-02 9 views
0

Twitterの資格情報にユーザー名とパスワードの変数を渡そうとしていますが、認証されていないことが返され続けます。しかし、変数の代わりに実際のユーザー名とパスワードを使用すると、正常に認証されます。Twitter API 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); 

私はそれは、ユーザー名とパスワードの間にコロンとは何かを持っている思考、またはおそらく定義関数内の変数を使用しようとしています。

手がかりはありますか?

答えて

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"); 

ない二重引用符( ")を解析文字列内の変数、単一引用符( ')で文字列と文字列を覚えておいてください

をPHPで文字列の詳細を読む。

1

二重引用符ではなく一重引用符を使用することと関係があります。

0

あなたはループ内で定義を使用していますが、これはe定数を一度しか定義できないため動作しません。

+0

彼はDEFINEを正しく使用していませんが、それはうまくいかないとは限りません。それは彼に通知を与えるでしょう。彼のユーザー名とパスワードは変更されないので、大きな問題はありません。 – SilentGhost

関連する問題