We recently upgraded to php 5.4.15, and it does not have magic quotes on as default. It was time :)
But it turns out wp is adding its own slashes to POST and everything, for its internal compatibility reasons.
Now in a lot of plugins, I had some sensible functions that would strip slashes IF they were added by php:
function POSTGET_stripslashes_all($forced=false)
{
if(!get_magic_quotes_gpc() and !get_magic_quotes_runtime()) if(!$forced) return;
....
But wp adds slashes regardless of php settings, So I ended up stripping slashes ALWAYS regardless of any settings. Problem is, what if user wanted to use literal slashes in its input?
How to bring some sense into this? I do not want to strip slashes always. How did you approach this? Do you just give up and strip everything when it comes to wp? Is there a nice rule of thumb that says where and where not wp slashes things?