php - 如果用户不存在,则不显示 jQuery 和排序

标签 php jquery ajax

我构建了一个应用程序,用户可以注册并链接他们的 Twitter 帐户。

如果有人出于垃圾邮件目的创建了一个用户,但 Twitter 随后删除了该用户,他们仍然留在我的网站上。如果另一个用户尝试关注他们,我会退回一条消息,说用户不再有效,但这已经成为一个严重的问题,并且有很多垃圾邮件帐户。

我当前的解决方案是当页面加载时,使用 jQuery 检查是否加载了 twitter 用户图像,如果没有则设置该用户不显示。

但是,我想知道,有没有办法在输出我的页面之前进行检查,这样我的用户就不会看到用户列表,当页面加载时,其中 X 个用户会消失,而是显示所有活跃用户的列表?

谢谢


这是我页面上的 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($row=@mysql_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>";    
}

最佳答案

您只需向 twitter.com/username 发送请求并查看响应代码:如果用户存在,则为 200;如果不存在,则为 404。例如,尝试 http://twitter.com/somefakeperson你会得到一个 404。

使用 CURL 它看起来像这样:

   while($row=@mysql_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);
   }

顺便说一句,每当您遇到无效用户以某种方式删除或标记该用户时,将更新发送回数据库也可能是个好主意。然后,您可以在将来在数据库级别过滤掉这些用户。

关于php - 如果用户不存在,则不显示 jQuery 和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865134/

相关文章:

php - fatal error : Call to undefined function sem_get()

javascript - 未捕获的类型错误 : Cannot read property of undefined - javascript

jquery - 使用 jquery ajax 捕获 401 未经授权的 http 响应

jquery - 使用 JavaScript 向 JSF 发送 Ajax 请求

php - 在 Yii 中,您可以用 JSON 而不是 HTML/XML 返回 HTTP 错误响应吗?

java - org.json.JSONException : Value Array of type java. lang.String 无法转换为 JSONObject

php - 无法将fopen插入mysql->错误:插入MariaDB

javascript - 每次点击事件期间的 URL 覆盖

javascript - 如何使用 Jquery 使元素出现和消失。

javascript - jquery AJAX 中的 slideDown 传入数据