1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

redirect based on keyword and geo

Discussion in 'PHP & Perl' started by godsfriend, Feb 27, 2011.

  1. godsfriend

    godsfriend Registered Member

    Joined:
    Dec 27, 2008
    Messages:
    80
    Likes Received:
    37
    Hi guys and gals !

    Today I found a script, which seemed to be a solution for a quite cool redirection based on the keywords the page is clicked in google f.e. But I always get a parsing error (in line 3, if I delete it for test purposes, then in line 7). Due to the fact, I don't know really php, I would like to ask, if somebody could help.

    PHP:
    <?php

    $redirectURL 
    = ?http://www.yourdomain.com/index.htm?;

    if (isset($_SERVER[?HTTP_REFERER?]))
    {
    if (
    strpos($_SERVER[?HTTP_REFERER?], ?Diet?) !== false)
    {
    $redirectURL = ?http://www.your_diet_affiliate_link.com?;
    }
    else if (
    strpos($_SERVER[?HTTP_REFERER?], ?Dog?) !== false)
    {
    $redirectURL = ?http://www.your_dog_training_affiliate_link.com?;
    }
    else if (
    strpos($_SERVER[?HTTP_REFERER?], ?Potty?) !== false)
    {
    $redirectURL = ?http://www.your_potty_training_affiliate_link.com?;
    }
    else if (
    strpos($_SERVER[?HTTP_REFERER?], ?Toddler?) !== false)
    {
    $redirectURL = ?http://www.your_potty_training_affiliate_link.com?;
    }
    }

    ?>
    HTML:
    <html>
    <head>
    </head>
    <body>
    
    <script type=?text/javascript?>
    var gaJsHost = ((?https:? == document.location.protocol) ? ?https://ssl.? : ?http://www.?);
    document.write(unescape(?%3Cscript src=?? + gaJsHost + ?google-analytics.com/ga.js? type=?text/javascript?%3E%3C/script%3E?));
    </script>
    <script type=?text/javascript?>
    var pageTracker = _gat._getTracker(?UA-xxxxxxx-xx?);
    pageTracker._initData();
    pageTracker._trackPageview();
    </script>
    <!? html redirect ?>
    <META HTTP-EQUIV=?Refresh? CONTENT=?1; URL=<?php echo $redirectURL ?>?>
    </body>
    </html>
    The code is in one page, but the wraps here needed to be split.

    Source:http://how.best-free-information.com/2008/07/how-to-redirect-based-on-referer/

    A help would be really great. Thanks.


    Second I found here, by searching for solutions a geo targeted redirection, which would be a real powerfull php redirect script, when it could be included in a working version of the one above.

    PHP:
    <?php
      
    /**
       * Original code from svn://hostip.info/hostip/api/trunk. Optimized & enhanced by Quang Pham @ Saoma, 06.01.07.
       */   
      
    function isPrivateIP($ip) {
        list(
    $a$b$c$d) = sscanf($ip"%d.%d.%d.%d");
        return  
    $a === null || $b === null || $c === null || $d === null ||
                
    $a == 10    ||
                
    $a == 239   ||
                
    $a == 0     ||
                
    $a == 127   ||
               (
    $a == 172 && $b >= 16 && $b <= 31) ||
               (
    $a == 192 && $b == 168);
      }   
       
      function 
    getIP() {
        
    $default false;
       
        if (isset(
    $_SERVER)) {
          
    $default_ip $_SERVER["REMOTE_ADDR"];     
          
    $xforwarded_ip $_SERVER["HTTP_X_FORWARDED_FOR"];
          
    $client_ip $_SERVER["HTTP_CLIENT_IP"];   
        } else {
          
    $default_ip getenv('REMOTE_ADDR');
          
    $xforwarded_ip getenv('HTTP_X_FORWARDED_FOR');
          
    $client_ip getenv('HTTP_CLIENT_IP');
        }
       
        if (
    $xforwarded_ip != "") {
          
    $result $xforwarded_ip;
        } else if (
    $client_ip != "") {
          
    $result $client_ip;
        } else {
          
    $default true;
        }
       
        if (!
    $default) { // additional check for private ip numbers
          
    $default isPrivateIP($result);
        }
       
        if (
    $default) {
          
    $result $default_ip;
        }
       
        return 
    $result;
      }
     
      function 
    showUSContent() {
        
    // show US content here, for ex. Yahoo! ads 
      
    }
     
      function 
    showInternationalContent() {
        
    // show international content here, for ex. Google ads
      
    }
     
      function 
    showGeoTargetContent() {
        
    // make a valid request to the hostip.info API 
        
    $url "http://api.hostip.info/country.php?ip=".getIP();
     
        
    // fetch with curl
        
    $ch curl_init();
     
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_HEADER0);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $country curl_exec($ch);
     
        
    curl_close ($ch);
     
        
    // display according geotarget
        
    if ($country == "US") {
          
    showUSContent();
        } else {   
          
    showInternationalContent();
        }
      } 

      
    showGeoTargetContent();
    ?> 
    Source:http://www.blackhatworld.com/blackhat-seo/cloaking-content-generators/33511-use-php-redirect-user-based-their-geographic-location.html

    But with this script, I get also a parsing error. So I am a little confused how to handle it right.

    I appreciate any idea. May GOD bless ya ;)

    Thx.
     
  2. coderjeff

    coderjeff Junior Member

    Joined:
    Nov 20, 2007
    Messages:
    130
    Likes Received:
    26
    Location:
    USA
    I would suspect the quote marks. Some of them appear to be open " and close " quotes (such as on line 3 & 7) rather than standard " quotes (on line 5.)
     
    • Thanks Thanks x 1
  3. godsfriend

    godsfriend Registered Member

    Joined:
    Dec 27, 2008
    Messages:
    80
    Likes Received:
    37
    Life could be so simple, when eyes are open! Hehe...

    Thanks Man !! :thumb:
     
  4. coderjeff

    coderjeff Junior Member

    Joined:
    Nov 20, 2007
    Messages:
    130
    Likes Received:
    26
    Location:
    USA
    Glad to hear that did the trick! The most simple bugs can be the hardest ones to find...