Warrior Forum - The #1 Digital Marketing Forum & Marketplace

Warrior Forum - The #1 Digital Marketing Forum & Marketplace (https://www.warriorforum.com/)
-   Programming (https://www.warriorforum.com/programming/)
-   -   PHP Question for PHP Pro (https://www.warriorforum.com/programming/640422-php-question-php-pro.html)

christhurman 21st July 2012 10:41 AM

PHP Question for PHP Pro
 
If I use an include function on my index page, which says something like "if user came from ESPN include Sports.php page, else include Music.php page" so the user will stay on the index.php page but what he is shown will be different based on where he came from, is this something that user can identify?

Brandon Tanner 21st July 2012 02:58 PM

Re: PHP Question for PHP Pro
 
Only way I know how to do that is by using 'HTTP Referer'. Unfortunately it's not 100% reliable, because not all browsers support it. But it should work for the majority of your visitors.


<?php

$referer = $_SERVER['HTTP_REFERER']; // Get the referring URL and put it in a variable

if(isset($referer)) // Check to make sure that the variable is set
{
$espn = strpos($referer, "espn"); // Search the variable to see if it contains "espn"
if ($espn === true) {
include ('Sports.php'); // If it does, include Sports.php
} else {
include ('Music.php'); // If it doesn't, include Music.php
}
}

?>

programming 22nd July 2012 04:17 AM

Re: PHP Question for PHP Pro
 
Usually we use this to fool SE spiders. It's called "Cloaking". Check the wikipedia article.

DJL 22nd July 2012 01:24 PM

Re: PHP Question for PHP Pro
 
@Brandon Tanner,
Can you please advise me, what development environment do you recommend for testing such things on my Windows PC before potentially screwing up an active WordPress blog?

jaasmit 22nd July 2012 02:31 PM

Re: PHP Question for PHP Pro
 
If you design your site in wordpress then you can do that by adding some plugins.
If you are not using wordprees then you have to that by coding php program.

Brandon Tanner 22nd July 2012 02:46 PM

Re: PHP Question for PHP Pro
 
Quote:

Originally Posted by DJL (Post 6658683)
@Brandon Tanner,
Can you please advise me, what development environment do you recommend for testing such things on my Windows PC before potentially screwing up an active WordPress blog?

Huh?... You don't like screwing up active blogs??? :D

For local testing, I use (and highly recommend) XAMPP. I've never tried to install WP under XAMPP though, as I develop non-WP sites. But I don't see any reason why it wouldn't work.

If you only do WP development, then it might be easier for you to use something like this.

DJL 22nd July 2012 02:54 PM

Re: PHP Question for PHP Pro
 
Thanks, Brandon, I will take a look at InstantWP.

wayfarer 22nd July 2012 04:08 PM

Re: PHP Question for PHP Pro
 
Quote:

Originally Posted by Brandon Tanner (Post 6654454)
Only way I know how to do that is by using 'HTTP Referer'. Unfortunately it's not 100% reliable, because not all browsers support it.

Actually that's not quite true. All major browsers, including all the mobile browsers, support the HTTP Referer header (yes, the misspelling of referrer is accurate..). The problem is, and why it's not 100% reliable, is that plugins, or even the browser's settings, can allow users to either spoof or turn off the sending of this header. Since it's totally up to the client (browser), whether or not to send it, you can't always count on it. You can, however, count on it to be there for 99% of users, if not more, so it can tell you something. You just need to account for cases where it isn't being sent to the server.

Brandon Tanner 23rd July 2012 07:51 AM

Re: PHP Question for PHP Pro
 
Quote:

Originally Posted by wayfarer (Post 6659423)
Actually that's not quite true. All major browsers, including all the mobile browsers, support the HTTP Referer header (yes, the misspelling of referrer is accurate..). The problem is, and why it's not 100% reliable, is that plugins, or even the browser's settings, can allow users to either spoof or turn off the sending of this header. Since it's totally up to the client (browser), whether or not to send it, you can't always count on it. You can, however, count on it to be there for 99% of users, if not more, so it can tell you something. You just need to account for cases where it isn't being sent to the server.

I never said that major browsers don't support it... I said that all browsers don't support it... which is true. But you bring up a good point, that the user can also set their browser to block/hide this info if they want. And this can also be done in many firewall/antivirus programs.

And to the OP: I forgot to mention that 'Http Referer' will only work if the visitor comes to your site via a hyperlink on the referrer's site. If they just type your URL in the address bar or click your link in their 'bookmarks' folder, it won't work. For that reason alone, you're not going to get the referrer info for anywhere near 99% of your visitors. I actually tested this some years ago on one of my sites, and if I recall correctly, it was more in the 60 - 70% range. So just something to keep in mind.

wayfarer 23rd July 2012 08:48 AM

Re: PHP Question for PHP Pro
 
Quote:

Originally Posted by Brandon Tanner (Post 6663077)
If they just type your URL in the address bar or click your link in their 'bookmarks' folder, it won't work. For that reason alone, you're not going to get the referrer info for anywhere near 99% of your visitors.

True, direct referrals won't send a referral no matter what.


All times are GMT -6. The time now is 12:46 PM.