Voorbeeld:
klik.
Code:
<?php
error_reporting(E_ALL);
// Database gegevens.
$db_host = ''; // Server
$db_user = ''; // Gebruikersnaam
$db_pass = ''; // Wachtwoord
$db_name = ''; // Database
mysql_connect($db_host, $db_user, $db_pass) or die('Er kon geen verbinding met de server worden gemaakt.');
mysql_select_db($db_name) or die('Ik kon de juiste database niet vinden.');
function updaten($actie,$linkid)
{
// Mysql real escape string voor een stukje extra veiligheid
$actie = mysql_real_escape_string($actie);
$linkid = mysql_real_escape_string($linkid);
//Updaten die handel!
$query = "UPDATE affiliatie SET ".$actie." = ".$actie." + 1 WHERE id = ".$linkid."";
$resultaat = mysql_query($query);
//Als het updaten gelukt is, en de actie is uitgaand...
if($resultaat && (mysql_affected_rows() == 1) && $actie == 'uitgaand')
{
//We halen de url op
$query = "SELECT url FROM affiliatie WHERE id = ".$linkid."";
$resultaat = mysql_query($query);
if($resultaat && mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
$url = stripslashes($rij['url']);
//Doorsturen die handel!
header('Location:'.$url.'');
}
}
}
if($_SERVER['REQUEST_METHOD'] == "GET")
{
if(isset($_GET['actie']))
{
//Is de actie toegestaan?
$acties = array('inkomend','uitgaand');
$actie = $_GET['actie'];
if(in_array($actie,$acties))
{
if(isset($_GET['linkid']))
{
if(is_numeric($_GET['linkid']))
{
$linkid = $_GET['linkid'];
updaten($actie,$linkid);
}else{
echo 'Sorry, dit accepteer ik niet.';
}
}
}else{
echo 'Sorry, deze actie is niet toegestaan';
}
}
}
$query = "SELECT naam, id, inkomend, uitgaand FROM affiliatie";
$resultaat = mysql_query($query);
if($resultaat && mysql_num_rows($resultaat) >= 1)
{
echo '<table><tr><td><b>Website:</b></td><td>Inkomend:</td><td>Uitgaand:</td></tr>';
while($rij = mysql_fetch_array($resultaat))
{
$naam = stripslashes($rij['naam']);
$id = $rij['id'];
$inkomend = $rij['inkomend'];
$uitgaand = $rij['uitgaand'];
echo '<tr><td><a href="?actie=uitgaand&linkid='.$id.'" target="_blank">'.ucfirst($naam).'</a></td><td>'.$inkomend.'</td><td>'.$uitgaand.'</td></td>';
}
echo '</table>';
}
?>
Databasecode:
CREATE TABLE affiliatie (
id int(11) NOT NULL auto_increment,
naam varchar(255) NOT NULL,
url varchar(255) NOT NULL,
inkomend int(11) NOT NULL default '0',
uitgaand int(11) NOT NULL default '0',
PRIMARY KEY (id)
);
Sommige dingen zijn misschien wat overdreven, sommige dingen kunnen inderdaad korten of efficienter. Maar ik kijk meer naar het perspectief van de eindgebruiker die het makkelijk moet kunnen begrijpen en/of aanpassen ;). Volledig uitschrijven is dan wel handig.