| <?php |
| /******************************************************************************* |
| * Copyright (c) 2007 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Denis Roy (Eclipse Foundation)- initial implementation |
| *******************************************************************************/ |
| |
| |
| #***************************************************************************** |
| # |
| # redirector.php |
| # |
| # Author: Denis Roy |
| # Date: 2007-09-07 |
| # |
| # Description: redirector for campaign URL tracking |
| # |
| # |
| #***************************************************************************** |
| |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); |
| require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_rw.class.php"; |
| $App = new App(); |
| |
| # get the incoming parameters |
| $_TAG = $App->getHTTPParameter("tag", "GET"); |
| |
| if(strlen($_TAG) < 1) { |
| # error |
| header("Location: /"); |
| } |
| |
| # strip potentially bad characters from file |
| $_TAG = preg_replace('/["\'?%$#@!;*&]/i', '', $_TAG); |
| |
| |
| |
| |
| |
| # Connect to databases |
| $dbc_RW = new DBConnectionRW(); |
| $dbh_RW = $dbc_RW->connect(); |
| |
| |
| $SQL = "SELECT TargetUrl FROM Campaigns WHERE CampaignKey = " . $App->returnQuotedString($_TAG) . " AND DateExpires > CURDATE()"; |
| $rs = mysql_query($SQL, $dbh_RW); |
| |
| if($myrow = mysql_fetch_assoc($rs)) { |
| # redirect the browser now |
| header("Location: " . $myrow['TargetUrl']); |
| |
| # track the click |
| # Do a reverse lookup on the client IP |
| $client_hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']) ; |
| $SQL = "INSERT DELAYED INTO CampaignClicks ( |
| ClickID, |
| CampaignKey, |
| SubKey, |
| HostName, |
| TimeClicked) VALUES ( |
| "", |
| " . $App->returnQuotedString($_TAG) . ", |
| NULL, |
| " . $App->returnQuotedString($client_hostname) . ", |
| NOW())"; |
| |
| mysql_query($SQL, $dbh_RW); |
| } |
| else { |
| # error finding Campaign |
| header("Location: /"); |
| } |
| |
| $dbc_RW->disconnect(); # disconnects all pending DB connections |
| $rs = null; |
| $dbh_RW = null; |
| $dbc_RW = null; |
| |
| ?> |