不用申请APIkey,也能用akismet让wordpress的垃圾评论大大减少

今天打开wordpress,我晕,留言数已经有10多万。
老外们工作还真积极,这几天垃圾评论是越来越厉害了。
我想起前几天还说要自己写一个能分页管理评论的hack呢。不过现在实在没空。
于是想到,管他垃圾不垃圾,我现在暂时先全删除了再说。
于是打phpmyadmin,把ID>350的记录全删除了。
这下再打开,不过发现马上就又有了几十条记录了。看来垃圾生产机器工作真够负责的啊,简直是日夜不停了。
想起有一个什么反垃圾评论的插件,google一下,叫akismet,装上一看,倒,还要我去申请一个API key才能用。
本来特懒,不过现在垃圾评论这么狂,只好去注册。
结果,打了好几次地址,wordpress.com/api-keys都打不开,没办法。我想,那我做一个hack,把用api key认证的这一步去掉不行吗?
打开akismet.php,哈哈,原来如此简单,修改过程如下:
找到

  1. function akismet_verify_key( $key ) {

,直接在后面加上:

  1. return ture;

就行了。
上传了一下,然后再来到要求输入API key的页面:/wp-admin/plugins.php?page=akismet/akismet.php,随便输入一个,我输的是123456,然后update,就成功了。
返回管理页面一个,哈哈,下面就列着一个大大的菜单: Akismet反垃圾(0)。棒极了!
点进去一看:

  1. 抓到的垃圾:
  2. 队列中没有垃圾评论,今天可能是您的幸运日!:

真不错。看来akismet的作者也是深受垃圾侵扰之苦,所以要这么写。
附上akismet的全部代码.
如果您还没有安装akismet,您可以下载下来,保存成akismet.php,放到您的wordpress的wp-content/plugins/akismet.php位置,再到插件菜单下去激活,安装一下就可以了:

  1. <?php
  2. /*
  3. Plugin Name: Akismet
  4. Plugin URI: http://akismet.com/
  5. Description: Akismet checks your comments against the Akismet web serivce to see if they look like spam or not. You need a <a href="http://wordpress.com/api-keys/">WordPress.com API key</a> to use this service. You can review the spam it catches under "Manage" and it automatically deletes old spam after 15 days. Hat tip: <a href="http://ioerror.us/">Michael Hampton</a> and <a href="http://chrisjdavis.org/">Chris J. Davis</a> for help with the plugin.
  6. Author: Matt Mullenweg
  7. Version: 1.14
  8. Author URI: http://photomatt.net/
  9. */
  10.  
  11. add_action('admin_menu', 'ksd_config_page');
  12.  
  13. function ksd_config_page() {
  14.     global $wpdb;
  15.     if ( function_exists('add_submenu_page') )
  16.         add_submenu_page('plugins.php', __('Akismet Configuration'), __('Akismet Configuration'), 1, __FILE__, 'akismet_conf');
  17. }
  18.  
  19. function akismet_conf() {
  20.     if ( isset($_POST['submit']) ) {
  21.         check_admin_referer();
  22.         $key = preg_replace('/[^a-h0-9]/i', '', $_POST['key']);
  23.         if ( akismet_verify_key( $key ) )
  24.             update_option('wordpress_api_key', $key);
  25.         else
  26.             $invalid_key = true;
  27.     }
  28.     if ( !akismet_verify_key( get_option('wordpress_api_key') ) )
  29.         $invalid_key = true;
  30. ?>
  31.  
  32. <div class="wrap">
  33. <h2><?php _e('Akismet Configuration'); ?></h2>
  34.     <p><?php printf(__('For many people, <a href="%1$s">Akismet</a> will greatly reduce or even completely eliminate the comment and trackback spam you get on your site. If one does happen to get through, simply mark it as "spam" on the moderation screen and Akismet will learn from the mistakes. If you don\'t have a WordPress.com account yet, you can get one at <a href="%2$s">WordPress.com</a>.'), 'http://akismet.com/', 'http://wordpress.com/api-keys/'); ?></p>
  35.  
  36. <form action="" method="post" id="akismet-conf" style="margin: auto; width: 25em; ">
  37. <h3><label for="key"><?php _e('WordPress.com API Key'); ?></label></h3>
  38. <?php if ( $invalid_key ) { ?>
  39.     <p style="padding: .5em; background-color: #f33; color: #fff; font-weight: bold;"><?php _e('Your key appears invalid. Double-check it.'); ?></p>
  40. <?php } ?>
  41. <p><input id="key" name="key" type="text" size="15" maxlength="12" value="<?php echo get_option('wordpress_api_key'); ?>" style="font-family: 'Courier New', Courier, mono; font-size: 1.5em;" /> (<?php _e('<a href="http://faq.wordpress.com/2005/10/19/api-key/">What is this?</a>'); ?>)</p>
  42.     <p class="submit"><input type="submit" name="submit" value="<?php _e('Update API Key &raquo;'); ?>" /></p>
  43. </form>
  44. </div>
  45. <?php
  46. }
  47.  
  48. function akismet_verify_key( $key ) {
  49.     return true;
  50.     /**
  51.     *@edit by xurenlu 14:54 2006-12-17
  52.     *@url:http://blog.deskor.com
  53.     */
  54.     global $auto_comment_approved, $ksd_api_host, $ksd_api_port;
  55.     $blog = urlencode( get_option('home') );
  56.     $response = ksd_http_post("key=$key&blog=$blog", 'rest.akismet.com', '/1.1/verify-key', $ksd_api_port);
  57.  
  58.     if ( 'valid' == $response[1] )
  59.         return true;
  60.     else
  61.         return false;
  62. }
  63.  
  64. if ( !get_option('wordpress_api_key') && !isset($_POST['submit']) ) {
  65.     function akismet_warning() {
  66.     $path = plugin_basename(__FILE__);
  67.         echo "
  68.         <div id='akismet-warning' class='updated fade-ff0000'><p><strong>".__('Akismet is not active.')."</strong> ".sprintf(__('You must <a href="%1$s">enter your WordPress.com API key</a> for it to work.'), "plugins.php?page=$path")."</p></div>
  69.         <style type='text/css'>
  70.         #adminmenu { margin-bottom: 5em; }
  71.         #akismet-warning { position: absolute; top: 7em; }
  72.         </style>
  73.         ";
  74.     }
  75.     add_action('admin_footer', 'akismet_warning');
  76.     return;
  77. }
  78.  
  79. $ksd_api_host = get_option('wordpress_api_key') . '.rest.akismet.com';
  80. $ksd_api_port = 80;
  81. $ksd_user_agent = "WordPress/$wp_version | Akismet/1.14";
  82.  
  83. // Returns array with headers in $response[0] and entity in $response[1]
  84. function ksd_http_post($request, $host, $path, $port = 80) {
  85.     global $ksd_user_agent;
  86.  
  87.     $http_request  = "POST $path HTTP/1.0\r\n";
  88.     $http_request .= "Host: $host\r\n";
  89.     $http_request .= "Content-Type: application/x-www-form-urlencoded; charset=" . get_settings('blog_charset') . "\r\n";
  90.     $http_request .= "Content-Length: " . strlen($request) . "\r\n";
  91.     $http_request .= "User-Agent: $ksd_user_agent\r\n";
  92.     $http_request .= "\r\n";
  93.     $http_request .= $request;
  94.  
  95.     $response = '';
  96.     if( false !== ( $fs = @fsockopen($host, $port, $errno, $errstr, 3) ) ) {
  97.         fwrite($fs, $http_request);
  98.  
  99.         while ( !feof($fs) )
  100.             $response .= fgets($fs, 1160); // One TCP-IP packet
  101.         fclose($fs);
  102.         $response = explode("\r\n\r\n", $response, 2);
  103.     }
  104.     return $response;
  105. }
  106.  
  107. function ksd_auto_check_comment( $comment ) {
  108.     global $auto_comment_approved, $ksd_api_host, $ksd_api_port;
  109.     $comment['user_ip']    = $_SERVER['REMOTE_ADDR'];
  110.     $comment['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
  111.     $comment['referrer']   = $_SERVER['HTTP_REFERER'];
  112.     $comment['blog']       = get_option('home');
  113.  
  114.     $ignore = array( 'HTTP_COOKIE' );
  115.  
  116.     foreach ( $_SERVER as $key => $value )
  117.         if ( !in_array( $key, $ignore ) )
  118.             $comment["$key"] = $value;
  119.  
  120.     $query_string = '';
  121.     foreach ( $comment as $key => $data )
  122.         $query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
  123.  
  124.     $response = ksd_http_post($query_string, $ksd_api_host, '/1.1/comment-check', $ksd_api_port);
  125.     if ( 'true' == $response[1] ) {
  126.         $auto_comment_approved = 'spam';
  127.         update_option( 'akismet_spam_count', get_option('akismet_spam_count') + 1 );
  128.     }
  129.     akismet_delete_old();
  130.     return $comment;
  131. }
  132.  
  133. function akismet_delete_old() {
  134.     global $wpdb;
  135.     $now_gmt = current_time('mysql', 1);
  136.     $wpdb->query("DELETE FROM $wpdb->comments WHERE DATE_SUB('$now_gmt', INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam'");
  137.     $n = mt_rand(1, 5);
  138.     if ( $n % 5 )
  139.         $wpdb->query("OPTIMIZE TABLE $wpdb->comments");
  140. }
  141.  
  142. function ksd_auto_approved( $approved ) {
  143.     global $auto_comment_approved;
  144.     if ( 'spam' == $auto_comment_approved )
  145.         $approved = $auto_comment_approved;
  146.     return $approved;
  147. }
  148.  
  149. function ksd_submit_nonspam_comment ( $comment_id ) {
  150.     global $wpdb, $ksd_api_host, $ksd_api_port;
  151.  
  152.     $comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment_id'");
  153.     if ( !$comment ) // it was deleted
  154.         return;
  155.     $comment->blog = get_option('home');
  156.     $query_string = '';
  157.     foreach ( $comment as $key => $data )
  158.         $query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
  159.     $response = ksd_http_post($query_string, $ksd_api_host, "/1.1/submit-ham", $ksd_api_port);
  160. }
  161.  
  162. function ksd_submit_spam_comment ( $comment_id ) {
  163.     global $wpdb, $ksd_api_host, $ksd_api_port;
  164.  
  165.     $comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment_id'");
  166.     if ( !$comment ) // it was deleted
  167.         return;
  168.     if ( 'spam' != $comment->comment_approved )
  169.         return;
  170.     $comment->blog = get_option('home');
  171.     $query_string = '';
  172.     foreach ( $comment as $key => $data )
  173.         $query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
  174.  
  175.     $response = ksd_http_post($query_string, $ksd_api_host, "/1.1/submit-spam", $ksd_api_port);
  176. }
  177.  
  178. add_action('wp_set_comment_status', 'ksd_submit_spam_comment');
  179. add_action('edit_comment', 'ksd_submit_spam_comment');
  180. add_action('preprocess_comment', 'ksd_auto_check_comment', 1);
  181. add_filter('pre_comment_approved', 'ksd_auto_approved');
  182.  
  183.  
  184. function ksd_spam_count() {
  185.     global $wpdb, $comments;
  186.     $count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 'spam'");
  187.     return $count;
  188. }
  189.  
  190. function ksd_manage_page() {
  191.     global $wpdb;
  192.     $count = sprintf(__('Akismet Spam (%s)'), ksd_spam_count());
  193.     if ( function_exists('add_management_page') )
  194.         add_management_page(__('Akismet Spam'), $count, 1, __FILE__, 'ksd_caught');
  195. }
  196.  
  197. function ksd_caught() {
  198.     global $wpdb, $comment;
  199.     if (isset($_POST['submit']) && 'recover' == $_POST['action'] && ! empty($_POST['not_spam'])) {
  200.         $i = 0;
  201.         foreach ($_POST['not_spam'] as $comment):
  202.             $comment = (int) $comment;
  203.             if ( function_exists('wp_set_comment_status') )
  204.                 wp_set_comment_status($comment, 'approve');
  205.             else
  206.                 $wpdb->query("UPDATE $wpdb->comments SET comment_approved = '1' WHERE comment_ID = '$comment'");
  207.             ksd_submit_nonspam_comment($comment);
  208.             ++$i;
  209.         endforeach;
  210.         echo '<div class="updated"><p>' . sprintf(__('%1$s comments recovered.'), $i) . "</p></div>";
  211.     }
  212.     if ('delete' == $_POST['action']) {
  213.         $delete_time = addslashes( $_POST['display_time'] );
  214.         $nuked = $wpdb->query( "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND '$delete_time' > comment_date_gmt" );
  215.         if (isset($nuked)) {
  216.             echo '<div class="updated"><p>';
  217.             if ($nuked) {
  218.                 _e('All spam deleted.');
  219.             }
  220.             echo "</p></div>";
  221.         }
  222.     }
  223. ?>
  224. <div class="wrap">
  225. <h2><?php _e('Caught Spam') ?></h2>
  226. <?php
  227. $count = get_option('akismet_spam_count');
  228. if ( $count ) {
  229. ?>
  230. <p><?php printf(__('Akismet has caught <strong>%1$s</strong> spam for you since you installed it.'), number_format($count) ); ?></p>
  231. <?php
  232. }
  233. $spam_count = ksd_spam_count();
  234. if (0 == $spam_count) {
  235.     echo '<p>'.__('You have no spam currently in the queue. Must be your lucky day. :)').'</p>';
  236.     echo '</div>';
  237. } else {
  238.     echo '<p>'.__('You can delete all of the spam from your database with a single click. This operation cannot be undone, so you may wish to check to ensure that no legitimate comments got through first. Spam is automatically deleted after 15 days, so don&#8217;t sweat it.').'</p>';
  239. ?>
  240. <form method="post" action="">
  241. <input type="hidden" name="action" value="delete" />
  242. <?php printf(__('There are currently %1$s comments identified as spam.'), $spam_count); ?>&nbsp; &nbsp; <input type="submit" name="Submit" value="<?php _e('Delete all'); ?>" />
  243. <input type="hidden" name="display_time" value="<?php echo current_time('mysql', 1); ?>" />
  244. </form>
  245. </div>
  246. <div class="wrap">
  247. <h2><?php _e('Last 15 days'); ?></h2>
  248. <?php echo '<p>'.__('These are the latest comments identified as spam by Akismet. If you see any mistakes, simply mark the comment as "not spam" and Akismet will learn from the submission. If you wish to recover a comment from spam, simply select the comment, and click Not Spam. After 15 days we clean out the junk for you.').'</p>'; ?>
  249. <?php
  250. $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_date DESC LIMIT 150");
  251.  
  252. if ($comments) {
  253. ?>
  254. <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
  255. <input type="hidden" name="action" value="recover" />
  256. <ol id="spam-list" class="commentlist">
  257. <?php
  258. $i = 0;
  259. foreach($comments as $comment) {
  260.     $i++;
  261.     $comment_date = mysql2date(get_settings("date_format") . " @ " . get_settings("time_format"), $comment->comment_date);
  262.     $post = get_post($comment->comment_post_ID);
  263.     $post_title = $post->post_title;
  264.     if ($i % 2) $class = 'class="alternate"';
  265.     else $class = '';
  266.     echo "\n\t<li id='comment-$comment->comment_ID' $class>";
  267.     ?>
  268.     <p><strong><?php _e('Name:') ?></strong> <?php comment_author_link() ?> <?php if ($comment->comment_author_email) { ?>| <strong><?php _e('E-mail:') ?></strong> <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url && 'http://' != $comment->comment_author_url) { ?> | <strong><?php _e('URI:') ?></strong> <?php comment_author_url_link() ?> <?php } ?>| <strong><?php _e('IP:') ?></strong> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a> | <strong><?php _e('Date:') ?></strong> <?php comment_date(); ?></p>
  269. <?php comment_text() ?>
  270. <label for="spam-<?php echo $comment->comment_ID; ?>">
  271. <input type="checkbox" id="spam-<?php echo $comment->comment_ID; ?>" name="not_spam[]" value="<?php echo $comment->comment_ID; ?>" />
  272. <?php _e('Not Spam') ?></label>
  273. <?php
  274. }
  275. }
  276. ?>
  277. </ol>
  278. <p class="submit">
  279. <input type="submit" name="submit" value="<?php _e('Not Spam &raquo;'); ?>" />
  280. </p>
  281. </form>
  282. </div>
  283. <?php
  284.     }
  285. }
  286.  
  287. add_action('admin_menu', 'ksd_manage_page');
  288.  
  289. function akismet_stats() {
  290.     $count = get_option('akismet_spam_count');
  291.     if ( !$count )
  292.         return;
  293.     $path = plugin_basename(__FILE__);
  294.     echo '<h3>'.__('Spam').'</h3>';
  295.     echo '<p>'.sprintf(__('<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.'), 'http://akismet.com/', "edit.php?page=$path", number_format($count) ).'</p>';
  296. }
  297.  
  298. add_action('activity_box_end', 'akismet_stats');
  299.  
  300. ?>
此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

不用申请APIkey,也能用akismet让wordpress的垃圾评论大大减少》有 8 条评论

  1. kinbaart 说:

    Nice forum! Click links below to earn BIG MONEY!!!

    buy tramadol
    tramadol online
    cheap tramadol
    order tramadol
    buy tramadol online
    tramadol dosage
    get tramadol out of urine
    testing for tramadol in urine
    what kind of drug is tramadol
    i had withdrawal tramadol
    tramadol cod imitrex diet pill
    buy tramadol online c o d
    tramadol appearance
    online tramadol prescriptions
    viagra levitra valium cialis tramadol hydrocodone
    cheap tramadol online guaranteed lowest price
    tramadol cats
    tramadol used for
    optimize tramadol efficiacy
    buy tramadol online cheap
    without prescription tramadol online
    tramadol without prescription free shipping
    tramadol cheap
    tramadol hcl
    tramadol mechanism
    buy ultram tramadol mg tablets
    buy tramadol with paypal
    cheap tramadol soma
    tramadol sun exposure
    snort tramadol
    can kids take tramadol
    tramadol habit forming
    tramadol withdrawal symptoms last
    tramadol veterinarians
    adipex and tramadol no prescription needed
    side effects of tramadol hcl 50mg
    best generic ultram buy tramadol now
    tramadol hydrochloride synthesis
    buy online site tramadol
    side effects of tramadol painkiller
    buy cheap online tramadol
    tramadol lowest price
    tramadol hydrocloride side
    tramadol memory loss
    tramadol canada
    tramadol used to treat
    withdrawal symptoms of tramadol
    treatments for tramadol withdrawals
    sale tramadol
    tramadol cheap cod
    tramadol paracetamol dolcet
    tramadol side effects and uses
    what s in tramadol
    is tramadol scheduled
    tramadol overnight price per 300
    discontinuing tramadol
    pet meds tramadol 50mg
    tramadol sales online pharmacies no prescription
    tramadol versus loritab for pain
    medical information tramadol withdraw
    book buy tramadol viscacha
    ibuprofen with tramadol
    withdrawl symptoms of tramadol
    lowest tramadol prices with shipping
    tramadol imitrex
    tramadol ejaculation
    cat pain tramadol
    experience snort tramadol
    tramadol drug forums
    tramadol information and side effects
    tramadol drug utilization review
    tramadol online dream pharmaceutical
    cheap tramadol no prescription
    tramadol and cyp 2d6
    human dose of tramadol
    veterinary merck manual tramadol
    tramadol cheap tramadol
    saturday tramadol
    test for tramadol in urine
    tramadol no rx
    tramadol pharmacy tech online cheap tramadol
    tramadol action as painkiller
    tramadol trammadol
    tramadol abuse sniff
    drug test narcotics half life tramadol
    tramadol fail you for drug test
    cymbalta and tramadol
    tramadol allergies
    ultram er tramadol
    claritin perscription drugs tramadol
    tramadol hlc 50 tablet tve
    health issue tramadol on line
    pharmacy degree buy tramadol
    medication pain tramadol
    tramadol car florida insurance
    tramadol hydrochloride opioid content
    tramadol new york
    2737 aid tramadol valtrex
    online tramadol cod
    100 tramadol
    tramadol and clinical
    tramadol ultram online for american users
    discount tramadol without prescription
    buy tramadol online from oregon
    250 tramadol
    loratab tramadol
    cheapest cod money order tramadol
    tramadol kidney stones
    tramadol cod accepted
    cheap discount online tramadol
    compression fractures and tramadol
    tramadol online us pharmacy
    buy tramadol no prescription
    bupropion tramadol metabolism
    mutual tramadol
    tramadol hcl acetaminophen par dosage information
    tramadol pharmacy tech career cheap tramadol
    tramadol addictio
    tramadol check cod
    international pharmacy tramadol next day shipping
    disolving tramadol for injection
    keyword tramadol cheap
    ramipril tramadol
    free removal scan spyware buy tramadol
    commercial mortgage broker buy tramadol
    tramadol po box
    tramadol and motrin
    cod sold tramadol
    tramadol for dog use
    lowest prices for tramadol online
    tramadol 50mg discount
    what is tramadol 3f
    ultram tramadol side effects
    no prescription cheap tramadol
    tramadol addiction treatment methadone
    tramadol dog side effects
    order tramadol online without prescription
    buy tramadol online pharmacy online
    how to get off tramadol
    pharmacy search tramadol online
    order tramadol cod
    tramadol rx cod
    what does tramadol treat
    50mg tramadol pill
    tramadol hcl sexual side effects
    increase tramadol efficacy
    buy tramadol 0a
    ultram vs tramadol
    tramadol cause depression
    pharmacy tech online buy tramadol
    tramadol what is it
    tramadol 50
    dog pain tramadol
    tramadol 50 mg tablet
    fedex overnight free shipping tramadol
    tramadol overdose symptoms
    dosage of tramadol for dogs
    tramadol prescribing on line cod
    hcl tab tramadol
    tramadol vs lortab
    making tramadol
    taking expired tramadol
    description tramadol hcl acetaminophen par
    drug test tramadol
    buy dreampharm from tramadol
    cheap tramadol without prescription
    tramadol and clonidine
    120 tramadol free shipping
    addiction plan self tramadol treatment
    cheap tramadol 300ct 50mg no prescripion
    tramadol package insert
    tramadol hydrochloride controled substance
    cheap tramadol overnight delivery
    nonformulary tramadol
    tramadol hcl 50mg tabs side effects
    tramadol abuse methods
    cheapest tramadol overnight
    pill identification tramadol 50mg tab
    tramadol and tremors
    tramadol and prozac interactions
    denosyl and tramadol
    tramadol feline
    canadian pharmacy tramadol
    my ebay bidding buy tramadol
    tramadol hydrochloride info
    purchase tramadol online
    90 tramadol hcl acetaminophen ta
    very cheap tramadol
    tramadol keyword
    120 tablet tramadol
    buy tramadol cod
    beitrag buy hinzufgen name text tramadol
    tramadol 26 addiction
    tramadol opiate
    tramadol oral doses
    tramadol good for depression
    tramadol lamisil
    tramadol effectiveness
    lowest prices buy tramadol without prescription
    tramadol or ultram
    tramadol contain morphine
    information on side effects of tramadol
    50 hcl mg tablet tramadol
    tramadol doage
    tramadol indication
    can tramadol be taken with aspirin
    tramadol saturday cod
    inject tramadol
    free shipping tramadol
    online pharmacies tramadol
    buy gaestebuch online php tramadol
    ibuprofen tramadol at the same time
    tramadol taper
    buy cod tramadol
    tramadol select health insurance coverage
    tramadol medicine online
    tramadol puchase
    stada tramadol
    order tramadol online express delivery
    uses for the medication ultram tramadol
    ativan buy tramadol online
    tramadol bangkok
    acyclovir online pharmacy prevacid tramadol
    tramadol dosages
    why is tramadol hcl given
    cheap propecia tramadol
    tramadol 180 fre overnight shipping 99 00
    tmj and tramadol
    tramadol antidepressant properties
    side effects tramadol diarrhea
    paris cheep tramadol
    loritab hydrocodon loratab tramadol
    college ma pharmacy cheap tramadol
    proper dosage of tramadol for canines
    tramadol pet medication
    soma and tramadol combination
    tramadol c o d only
    opiate withdrawal remedy tramadol
    tramadol in dog
    er tramadol
    buy tramadol online 200 overnight
    tramadol seizures
    tramadol cheap 120
    can tramadol be detected in urine
    about tramadol hci
    tramadol dosage in canines
    buy tramadol online without a prescription
    tramadol ups next day air
    tramadol interference with opioid drug testing
    tramadol abuse with lomotil
    what is tramadol apap
    effexor and tramadol contradictions
    from information tramadol
    tramadol sr canada
    120 tramadol tabs
    tramadol hcl for dogs reactions
    prescription medications medical fed ex tramadol
    ultracet amount of tramadol
    line tramadol
    best cheap price tramadol
    tramadol an effective pain killer
    nlm tramadol
    tramadol doses for dogs
    tramadol ultram addiction
    cod tramadol carisoprodol
    tramadol additiction
    tramadol vs hydrocdone
    tramadol no prescription overnight
    tramadol cheapest online
    tramadol international delivery
    amiodarone tramadol interaction
    tramadol international pharmacy express delivery
    tramadol cheap free overnight shipping
    tramadol test
    hydrocodone tramadol pain
    tramadol apap 37 5mg 325mg
    order tramadol c o d
    tramadol use as a vicodin substitute
    ultracet patient information instructions tramadol
    buy tramadol online from usa pharmacy
    tramadol tablet
    tramadol libido
    tramadol withdrawl
    cheap soma tramadol
    tramadol ultram 300ct
    foes tramadol counteract hydrocodone
    abuse of tramadol
    tramadol interactions
    tramadol 50mg tablet
    tramadol nasal
    no prescription saturday delivery tramadol
    tramadol ud
    cheapest tramadol free script
    side effects tramadol apap ultracet
    tramadol rush
    filing income tax tramadol
    tramadol menstrual cramps
    tramadol 93 58
    tramadol 800 pills best price
    cheapest tramadol available online
    zenegra tramadol prescriptions
    tramadol money order
    us online pharmacy tramadol open weekends
    hydrocodone potentiator ultram tramadol
    mg tramadol
    tramadol viagra
    cod pharmacy tramadol
    tramadol morphine
    you can dissolve tramadol for injection
    tramadol addictions
    overnight tramadol hcl
    cheap drug prescription prilosec tramadol zyrtec
    what is tramadol product
    tramadol 50 mg overnight delivery
    tramadol discussion board
    tramadol dog dosage
    fedex online tramadol
    tramadol dosage cat
    zantac tramadol
    cat 10 tramadol
    tramadol cheap free overnight fed ex
    100 tramadol fedx overnight no prescription
    medlineplus drug information tramadol
    hydrocodon loratab loritab tramadol
    tramadol worldwide
    tramadol and robaxcin
    tramadol resistant
    lowest prices on tramadol
    50mg hcl tab tramadol
    ingredient in tramadol
    buy cheap cod online tramadol
    tramadol fedex cod
    overseas tramadol best price
    loratadine tramadol
    tramadol sizes and shapes
    headaches and migraine tramadol
    online prescription tramadol
    companys that make tramadol
    effect of the drug tramadol
    buy now tramadol
    what is tramadol 377
    nextday tramadol cod
    does tramadol test positive for opiates
    generic tramadol online
    tramadol price
    drug hydrochloride inhouse store tramadol
    ocd tramadol side affects
    hc tramadol
    morphine sulfate tramadol
    tramadol hcl acetaminophen car
    tramadol imprint code
    tramadol injection
    online prescription purchase tramadol without
    tramadol free prescription missouri
    tramadol proper doses for dogs
    dosage canine tramadol
    is tramadol an opioid urine test
    dog tramadol dosage
    drug effects side tramadol
    controlled release formulation of tramadol hydrochloride
    tramadol priority overnight
    how many states have scheduled tramadol
    tramadol mexico online
    antidepressant tramadol
    buy tramadol online cod ultram
    torrance california tramadol
    robaxin tramadol
    tramadol hydrochloride dosage
    tramadol cash on delivery
    picture pill tramadol
    low cholesterol diet tramadol on line
    hoodia diet pill buy tramadol
    ranitidine buy now tramadol
    buy cheap tramadol
    heap tramadol
    drug interaction with tramadol
    pain tramadol hydrochloride ultracet
    tramadol maximum dosage
    tramadol seratonin
    fee lowest no price tramadol
    1 buy cheap tramadol
    abuse tramadol
    slovakia tramadol manufacture
    ingreediants in tramadol tablets
    tramadol and weight gain
    discount tramadol online
    canine tramadol 50 mg
    order prescription tramadol
    800 tramadol cheap
    can tramadol be taking while brestfeeding
    tramadol pain management doctors torrancecalifornia
    tramadol sale at altairulit org
    what is tramadol hcl
    tramadol seizure
    tramadol 616
    how to withdraw from tramadol
    buy tramadol with no prescription
    tramadol ultracet
    hcl medication tramadol
    tramadol research
    man health buy tramadol
    tramadol compared to vicodin
    mg hcl tramadol
    is tramadol hcl a narcotic
    buy tramadol tension headache
    tramadol interaction with aleeve
    arthritis medicine tramadol
    tramadol index
    tramadol and warfarin
    tramadol prescription side effects
    120 tramadol free
    tramadol gout
    pharmacy degree tramadol on line
    tramadol for canines
    tramadol 100 pills cod
    order cheap tramadol
    guaranteed lowest price tramadol
    dogs tramadol hcl
    overseas pharmacy tramadol 300ct
    online tramadol cod shipping to florida
    tramadol cod cheap 120
    tramadol 100
    tax preparation software buy tramadol
    tramadol dog nursing
    tramadol for migraine
    tramadol hcl 50mg tabs
    tramadol 3d
    lowest price tramadol
    tramadol online arder
    bulk tramadol
    120 tramadol and free shipping
    buy chea tramadol
    180 tablet tramadol
    day next tramadol
    tramadol without prescription
    tramadol wholesale prices
    tramadol urine test
    tramadol ups delivery
    cheap order tramadol
    tramadol and blood thinning
    tramadol 5pm
    tramadol pet
    get tramadol online
    side effects tramadol trusted pharmacy catalog
    insomnia tramadol
    shipping tramadol
    tramadol 180 99
    cheap tramadol overnight
    tramadol buy online
    tramadol online discount cheap
    tramadol 5 500
    using tramadol and ibuprofen together
    tramadol hcl compared to lortab
    tramadol hcl 50mg dosage information
    tramadol ultram opiate drug testing
    tramadol hydrochloride ultracet
    medlineplus drug information tramadol systemic
    tramadol hcl dosage
    overnight tramadol saturday delivery
    tramadol and side effects and use
    information on medicine tramadol
    tramadol thai pharmacy
    uses for tramadol hcl
    drug tramadol tablets
    cheap drug generic tramadol zyrtec
    tramadol apa
    tramadol pain management doctors california
    tramadol and carisoprodol
    an atypical opioid analgesic tramadol
    tramadol ingestion method smoke
    tramadol for sleep
    online ordering tramadol
    tramadol litigation
    drug information tramadol
    what ingredients are in tramadol
    tramadol no prescription florida
    define tramadol
    overseas tramadol cheap
    tramadol withot prescriptions
    tramadol side effects interactions
    tramadol cause kidney problems
    tramadol saturday fedex shipping
    cheap prilosec retin tramadol
    money order tramadol
    cheap tramadol sales saturday delivery
    buy tramadol online cod cash
    tramadol or ultram withdrawal syndr
    bupropion tramadol
    ingredient tramadol
    tramadol and alcohol
    cheap tramadol
    adverse reactions to tramadol
    tramadol cat medication
    watson generic tramadol
    analgesics with tramadol
    phase safety study tramadol
    cheap cod money order tramadol
    tramadol 2bprescription
    tramadol on line prescriptions
    tramadol shipped ups
    cheap easy tramadol
    buy tramadol west coast
    tramadol therapy for pain
    tramadol 90
    makr of tramadol
    buy tramadol cheap
    counseling degree online tramadol
    school finance buy tramadol
    losing weight tramadol
    usage of tramadol hcl acetaminophen par
    1 discount tramadol
    stopping tramadol use
    tramadol controlled substance
    tramadol use in dogs
    tramadol 120
    tramadol very cheap
    miken softball bat buy tramadol
    tramadol dose
    taking tramadol paroxetine together

  2. 名扬 说:

    是啊,说的对。支持一下。

  3. 柳亚 说:

    我的博客现在大量出现垃圾评论了,郁闷死了。

  4. fin 说:

    谢谢楼主,解决我网站问题!

  5. governmentauction9723 说:

    Awesome Post. I add this Blog to my bookmarks.

  6. 不错, 试试!

  7. 搜到这篇文章,评论一下,
    留个足迹,支持一下博主。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>