PHP Question for PHP Pro

9 replies
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?
#php #pro #question
  • Profile picture of the author Brandon Tanner
    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
    }
    }

    ?>
    Signature

    {{ DiscussionBoard.errors[6654454].message }}
    • Profile picture of the author wayfarer
      Originally Posted by Brandon Tanner View Post

      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.
      Signature
      I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
      {{ DiscussionBoard.errors[6659423].message }}
      • Profile picture of the author Brandon Tanner
        Originally Posted by wayfarer View Post

        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.
        Signature

        {{ DiscussionBoard.errors[6663077].message }}
        • Profile picture of the author wayfarer
          Originally Posted by Brandon Tanner View Post

          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.
          Signature
          I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
          {{ DiscussionBoard.errors[6663373].message }}
  • Profile picture of the author programming
    Usually we use this to fool SE spiders. It's called "Cloaking". Check the wikipedia article.
    {{ DiscussionBoard.errors[6656653].message }}
    • Profile picture of the author DJL
      @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?
      Signature

      None are more hopelessly enslaved than those who falsely believe they are free.
      --Johann Wolfgang von Goethe, Elective Affinities (1809)

      {{ DiscussionBoard.errors[6658683].message }}
      • Profile picture of the author Brandon Tanner
        Originally Posted by DJL View Post

        @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???

        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.
        Signature

        {{ DiscussionBoard.errors[6659069].message }}
  • Profile picture of the author jaasmit
    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.
    {{ DiscussionBoard.errors[6658996].message }}
  • Profile picture of the author DJL
    Thanks, Brandon, I will take a look at InstantWP.
    Signature

    None are more hopelessly enslaved than those who falsely believe they are free.
    --Johann Wolfgang von Goethe, Elective Affinities (1809)

    {{ DiscussionBoard.errors[6659133].message }}

Trending Topics