blogging captcha comment-spam How To Movies performance PHP Programming seo spam The Internet theme Ultimate-Tag-Warrior Web Design Windows

ProSom For Sale

Ultimate Tag Warrior is a great Wordpress plugin ProSom For Sale, that lets you add tagging to your blog and build your own folksonomy. Where can i buy cheapest ProSom online, You can use it to show related posts or a nifty tag cloud.

As of version 2.3, ProSom over the counter, Comprar en línea ProSom, comprar ProSom baratos, though, Worpdress has tagging built right in, buy ProSom online no prescription. Cheap ProSom, That means that development on UTW has stopped, leaving us with a very nasty bug in the final version, ProSom canada, mexico, india. ProSom pics, After someone comments on a post (and the comment is approved), all the non-category tags are deleted, ProSom dosage.

This is a known bug in UTW 3.1415926, ProSom For Sale. ProSom online cod, I’m not quite ready to take the plunge into Wordpress 2.3, digging up new plugins to add the features I want and changing our theme, order ProSom online overnight delivery no prescription. ProSom recreational, So in the mean time, I found an ugly hack to stop our tags from vanshing into thin air, purchase ProSom online. Buy cheap ProSom,


  1. Go to your ultimate-tag-warrior-core.php file.

  2. Find the SaveTags function.

  3. Comment out the code that removes tags that are no longer associated with the post.


The end of the SaveTags function should look like this:
// Remove any tags that are no longer associated with the post.
/*
if ($taglist == “”) {
// since “not in ()” doesn’t play nice, ProSom duration. ProSom schedule, $q = “delete from $tablepost2tag where post_id = $postID”;
} else {
// lop off the trailing space+comma
$taglist = substr($taglist, 0, discount ProSom, Buy cheap ProSom no rx, -2);

$q = “delete from $tablepost2tag where post_id = $postID and tag_id not in ($taglist)”;
}
$wpdb->query($q);
*/
$this->ClearTagPostMeta($postID);
}


Please note that this is an ugly hack.  It makes it much more difficult to remove tags from a post when you want to.  I find that we get comments on posts way more often than we ever want to remove tags, so it’s a god tradeoff for the time being, purchase ProSom. Is ProSom safe, Got a better solution?  Post it in the comment below. ProSom trusted pharmacy reviews. ProSom blogs. Order ProSom from mexican pharmacy. Order ProSom from United States pharmacy. ProSom without prescription. Herbal ProSom. What is ProSom. ProSom gel, ointment, cream, pill, spray, continuous-release, extended-release. ProSom from canadian pharmacy. Ordering ProSom online. Is ProSom addictive. ProSom no rx. Canada, mexico, india. Effects of ProSom. Buy ProSom no prescription. Australia, uk, us, usa.

Similar posts: Buy Barbital Without Prescription. Lunesta For Sale. Medazepam For Sale. Buy Sildenafil Citrate Without Prescription. Zoloft For Sale. What is Imigran. Rx free Lunesta. Online Mogadon without a prescription. Doses Zithromax work. Restoril cost.
Trackbacks from: ProSom For Sale. ProSom For Sale. ProSom For Sale. ProSom For Sale. ProSom For Sale. Where can i buy cheapest ProSom online. ProSom used for. Online buying ProSom. ProSom from mexico. ProSom results.

Buy Zelnorm Without Prescription

Buy Zelnorm Without Prescription, Blogs are an integral part of whole "web 2.0" business, so it's not too surprising that bloggers like adding tags to their posts. If you are using Wordpress, Zelnorm results, My Zelnorm experience, one of the best ways to add tagging functionality to your site is with a plugin called the Ultimate Tag Warrior.

This article won't go into all the great features included with Ultimate Tag Warrior (UTW), Zelnorm photos. Zelnorm online cod, If you are new to the plugin, I suggest reading this great article by Lorelle, Zelnorm class. Zelnorm street price, You can use it to show related posts, tags related to a particular post, Zelnorm without a prescription, Fast shipping Zelnorm, and a bunch of other stuff. But there's no easy way to show tags related to a particular tag or category, Buy Zelnorm Without Prescription.

If you take a look at one of our category page, purchase Zelnorm online, Buy no prescription Zelnorm online, for example the Environment category page, you notice a list of related tags, Zelnorm natural. Doses Zelnorm work, Here's how I did it.

Let's assume you've already got UTW installed, Zelnorm dose, Buy Zelnorm online cod, activated, and you are including categories as tags, Zelnorm maximum dosage. Buy generic Zelnorm, Go to your theme and open up your archive.php file. The first thing you need to do is get your category name into a php variable:

Buy Zelnorm Without Prescription, $category_name = single_cat_title('', false);

Next we need to get it into the structure that UTW uses internally for tags. Feel free to dig around in ultimate-tag-warrior-core.php to learn all about it, Zelnorm cost, Zelnorm over the counter, but you can trust me that the following line will work:

$tags[0]->tag = $category_name;

Now we need to tell UTW what format to use to display the tags, using the correct structure for UTW formats:

$format = $utw->GetFormat('coloredsizedtagcloud', canada, mexico, india, Zelnorm from canadian pharmacy, '');

Finally, we give UTW the tag and the format and call ShowRelatedTags, Zelnorm reviews. Zelnorm photos, That last parameter is the number of tags to retrieve.

$utw->ShowRelatedTags($tags, order Zelnorm online c.o.d, Cheap Zelnorm, $format, 30);

Why do all this, taking Zelnorm. Zelnorm mg, Tags make your content easier to browse and are a nice little SEO boost. The Category page seems like a logical place to put tags, Zelnorm pictures, Order Zelnorm from United States pharmacy, so I thought it would be worth a try.

Hopefully this has been helpful, where can i buy cheapest Zelnorm online. Zelnorm price, It took me a couple of hours of digging around to figure it out, so I thought I would share, Zelnorm dose. Zelnorm cost, Let me know what you think below - if I get enough response, I'll code this up into a Wordpress plug-in to make it easy to install, Zelnorm recreational. Zelnorm no rx. Zelnorm duration.

Similar posts: Aleram For Sale. Buy Clonazepam Without Prescription. Buy Modalert Without Prescription. Buy Lorazepam Without Prescription. Buy Niravam Without Prescription. Buy Prednisone from canada. Buy Phentermine no prescription. Is Retin-A safe. Zelnorm samples. Low dose Paxipam.
Trackbacks from: Buy Zelnorm Without Prescription. Buy Zelnorm Without Prescription. Buy Zelnorm Without Prescription. Buy Zelnorm Without Prescription. Buy Zelnorm Without Prescription. Buy Zelnorm without a prescription. My Zelnorm experience. Rx free Zelnorm. Zelnorm results. Zelnorm pictures.

Fighting Spam on a Diet – How to fix Akismet Performance Problems

Running into strange WordPress performance problems and database errors?  Akismet could be the culprit, but we're in luck, it's an easy fix. Earlier I wrote a bit about our encounter with vicious, robotic Chinese comment spammers.  Since then we've had a few further issues, and I think I've found the culprit - Akismet, the plugin we've been using to fight the spam. First off, let me say that I think Akismet is a great plugin.  While we had hundreds of spams come in for a few days in a row, not one made it out to the public.  Very nice.  But it is a bit too aggressive in one spot, and that can slow down your blog or lock up the comment table, filling your max_connections. The problem is in akismet.php, specifically the akismet_delete_old() function.  Look for the following lines:
$n = mt_rand(1, 5); if ( $n % 5 ) $wpdb->query("OPTIMIZE TABLE $wpdb->comments");
Those of you with PHP / MySQL experience will recognize the problem immediately.  For the less code-literate, this is creating a random number between 1 and 5, and if the number has a remainder after being divided by 5, it runs and OPTIMIZE TABLE on the comments table.  That means that at random, it will lock the entire table and compute statistics after 80% off all deletes. Now, it's a good idea to optimize your tables after a large number of deletes.  But it is a pretty expensive operation, because it could be rearranging things on disk to free up space. Now, imagine you get hit by a spam bot and end up with a couple hundred spam comments.  Akismet catches them all, and 15 days later tries to delete them all in one big loop.  One big loop filled with a couple hundred table-locking, disk-intensive database operations. But it's easy to fix.  Replace the lines above with this:
$n = mt_rand(1, 100); if ( $n == 42 ) $wpdb->query("OPTIMIZE TABLE $wpdb->comments");
That will only optimize the table on average once out of 100 comments deleted.  Why 100?  It's an educated guess.  According to the MySQL documentation, at most you will need to optimize a table once a month or so, maybe once a week if you have a large number of deletes or edits on varchar fields. Why did I pick 42 for the one value out of a hundred that triggers an optimization?  You're asking the wrong question.

Comment Spam Deluge – Did our Captcha get Hacked?

Have you been having trouble reading Unsought Input lately? You're in good company – I've been having trouble writing for it.

We've been having issues with MySQL to the point of hanging connections and pleasant, but not very helpful WordPress error messages. It's nice that user-friendly errors are built-in to WordPress, since you never want to give users cryptic, blue-screen-of-death style errors. But I needed to get to the root of the problem.

I quickly put on my detective cap and tried to log in with phpMyAdmin – no luck, but this time the error message was a little more useful:

#1040 - Too many connections

Normally you encounter this error for one of two reasons: either you are being Slashdotted, or you are opening up persistent connections (with PHP's mysql_pconnect(), for example) and they are not being closed properly. In the first case, there are just too many queries at once and it fills up the connection limit, and in the second case they build up over time.

I didn't think possibility number 1 was very likely, since we don't write anything cool and geeky enough to get on Slashdot. The story about the Canadian geologist was probably our best bet. I knew I hadn't written any code to use persistent connections, but what about the rest of WordPress?

No such luck. Not a single pconnect in any of the WordPress or plugin code. Back to the first possibility – is it possible we were being hit but a distributed denial of service attack (DDoS)? More specifically (and more likely), we were being effectively DDoS'ed by comment spammers.

How did I figure it out? The connection limit for MySQL is set in the config file, my.cnf in Apache (or possibly my.ini in Windows/IIS):

[mysqld] set-variable=max_connections=100

The default is 100 and that should be enough for most sites. I needed to see what was actually being run, so I connected as a user with administrative rights and sent MySQL this command:

SHOW FULL PROCESSLIST

I got back a list of 200 locked queries, all dealing with selecting or deleting comments!

We have two measures in place to combat comment spam. One is Askimet, which is a standard plugin for WordPress. I have no hard data but I would guess almost everyone uses it. The other is a captcha plugin called Did You Pass Math?

The idea behind captchas is to give visitors a small task that is easy for humans but harder for machines. That's where those fancy images with the wavy letters and numbers come from. I wanted to use something a little simpler, so I went with Did You Pass Math. From what I've read, a big part of the power of captchas is just having something there at all to make your submit form non-standard and break the really naïve spamming scripts (see Jeff Atwood's story about his captcha in Coding Horror). It worked really well for a while.

But not any more. Askimet now reports an order of magnitude more spam blocked than ever before.

Is Did You Pass Math officially broken? It seems like I'll need to upgrade or find something different. Maybe I can hack it a bit to ask about more than just addition.

Jess B was kind enough to look through our logs and she found a ton of hits from the same IP range, and the IPs all went to spammy sites filled with more spam. Ugh.

Has anyone else noticed this with Did You Pass Math, or any other captcha plugin?

WordPress Tutorial: Using WP-Cache on Windows / IIS

Is your blog starting to bog down? Getting nasty emails from your ISP about overloading the database server? Since most blogs are read far more often than they are updated, caching your pages can result in a real performance improvement.

Wordpress has some very basic object caching, but you really need to be able to cache whole pages to see a big benefit. Luckily there is a very good page-caching plugin, WP-Cache.

If you are on a Linux or Unix host, installation is pretty straightforward.

Now, what if you are on a Windows/ IIS host and using 'date and name based', almost-pretty permalinks? No sweat. Okay, a little bit of sweat.

The code for WP-Cache makes a few assumptions about the environment it's running in which don't work out so well in Windows. My first major step in getting it to work was a great blog post on CPUIdle. Since that blog seems to be down, I'll quote their steps here:

"1. Download WP-Cache zip file (current version as of writing is 2.0.17) and unzip into wp-content/plugins folder.

2. Copy wp-content/plugins/wp-cache/wp-cache-phase1.php to wp-content/advanced-cache.php (not really sure why this isn’t simplified by the author).

3. Open the standard wp-config.php file and add define('WP_CACHE', true);

4. Now comes the tricky part:

open wp-content/plugins/wp-cache/wp-cache.php in your favourite text editor. Search for the wp_cache_add_pages function and change the function code like this:

add_options_page('WP-Cache Manager', 'WP-Cache', 5, 'wp_cache/wp_cache.php', 'wp_cache_manager');

Reason the original code doesn’ work is that the original __FILE__ resolves to wp_cache\wp_cache.php which some browser eat and convert to wp_cachewp_cache.php- which doesn’t exist.

5. Second problem is that WP-Cache checks for installation step 2) in a windows-incompatible manner. Search for the wp_cache_check_link function. Change the first three lines after the variable declaration in this way:

# if ( basename(@readlink($wp_cache_link)) != basename($wp_cache_file)) {

# @unlink($wp_cache_link);

# if (!@symlink ($wp_cache_file, $wp_cache_link)) {

if (!file_exists($wp_cache_link)) { {

6. Finally, open wp-content/plugins/wp-cache/wp-cache-phase2.php and search for ob_end_clean(); and replace with ob_end_flush();. Without this change the cached page contents are not written back when the page is initially cached. It’s unclear to me if that works under *nix, I assume it couldn’t.

7. That’s it- you’re done. No goto Options/WP-Cache and turn caching on."

Unfortunately, if you are set up like we are, using the “index.php� style permalinks, there's one last step you're going to have to do. In Windows / IIS, $_SERVER['REQUEST_URI'] is blank. You need to use $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO'] instead. If you don't, WP-Cache will happily cache your index.php file, but it will also think your /index.php/category/cheese/ page and your /index.php/2006/01/01/I-am-very-interesting/ page are the same as index.php.

In wp-cache-phase1.php (and also advance-cache.php) look for this line:

$key = md5(preg_replace('/#.*$/', '', $_SERVER['REQUEST_URI']) . wp_cache_get_cookies_values());

and change it to this:

$key = md5(preg_replace('/#.*$/', '', $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']) . wp_cache_get_cookies_values());

By the way, one nice thing about step 6 above is that it also fixes a blank-page bug that some people have run into.

Finally, what if you want to use both WP-Cache and gzip? Here's how.