This will count your outgoing hits so you know where people are going from your site. This was created quickly to manage outgoing hits, perhaps it'll be of some use. I heavily commented it so hopefully all will understand its logic. It is a very simple script. It just tracks url and number of hits.
By : philip
A new version of this lives here :
http://www.theprojects.org/scripts/linkTracker/
<?php
// : Filename : go.php
// : Version 0.0.1d
// Me : Philip Olson @ theprojects.org
// : Do whatever you want, just don't take credit as your own.
// : NO CREDIT REQUIRED. :-) This is simple, all should learn to
// create such a script, which is why it is so commented :-)
// Use : <a href="go.php?url=www.google.com">google</a>
// : Will insert url name and hit count into database.
// : Manages outgoing hit count.
// Set : mysql table name hits and url. hits is integer about 8chars
// and url is to hold at least the length of your longest linked
// url, set to about or at least 80chars.
// Ex : CREATE TABLE url_redirect (
// url varchar(100) NOT NULL,
// hits int(10) DEFAULT '1' NOT NULL,
// PRIMARY KEY (url)
// );
//
// TODO: Error checking does not exist and should / will in version .2
// If you want a version .2 then email author and ask!
/*-----------------------------------------------------------------
BEGIN USER CONFIGURATIONS
-----------------------------------------------------------------*/
// If go.php is called directly, goes to default_url.
$default_url = 'www.theprojects.org';
// Your database settings. You should include these from a secure
// location (out of your web root) but it's up to you :-)
$db_host = 'localhost'; // usually localhost
$db_name = '';
$db_user = '';
$db_pass = '';
$db_table = ''; // table holding url and hits fields.
// Debug TRUE or FALSE. If you're debuggin, set to TRUE
$debug = FALSE;
/*-----------------------------------------------------------------
END USER CONFIGURATIONS
------------------------------------------------------------------*/
// Db connect function
function db_connect()
{
global $db_host,$db_name,$db_user,$db_pass,$db_table,$connected;
global $err;
$conn = mysql_connect($db_host, $db_user, $db_pass);
if ($conn) {
$db_link = mysql_select_db($db_name,$conn);
if ($db_link) {
$connected = TRUE;
} else {
$err .= '[Db not being selected]';
}
} else {
$err .= '[Db not being connected]';
}
}
// This connects to db. In future consider more 'useful' placement
// for this function.
db_connect();
// If $url is not empty then process request
if (!empty($url)) {
// If connected to database then insert info into database otherwise
// just redirect url.
if ($connected) {
$msg .= '[$connected is TRUE, database being query\'d]';
// Select current hit count from db where field url equals url
$r = mysql_query ("select hits from $db_table WHERE url='$url'");
// Return the results from above query
$hits = @mysql_result($r,0);
// If not yet in database (0 hits) then insert new url, value=1 hit
if ($hits == 0) {
$q = "INSERT INTO $db_table (url,hits) VALUES('$url','1')";
// Else use current hit count plus 1 as we just got a hit
} else {
$q = "UPDATE $db_table SET hits = $hits+1 WHERE url='$url'";
}
// And finally, put info into the database
mysql_query($q);
}
// Else $url is empty so set as default $host
} else {
$url = "$default_url";
}
// If debug is TRUE then show debug information and do not redirect.
if ($debug) {
print '<li>$url is ' . $url;
print '<li>$hits is ' . $hits;
print '<li>$q is ' . $q;
print '<li>db_connect is ' . print db_connect();
// If $msg and $err are not empty then print them out.
if (!empty($msg)) { print '<li>Messages are ' . $msg; }
if (!empty($err)) { print '<li>Errors are ' . $err; }
} else {
// Do redirection. To be paranoid (for no good reason), clear
// cache first.
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Pragma: no-cache");
header ("Cache-Control: no-cache, must-revalidate");
header ("Location: http://$url");
exit;
}
// Email me questions, will most likely answer them.
?>
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More Link Farm Code Articles
More By Codewalkers
developerWorks - FREE Tools! |
David Barnes, Lead Evangelist for IBM Emerging Internet Technologies will discuss aspects of Web 2.0 that bring value to corporations, academia, and government. He'll also discuss IBM's vision around Web 2.0, including the importance of remixability and consumability. The discussion will culminate with examples of various IBM Software Group solutions you can use to get ahead of the Web 2.0 adoption curve. FREE! Go There Now!
|
|
|
|
Achieving true agility is a never-ending effort. We will showcase how you can become agile incrementally, a few practices at the time.Which practices should any agile team strive to adopt? What additional practices should you consider based on your needs to scale? Adopting practices are however made much easier with the right tool support. What about if your tools adapt to your practices? We will take a look at how the Jazz technology can be leveraged to make your process change the behavior of your tools. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial version of WebSphere Business Modeler Advanced V6.1.1, IBM’s premier business process modeling and analysis tool for business users that offers process modeling, simulation, and analysis capabilities. IBM WebSphere Business Modeler helps you visualize, understand, and document business processes for continuous improvement. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial version of IBM Rational Business Developer V7.1. Rational Business Developer offers rapid and simplified development of business applications and services through Enterprise Generation Language (EGL) tools, generating Java or mainframe solutions while shielding developers from technical complexities. FREE! Go There Now!
|
|
|
|
IBM Enterprise Modernization solutions help organizations evolve core IT systems towards modern architectures and technologies—reducing the burden of maintenance and freeing up resources to develop new business requirements and capabilities. With the IBM Enterprise Modernization Sandbox for System z you can evaluate IBM Enterprise Modernization solutions focused on five key areas: Assets, Architectures, Skills, Processes and Infrastructures, and Investment. Each solution is based upon real customer experiences and offers a proven path to get you started with your modernization projects. FREE! Go There Now!
|
|
|
|
This Fall, IBM Rational talks to you directly through a special teleconference series giving you access to the best minds in IBM Rational - product experts and market thought leaders who will answer your questions during these pre-scheduled telephone conference calls. Register today! FREE! Go There Now!
|
|
|
|
This whitepaper provides areas to consider when evaluating any software configuration management solution. It addresses how the IBM solutions (Rational ClearCase and Rational ClearQuest) meet the needs and requirements of both project leaders and developers to provide successful Software Change and Configuration Management. FREE! Go There Now!
|
|
|
|
Try the latest version of IBM Rational Manual Tester V7.0.1 by downloading a free trial from IBM developerWorks. This manual test authoring and execution tool promotes test step reuse to reduce the impact of software change on testers and business analysts and addresses the needs of teams performing at least a portion of their testing manually. FREE! Go There Now!
|
|
|
|
As businesses grow increasingly dependent upon Web applications, these complex entities grow more difficult to secure. Most companies equip their Web sites with firewalls, Secure Sockets Layer (SSL), and network and host security, but the majority of attacks are on applications themselves – and these technologies cannot prevent them. This paper explains what you can do to help protect your organization, and it discusses an approach for improving your organization’s Web application security. FREE! Go There Now!
|
|
|
|
WebSphere Process Server delivers a unique integration framework that simplifies existing IT resources. Often, as IT assets grow to support business demand, so too does their complexity and manageability. In this webcast, we’ll discuss how WebSphere Process Server helps deliver an SOA infrastructure that provides a common model to orchestrate, mediate, connect, map, and execute the underlying IT functions. Discover how WebSphere Process Server simplifies integration of business processes by leveraging existing IT assets as reusable services without the complexities of traditional integration methodologies. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |