Forum Moderators: open
To me this constitutes blatant theft. For all purposes they are providing your content on your bandwidth and at the same time preventing you from getting a return. How can anyone buy anything while in a secruity restricted frame, when all cookies and java is disabled.
I think this is long overdue. I look forward to Google Images implementing it and will be implementing it in the very few places I frame pages.
You must be kidding - well I guess you don't like your advertising dollars from people clicking on AdSense or YPN! I've had a frame buster in place for Google Image search for ages and just put the message on the site when Yahoo Images comes along "Apologizing for not being able to display the page but Yahoo makes it malfunction, click HERE to see the page in another window."
Yahoo and all the proxy servers that also strip pages can all go rot, they will be blocked or stopped from this untolerable behavior.
Put the following PHP code at the very top of every .htm or .html file, right at the top before the <html> tag, make sure there are no leading empty lines before the code.
<?
$reffering_page=$_SERVER['HTTP_REFERER'];
$check=strpos($reffering_page, "http://insert_part_of_yahoo_images_url_here");
if($check){
print <<<EOT
-------
Insert here nasty HTML messages with a link instructing the user to click here to breake out of frames. Don't forget to mention that yahoo sucks, having us to resort to such crappy methods.
-------
EOT;
} //end if
//exit and don't display any other elements from this page
exit;
?>
Edit your .htaccess file to enable running PHP code in .html files. Add the following lines to your .htaccess
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
cons:
1) Not all viewers let you know the 'HTTP_REFERER'. Though about 88% do (viewers running Norton internet security have the 'HTTP_REFERER' info blocked by default).
2) Server will work a little harder having to parse each html file, no biggy though unless you have a really busy server.
I am sure there are many other solutions. Still trying to figure a more elegant way. The above code gets the job done in the mean time.
Hope this helps…
If a site is spending money on bandwidth and Yahoo is only providing visitors which do not generate revenue because AdSense and many other Ad scripts are blocked then there is little point in having them.
Yahoo may well change their mind when the number of images searchable through Yahoo Image Search reduces because of crawler blocking.
Personally I think that image search is a bit of a theft from websites anyway but so long as the visitor has ample chance to visit the website and perhaps click or at least view an ad then so be it.
3rd parties coming in (such as Yahoo) and altering a website which they have no business or right doing is totally out of order.
[edited by: martinibuster at 2:36 am (utc) on June 11, 2006]
[edit reason] See TOS [webmasterworld.com] [/edit]
3rd parties coming in (such as Yahoo) and altering a website which they have no business or right doing is totally out of order.
I think some posters must have misunderstood the situation. Yahoo have not altered the website in any way, they have just used a tag intended to indicate that the browser should be 'extra careful' with whatever is being loaded in the frame below.
Bearing in mind that the user does not know the full URL he or she is opening when the image link is clicked, or even the title of the page in most instances, this action understandably reflects the fact that Yahoo are trying to make up for the possibility you may end up at a site that installs malware, adware etc. or includes any number of (almost always client-side scripting based) codes based on browser exploits.
Yahoo is not responsible for the content of 3rd party sites it links to, but when you are surfing half-blind it seems a nice thought on their part to limit your exposure to things which will disrupt your browsing experience.
Some of the things it stops might seem great to you as a webmaster, but aren't for a user. Frame-busters, in particular, tend to break the back-button and mean you are not able to easily use basic functionality to return to the image results page.
You may miss out on a few dollars from ad-clicks this year, but anyone interested in your site will see all your ads as soon as they click a link on your page. You are still benefiting from branding, potential to attract one-way natural linking (images can play a strong part here) and no directly-embedded adverts will be affected.
I suggest that you come up with an advert for your site itself, something which fills the normal advertising space but tells your user what else they might see on the site. Use the space to turn the image-viewer into a site-user.
In addition, as I noted earlier, the Google toolbar popup blocker breaks every single link in the non-Yahoo frame. It seems likely that at least some other popup blockers will do the same. Seriously, every page is rendered 100% non-functional.
Yahoo have not altered the website in any way, they have just used a tag intended to indicate that the browser should be 'extra careful' with whatever is being loaded in the frame below
Did you type that with a straight face?
The tag disabled a lot of functionality on my pages, therefore they are altering the content.
Hence, I showed my disdain by telling anyone using that feature that Yahoo breaks pages in a nice big <h1>, there will be no overlooking it.
We just banned Yahoo from our image pages, very simple fix. When you have 200,000 plus people a day looking at your images through Yahoo and sucking teras of bandwidth and they are blocking our ads the decision was a easy one.
BahBye! Yahoo.
Thanks Web_speed that looks easy enough. How about the browser snif that IncrediBill was talking about to only serve it to IE users?
Including browser check.
<?
$reffering_page=$_SERVER['HTTP_REFERER'];
$browser= $_SERVER['HTTP_USER_AGENT'];
$check=strpos($reffering_page, "http://insert_part_of_yahoo_images_url_here");
$check_browser= strpos($browser, "MSIE");if($check && $check_browser){
print <<<EOT
--------------------
Insert here nasty HTML messages with a link instructing the user to click and breake out of frames. Dont forget to mention that yahoo sucks, forcing us to resort to such methods.
--------------------
EOT;//and exit without displaying any other elements from this page
exit;
} //end if
?>
$check=strpos($reffering_page, "http://insert_part_of_yahoo_images_url_here");
That won't work if $reffering_page begins with [......]
Here's what you want:
$check = (FALSE!== strpos($reffering_page, "http://insert_part_of_yahoo_images_url_here"));
and similarly for the second strpos call:
$check_browser = strpos($browser, "MSIE");
should be:
$check_browser = (FALSE!== strpos($browser, "MSIE"));
<?
$reffering_page=$_SERVER['HTTP_REFERER'];
$browser= $_SERVER['HTTP_USER_AGENT'];
$check=strpos($reffering_page, "images.search.yahoo.com");
$check_browser= strpos($browser, "MSIE");
if($check && $check_browser){print <<<EOT
--------------------
Insert here nasty HTML messages with a link instructing the user to click and breake out of frames. Dont forget to mention that yahoo sucks, forcing us to resort to such methods.
--------------------
EOT;//and exit without displaying any other elements from this page
exit;
} //end if
?>
if (strpos($haystack, $needle)) {
// assume $needle found in $haystack
} else {
// wrongly assume $needle not found in $haystack
}
I can see that you are aware of the issue, so this is for the benefit of anyone else out there, who is interested.