Scripts
Linksysteem
Een simpele linksysteem (sommigen noemen het ook affiliatie overzicht) welke ik voor Lissy gemaakt heb maar ook met jullie wil delen. De werking is vrij simpel, op een door jou gewenste pagina creeër je een overzicht van allemaal linkje & omschrijvingen. Zodra iemand op een link klikt opend er een nieuw venster met daarop de desbetreffende webpagina. Ondertussen hebben wij al de database geupdate zodat we ook kunnen zien hoevaak iemand op een link klikt (uit) en hoevaak er iemand binnen komt (in). Het moet redelijk simpel te implementeren zijn en anders kan je jou vragen deponeren in de comments.
linksysteem
Alleereerst de databaseverbinding.php:
<?php
// 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.');
?>
Op de webpagina waar je het overzicht van de linkjes wilt hebben voeg je de volgende code toe (of include je).
<?php
//Database verbinding maken
require_once('databaseverbinding.php');
//We halen alle linkjes op met een SQL Query.
$query = "SELECT naam, id, omschrijving FROM affiliatie ORDER BY naam ASC";
$resultaat = mysql_query($query);
//Als er resultaat is en er één of meerdere linkjes zijn...
if($resultaat && mysql_num_rows($resultaat) >= 1)
{
//... gaan we alle linkjes en hun omschrijving laten zien.
while($rij = mysql_fetch_array($resultaat))
{
$naam = stripslashes($rij['naam']);
$omschrijving = stripslashes($rij['omschrijving']);
$id = $rij['id'];
echo '<p><a href="?actie=uitgaand&linkid='.$id.'" target="_blank">'.ucfirst($naam).'</a> '.$omschrijving.'</p>';
}
}
?>
[b]Bovenaan[/b] de index.php, of welke andere pagina de bovenstaande linkjes naartoe verwijzen (je kan ook een speciale link.php o.i.d. aanmaken) zet je de volgende code:
<?php
if($_SERVER['REQUEST_METHOD'] == "GET")
{
if(isset($_GET['actie']))
{
//Is de actie toegestaan?
$acties = array('inkomend','uitgaand');
$actie = mysql_real_escape_string($_GET['actie']);
if(in_array($actie,$acties))
{
if(isset($_GET['linkid']))
{
if(is_numeric($_GET['linkid']))
{
$linkid = mysql_real_escape_string($_GET['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.'');
}
}
}else{
echo 'Sorry, dit accepteer ik niet.';
}
}
}else{
echo 'Sorry, deze actie is niet toegestaan';
}
}
}
?>
Uiteraard hebben we ook een administratie systeem nodig. Vrij eenvoudig maar wel [url=http://test.i-cey.net/linksysteem/administratie.php]werkend[/url]. Je moet hem zelf nog beveiligen met een loginsysteem of een .htaccess.
[code]
<h2>Links toevoegen</h2>
<?php
require_once('databaseverbinding.php');
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['naam']) && isset($_POST['url']) && isset($_POST['omschrijving']))
{
$naam = mysql_real_escape_string($_POST['naam']);
$url = mysql_real_escape_string($_POST['url']);
$omschrijving = mysql_real_escape_string($_POST['omschrijving']);
$query = "INSERT INTO affiliatie (naam, url, omschrijving) VALUES('".$naam."','".$url."','".$omschrijving."')";
$resultaat = mysql_query($query);
if($resultaat)
{
echo '<p id="reden">De link is succesvol toegevoegd!</p>';
}else{
echo '<p id="reden">Sorry, er ging iets mis bij het updaten van de database!</p>';
}
}
}
?>
<form method="post" name="formulier" action="">
<table>
<tr>
<td width="100">Naam:</td>
<td><input type="input" name="naam"></td>
</tr>
<tr>
<td>Url:</td>
<td><input type="input" name="url"></td>
</tr>
<tr>
<td>Omschrijving:</td>
<td><textarea name="omschrijving" rows="5" cols="40">Beschrijving van de link...</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Toevoegen" name="verstuur"> <input type="reset" value="Wis Formulier"></td>
</tr>
</table>
</form>
<h2>Links verwijderen</h2>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(!empty($_POST['delete']))
{
$i = 0;
$ii = 0;
foreach($_POST['delete'] as $id)
{
$query = "DELETE FROM affiliatie WHERE id =".mysql_real_escape_string($id)."";
$resultaat = mysql_query($query);
if($resultaat && (mysql_affected_rows() == 1))
{
$i++;
}else{
$ii++;
}
}
echo '<p id="reden">De database is geupdate, er zijn '.$i.' records goed verwijderd en '.$ii.' mislukt!</p>';
}
}
$query = "SELECT id, naam, url, inkomend, uitgaand FROM affiliatie ORDER BY naam";
$resultaat = mysql_query($query);
if ($resultaat && (mysql_num_rows($resultaat) >= 1))
{
?>
<form method="post" name="formulier" action="">
<table>
<tr>
<td></td>
<td><b>Naam:</b></td>
<td><b>Url:</b></td>
<td><b>Inkomend:</b></td>
<td><b>Uitgaand:</b></td>
</tr>
<?php
while($rij = mysql_fetch_array($resultaat))
{
echo '<tr>';
echo '<td><input type="checkbox" name="delete[]" value="'.$rij['id'].'"></td>';
echo '<td>'.ucfirst($rij['naam']).'</td>';
echo '<td><a href="'.$rij['url'].'" target="_blank">'.$rij['url'].'</a></td>';
echo '<td>'.$rij['inkomend'].'</td>';
echo '<td>'.$rij['uitgaand'].'</td>';
echo '</tr>';
}
?>
<tr>
<td> </td>
<td colspan="4"><input type="submit" value="Verwijderen" name="verstuur"> <input type="reset" value="Wis Formulier"></td>
</tr>
</table>
</form>
<?php
}else{
echo '<p>Sorry, er staan nog geen links in de database!</p>';
}
?>
[/code]
Zo, nu rest mij alleen nog de databasecode:
[code]
CREATE TABLE affiliatie (
id int(11) NOT NULL auto_increment,
naam varchar(255) NOT NULL,
omschrijving text NOT NULL,
url varchar(255) NOT NULL,
inkomend int(11) NOT NULL default '0',
uitgaand int(11) NOT NULL default '0',
PRIMARY KEY (id)
);
[/code]
Als iets niet duidelijk is of niet werkt hoor ik het graag...
Reacties
0