Klikteller
Auteur: phoenix1985 - 17 mei 2009 - 18:52 - Gekeurd door: Wim - Hits: 3729 - Aantal punten: 5.00 (2 stemmen)
Handig script voor het bijhouden van clicks per hyperlink. Compleet met functies voor het wijzigen, verwijderen en toevoegen van hyperlinks.
Installatie:
- Database tabel toevoegen (SQL te vinden bovenin klikteller.php)
- Database instellingen configureren (ook bovenin klikteller.php)
Dit script bevat alle functies, maar je zult hem waarschijnlijk zelf willen opdelen. Bijvoorbeeld de beheerfuncties verplaatsen naar een CMS en de links naar een indexpagina.
Have fun! :-)
Code:
CREATE TABLE IF NOT EXISTS `tblLink` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`clicks` int(11) NOT NULL,
`href` varchar(255) NOT NULL,
`caption` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `tblLink` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`clicks` int( 11 ) NOT NULL ,
`href` varchar( 255 ) NOT NULL ,
`caption` varchar( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= latin1 AUTO_INCREMENT = 1 ;
<?php
/*
Author: J.F. Ronner (jfronner@gmail.com)
Script by: Jaron ICT-Services (http://www.jaronict.nl)
License: Free
Description: A free PHP click-counter script
Note: Please keep these credits intact, thank you!
Components: klikteller.php / MySQL database
*/
session_start();
// NOTE: You must fill in these values:
mysql_connect("localhost", "test", "") or die (mysql_error()); // host, user, password
mysql_select_db("test") or die (mysql_error()); // database
// NOTE: No further configuration needed from here!!!
// Link clicked
if(isset($_GET["link_id"])) {
$link_id = intval($_GET["link_id"]);
if($link_id > 0) {
$sql = sprintf("UPDATE tblLink SET clicks = 1 + clicks WHERE id = %d", $link_id);
$query = mysql_query($sql) or die (mysql_error());
$sql = sprintf("SELECT href FROM tblLink WHERE id = %d LIMIT 1", $link_id);
$query = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($query) == 1) {
header("Location: ".mysql_result(0, $query)."");
} else {
die("FOUT: De link kon niet worden geopend!");
}
}
}
// Add link
if(isset($_POST["inpAddSubmit"])) {
$pTitle = htmlspecialchars($_POST["inpTitle"]);
$pURL = htmlspecialchars($_POST["inpURL"]);
if(strlen($pTitle) < 1 || strlen($pURL) < 1) {
die("FOUT: De velden 'Titel' en 'URL' zijn verplicht!");
} else {
$sql = sprintf("INSERT INTO tblLink (clicks, href, caption) VALUES (%d, '%s', '%s')", 0, $pURL, $pTitle);
$query = mysql_query($sql) or die (mysql_error());
}
}
// Delete link
if(isset($_POST["inpDelSubmit"])) {
$pLinkID = intval($_POST["selLink"]);
if($pLinkID < 1) {
die("FOUT: De geselecteerde link heeft een incorrecte ID!");
} else {
$sql = sprintf("DELETE FROM tblLink WHERE id = %d", $pLinkID);
$query = mysql_query($sql) or die (mysql_error());
}
}
// Edit link
if(isset($_POST["inpEditSaveSubmit"])) {
$pLinkID = intval($_SESSION["LINK_ID"]);
$pClicks = intval($_POST["inpEditClicks"]);
$pTitle = htmlspecialchars($_POST["inpEditTitle"]);
$pURL = htmlspecialchars($_POST["inpEditURL"]);
unset($_SESSION["LINK_ID"]);
if($pLinkID < 1) {
die("FOUT: De geselecteerde link heeft een incorrecte ID!");
} else if(strlen($pTitle) < 1 || strlen($pURL) < 1) {
die("FOUT: De velden 'Titel' en 'URL' zijn verplicht!");
} else {
$sql = sprintf("UPDATE tblLink SET clicks = %d, caption = '%s', href = '%s' WHERE id = %d", $pClicks, $pTitle, $pURL, $pLinkID);
$query = mysql_query($sql) or die (mysql_error());
}
}
?>
<html>
<head>
<title>Klikteller</title>
</head>
<body>
<div align="left">
<h2>Link overzicht</h2>
<ul>
<?php
$query = mysql_query("SELECT id, clicks, caption FROM tblLink ORDER BY id ASC") or die (mysql_error());
if(mysql_num_rows($query) > 0) {
while($link = mysql_fetch_object($query)) {
?>
<li><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?link_id=<?php echo $link->id; ?>" target="_blank"><?php echo $link->caption; ?></a> (Aantal clicks: <?php echo $link->clicks; ?>)</li>
<?php
}
} else {
?>
<li>(Er zijn nog geen links!)</li>
<?php
}
?>
</ul>
<hr />
<h2>Link toevoegen</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="frmAddLink">
<b>Titel</b> (verplicht)
<br />
<input name="inpTitle" type="text" />
<br />
<b>URL</b> (verplicht)
<br />
<input name="inpURL" type="text" />
<br /><br />
<input name="inpAddSubmit" type="submit" value="Toevoegen" />
</form>
<hr />
<h2>Link verwijderen</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="frmDelLink">
<select name="selLink">
<option selected value="0">(geen selectie)</option>
<?php
$query = mysql_query("SELECT id, caption FROM tblLink ORDER BY id ASC") or die (mysql_error());
if(mysql_num_rows($query) > 0) {
while($link = mysql_fetch_object($query)) {
?>
<option value="<?php echo $link->id; ?>"><?php echo $link->caption; ?></option>
<?php
}
}
?>
</select>
<br /><br />
<input name="inpDelSubmit" type="submit" value="Verwijderen" />
</form>
<hr />
<h2>Link wijzigen</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="frmEditLink">
<?php
// Edit link
if(isset($_POST["inpEditSubmit"])) {
$pLinkID = intval($_POST["selLink"]);
if($pLinkID < 1) {
die("FOUT: De geselecteerde link heeft een incorrecte ID!");
} else {
$sql = sprintf("SELECT clicks, caption, href FROM tblLink WHERE id = %d", $pLinkID);
$query = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($query) == 1) {
$link = mysql_fetch_row($query);
$_SESSION["LINK_ID"] = $pLinkID;
?>
<b>Aantal clicks</b> (verplicht)
<br />
<input name="inpEditClicks" type="text" value="<?php echo $link[0]; ?>" />
<br />
<b>Titel</b> (verplicht)
<br />
<input name="inpEditTitle" type="text" value="<?php echo $link[1]; ?>" />
<br />
<b>URL</b> (verplicht)
<br />
<input name="inpEditURL" type="text" value="<?php echo $link[2]; ?>" />
<br /><br />
<input name="inpEditSaveSubmit" type="submit" value="Opslaan" />
<?php
} else {
die("FOUT: Er zijn geen gegevens gevonden voor de geselecteerde link!");
}
}
} else {
?>
<select name="selLink">
<option selected value="0">(geen selectie)</option>
<?php
$query = mysql_query("SELECT id, caption FROM tblLink ORDER BY id ASC") or die (mysql_error());
if(mysql_num_rows($query) > 0) {
while($link = mysql_fetch_object($query)) {
?>
<option value="<?php echo $link->id; ?>"><?php echo $link->caption; ?></option>
<?php
}
}
?>
</select>
<br /><br />
<input name="inpEditSubmit" type="submit" value="Wijzigen" />
<?php
}
?>
</form>
</div>
</body>
</html>
<?php
/*
Author: J.F. Ronner (jfronner@gmail.com)
Script by: Jaron ICT-Services (http://www.jaronict.nl)
License: Free
Description: A free PHP click-counter script
Note: Please keep these credits intact, thank you!
Components: klikteller.php / MySQL database
*/
// NOTE: You must fill in these values:
// NOTE: No further configuration needed from here!!!
// Link clicked
if ( isset ( $_GET [ "link_id" ] ) ) { $link_id = intval ( $_GET [ "link_id" ] ) ;
if ( $link_id > 0 ) {
$sql = sprintf ( "UPDATE tblLink SET clicks = 1 + clicks WHERE id = %d " , $link_id ) ;
$sql = sprintf ( "SELECT href FROM tblLink WHERE id = %d LIMIT 1" , $link_id ) ;
} else {
die ( "FOUT: De link kon niet worden geopend!" ) ; }
}
}
// Add link
if ( isset ( $_POST [ "inpAddSubmit" ] ) ) {
die ( "FOUT: De velden 'Titel' en 'URL' zijn verplicht!" ) ; } else {
$sql = sprintf ( "INSERT INTO tblLink (clicks, href, caption) VALUES (%d , '%s ', '%s ')" , 0 , $pURL , $pTitle ) ; }
}
// Delete link
if ( isset ( $_POST [ "inpDelSubmit" ] ) ) { $pLinkID = intval ( $_POST [ "selLink" ] ) ;
if ( $pLinkID < 1 ) {
die ( "FOUT: De geselecteerde link heeft een incorrecte ID!" ) ; } else {
$sql = sprintf ( "DELETE FROM tblLink WHERE id = %d " , $pLinkID ) ; }
}
// Edit link
if ( isset ( $_POST [ "inpEditSaveSubmit" ] ) ) { $pLinkID = intval ( $_SESSION [ "LINK_ID" ] ) ; $pClicks = intval ( $_POST [ "inpEditClicks" ] ) ;
unset ( $_SESSION [ "LINK_ID" ] ) ;
if ( $pLinkID < 1 ) {
die ( "FOUT: De geselecteerde link heeft een incorrecte ID!" ) ; die ( "FOUT: De velden 'Titel' en 'URL' zijn verplicht!" ) ; } else {
$sql = sprintf ( "UPDATE tblLink SET clicks = %d , caption = '%s ', href = '%s ' WHERE id = %d " , $pClicks , $pTitle , $pURL , $pLinkID ) ; }
}
?>
<html>
<head>
<title>Klikteller</title>
</head>
<body>
<div align="left">
<h2>Link overzicht</h2>
<ul>
<?php
?>
<li><a href="
<?php echo $_SERVER [ "PHP_SELF" ] ; ?> ?link_id=
<?php echo $link -> id ; ?> " target="_blank">
<?php echo $link -> caption ; ?> </a> (Aantal clicks:
<?php echo $link -> clicks ; ?> )</li>
<?php
}
} else {
?>
<li>(Er zijn nog geen links!)</li>
<?php
}
?>
</ul>
<hr />
<h2>Link toevoegen</h2>
<form action="
<?php echo $_SERVER [ "PHP_SELF" ] ; ?> " method="post" name="frmAddLink">
<b>Titel</b> (verplicht)
<br />
<input name="inpTitle" type="text" />
<br />
<b>URL</b> (verplicht)
<br />
<input name="inpURL" type="text" />
<br /><br />
<input name="inpAddSubmit" type="submit" value="Toevoegen" />
</form>
<hr />
<h2>Link verwijderen</h2>
<form action="
<?php echo $_SERVER [ "PHP_SELF" ] ; ?> " method="post" name="frmDelLink">
<select name="selLink">
<option selected value="0">(geen selectie)</option>
<?php
?>
<option value="
<?php echo $link -> id ; ?> ">
<?php echo $link -> caption ; ?> </option>
<?php
}
}
?>
</select>
<br /><br />
<input name="inpDelSubmit" type="submit" value="Verwijderen" />
</form>
<hr />
<h2>Link wijzigen</h2>
<form action="
<?php echo $_SERVER [ "PHP_SELF" ] ; ?> " method="post" name="frmEditLink">
<?php
// Edit link
if ( isset ( $_POST [ "inpEditSubmit" ] ) ) { $pLinkID = intval ( $_POST [ "selLink" ] ) ;
if ( $pLinkID < 1 ) {
die ( "FOUT: De geselecteerde link heeft een incorrecte ID!" ) ; } else {
$sql = sprintf ( "SELECT clicks, caption, href FROM tblLink WHERE id = %d " , $pLinkID ) ;
$_SESSION [ "LINK_ID" ] = $pLinkID ;
?>
<b>Aantal clicks</b> (verplicht)
<br />
<input name="inpEditClicks" type="text" value="
<?php echo $link [ 0 ] ; ?> " />
<br />
<b>Titel</b> (verplicht)
<br />
<input name="inpEditTitle" type="text" value="
<?php echo $link [ 1 ] ; ?> " />
<br />
<b>URL</b> (verplicht)
<br />
<input name="inpEditURL" type="text" value="
<?php echo $link [ 2 ] ; ?> " />
<br /><br />
<input name="inpEditSaveSubmit" type="submit" value="Opslaan" />
<?php
} else {
die ( "FOUT: Er zijn geen gegevens gevonden voor de geselecteerde link!" ) ; }
}
} else {
?>
<select name="selLink">
<option selected value="0">(geen selectie)</option>
<?php
?>
<option value="
<?php echo $link -> id ; ?> ">
<?php echo $link -> caption ; ?> </option>
<?php
}
}
?>
</select>
<br /><br />
<input name="inpEditSubmit" type="submit" value="Wijzigen" />
<?php
}
?>
</form>
</div>
</body>
</html>
Download code (.txt)
Stemmen
Niet ingelogd.