Ошибка API Twitter при использовании переменных в php DEFINE - PullRequest
0 голосов
/ 02 июня 2009

Я пытаюсь передать переменную имени пользователя и пароля в учетные данные Twitter, но она продолжает возвращаться, что я не аутентифицирован. Однако, когда я использую реальное имя пользователя и пароль вместо переменных, он успешно авторизуется.

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

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

Есть какие-нибудь подсказки?

Ответы [ 3 ]

6 голосов
/ 02 июня 2009
$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 голос
/ 02 июня 2009

это как-то связано с использованием одинарных кавычек вместо двойных.

0 голосов
/ 02 июня 2009

Вы используете определение внутри цикла, это не сработает, потому что вы можете определить константу e только один раз.

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