2012-06-02 2 views
2

У меня есть приложение ive, которое позволяет зарегистрировать и связать свою учетную запись Twitter.Если пользователь не существует, не показывайте jQuery и заказывайте

Если кто-то создает пользователя для целей спама, однако Twitter затем удаляет этого пользователя, они все равно остаются на моем сайте. Если другой пользователь затем пытается следовать им, я возвращаю сообщение о том, что пользователь больше не действует, только это стало серьезной проблемой, и есть много учетных записей спама.

Мое текущее решение - когда загружается страница, с проверкой jQuery, чтобы увидеть, загружено ли изображение пользователей Twitter, и если не установлено, что пользователь не отображает их.

Im интересно, однако, есть ли способ проверить, прежде чем выводить мою страницу, так что таким образом мои пользователи arent представили список пользователей, что, когда страница загружает X из них dissapear, но список пользователей, которые все активный?

Благодаря


Это PHP У меня есть на моей странице, я знаю, что его старый, но есть ли способ, чтобы проверить, если пользователь существует с Twitter и смешать его с тем, что я в настоящее время?

Извините, что я очень новичок в PHP!

$rs = mysql_query("select produgg_users.id, twitterUser, coff, credits from produgg_users where twitterUser != '' and active !='' and credits >= coff and 
       produgg_users.id IN (select concat_ws(',', id) from produgg_users where credits > 0 and id != ".$usersClass->userID().") and produgg_users.id NOT IN (select concat_ws(',', followedID) from produgg_activity where followerID = '".$usersClass->userID()."') and produgg_users.id NOT IN (select concat_ws(',', userid) from produgg_featured) ORDER BY coff DESC LIMIT 30;") or die(mysql_error());  

$nr = @mysql_num_rows($rs); 

if($nr != 0) { 
    print "<h2>More Friendr Users!</h2><div>"; 

    while([email protected]_fetch_object($rs)) 
    { 
     $divLeft = '<div class="user-box" id="thediv_'.$row->id.'"><div class="twithandlepic"><img src="http://api.twitter.com/1/users/profile_image/'; 
     $divRight = '<div class="twithandle">'; 
     $clearDiv = '<div style="clear:both;"></div>'; 
     $row->coff = $row->coff - 1; 


    print $divLeft.strip_tags($row->twitterUser)."?size=bigger\" style=\"width:73px; height:73px;\"/><br \/>".$row->twitterUser.$divRight."<a href='javascript:void(0);' id='vote_$row->id' class='getPoint'>Get $row->coff <input type='hidden' value='$row->coff' class='credoff' name='credoff'/> credit(s)</a><br /></div>$clearDiv</div></div>"; 


} print "</div>"; 

echo " <a href='earn-credits.php' class='refreshlist'>Refresh</a>"; 

}else{ 

    print "<p>No twitter users to show</p>";  
} 
+0

Voteup for ur question :) congrats for ur 1000 баллов – Talha

+0

Я был @ametren, первый раз использовал CURL, спасибо большое – Liam

ответ

3

Вы можете просто отправить запрос в twitter.com/username и посмотреть код ответа: 200, если пользователь существует, 404, если они этого не делают. Например, попробуйте http://twitter.com/somefakeperson и вы получите 404.

Использование CURL было бы выглядеть примерно так:

while([email protected]_fetch_object($rs)) 
    { 
     $ch = curl_init('http://twitter.com/'.$row->twitterUser); 
     curl_exec($ch); 

     if(!curl_errno($ch)) 
     { 
     $info = curl_getinfo($ch); 
     if($info['http_code'] == '200') { 
     $divLeft = '<div class="user-box" id="thediv_'.$row->id.'"><div class="twithandlepic"><img src="http://api.twitter.com/1/users/profile_image/'; 
     $divRight = '<div class="twithandle">'; 
     $clearDiv = '<div style="clear:both;"></div>'; 
     $row->coff = $row->coff - 1; 


     print $divLeft.strip_tags($row->twitterUser)."?size=bigger\" style=\"width:73px; height:73px;\"/><br \/>".$row->twitterUser.$divRight."<a href='javascript:void(0);' id='vote_$row->id' class='getPoint'>Get $row->coff <input type='hidden' value='$row->coff' class='credoff' name='credoff'/> credit(s)</a><br /></div>$clearDiv</div></div>"; 


     } 
    } 
    curl_close($ch); 
    } 

Как и в сторону, он также может быть хорошим, чтобы отправить обновление обратно в DB в любое время, когда вы нажмете недопустимого пользователя, чтобы как-либо удалить или пометить пользователя. Затем вы можете отфильтровать этих пользователей в будущем прямо на уровне БД.

+0

Итак, escuxe my naivity @ametren, создаю ли я страницу, когда пользователь войдет в систему, прежде чем перейти на страницу, отображающую всех пользователей, они посещают скрипт .php, который обрабатывает вышеуказанные, а затем перенаправляет? – Liam

+0

Я не уверен, что понимаю, о чем вы спрашиваете.Вы бы поместили этот код в свой PHP, который генерирует представление для списка пользователей. Это помогает? – ametren

+0

Извините, я смутил себя! Я даю ему попробовать, спасибо @Ametren – Liam

2

API-интерфейс вызова Twitter GET users/lookup позволяет увидеть, если пользователь является активным. Так, например, выдача REST API вызова к конечной точке здесь:

https://api.twitter.com/1/users/lookup.json? 
    screen_name=twitterapi&include_entities=true 

даст вам HTTP 200 OK ответ, если пользователь существует. Однако вызов с именем экрана, который не существует, возвращает 404, например:

https://api.twitter.com/1/users/lookup.json? 
    screen_name=dsklfjdkl&include_entities=true 

Перед отображением страницы для пользователя, сервер может проверить, существует ли имя пользователя (а если нет, то просто удалите их со страницы/отметьте их как мертвые в базе данных).

+0

Так что escuxe моя наивность, я бы создал страницу, когда пользователь входит в систему, прежде чем идти в страницу, отображающую всех пользователей, они посещают скрипт .php, который обрабатывал бы вышеупомянутое, а затем перенаправлял? – Liam

+0

Я предполагаю, что вы создаете страницу, которую пользователь видит с помощью PHP на вашем сервере. PHP-скрипт/шаблон, который генерирует эту страницу, будет тем, который вам нужно будет изменить. @ametren в другом ответе на ваши вопросы дает пример PHP о том, как это сделать. – martineno

Смежные вопросы