Loading...   Upload Image

Affiliate ManagerTutorials » PHP/MySQL Tutorials » Affiliate Manager

Verfasst von Alice am 18.04.2009 - wurde schon 5255 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
2x bewertet
Schwierigkeit: einfach
Kommentare: [ 7 ]

Tag - Schlagwort PHP Tag - Schlagwort Affiliate Tag - Schlagwort Count

Affiliate Manager - Tutorial

In diesem Tutorial moechte ich euch zeigen wie ihr eure Affiliates, mit Hilfe einer MySql Datenbank, ganz easy verwalten koennt.

Hinweis


Neue, verbesserte Version, des Affiliates Managers, mit Login-Bereich...


Was wird benoetigt?


- Webspace der PHP unterstuetzt
- eine MySql Datenbank / PHPMyAdmin
- Php/MySQL Basiskenntnise

Step 1


Wir erzeugen eine neue Tabelle mit Hilfe von PHPMyAdmin ...
CREATE TABLE `affis` (
`id` int(5) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`button` varchar(255) NOT NULL default '',
`view` int(5) NOT NULL default '0',
PRIMARY KEY (`id`)
);

Step 2 - config.inc.php


Fangen wir mit dem Verbindungsaufbau zur Datenbank an, dafuer benoetigen wir die Datei config.inc.php
<?php // config.inc.php

//---------------------------
$host = "localhost";        // Adresse des Datenbankservers, fast immer localhost
$user = " ";    			// Dein MySQL Benutzername
$pass = "";    				// Dein MySQL Passwort
$dbase = " ";  				// Name der Datenbank
//---------------------------

$connection = mysql_connect("$host","$user","$pass") OR DIE ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection) OR DIE ("Auswahl der Datenbank nicht moeglich."); 
?>

Die Variable $connection definiert die Verbindung zur Datenbank. Der Befehl mysql_connect oeffnet eine Verbindung zum MySQL-Server. Sollte die Verbindung nicht hergestellt werden koennen, so wird das Script, mit OR DIE abgebrochen und eine Fehlermeldung wird ausgegeben.

Die Variable $db definiert die Auswahl der Datenbank, mit dem Befehl mysql_select_db wird die Datenbank dann ausgewaehlt, sollte dies nicht moeglich sein wird eine Fehlermeldung ausgegeben.

Step 3 - affis.php


Die Datei affis.php ist die 'Ausgabeseite', welche alle vorhandenen Affiliates, sowie deren Aufrufe, anzeigt.
<?php // affis.php

include('config.inc.php');				// DB Verbindung einbinden

echo "<h1>All Affiliate</h1>";

$abfrage = mysql_query("SELECT id,name,view,button FROM affis");

while($row = mysql_fetch_object($abfrage)){
?>
<div style="float: left; 
			margin: 0px 25px 10px 15px;
			width: 225px;
			font: normal 12px verdana, tahoma, sans-serif;
			text-align: left;
			border: 1px solid #C7D0D9;
			background-color: #E2E7EB">
			
<span style="float: left; padding-right: 5px;">
	<a href="go.php?id=<?= $row->id; ?>"><img border="0" src="<?= $row->button; ?>" width="88" height="31" alt="<?= $name; ?>" /></a>
</span>
<a href="go.php?id=<?= $row->id; ?>"><?= $row->name; ?></a><br />
Visits: <?= $row->view; ?>
</div>
<?php 
} // while
?>

Step 4 - go.php


Die Datei go.php zaehlt die Klicks und leitet dann auf die entsprechende URL weiter...
<?php // go.php

include('config.inc.php');				// DB Verbindung einbinden

$id = mysql_real_escape_string($_GET['id']); // Variable definieren

if(!isset($_GET['id'])){ // Parameteruebergabe pruefen
	
	echo "Es wurde keine ID uebergeben!";
	
}else{ // sofern Parameter uebergeben wurde

	// DB Abfragen
	$abfrage = mysql_query("SELECT url FROM affis WHERE id='$id'"); 

	$row = mysql_fetch_object($abfrage); 
	
	//setzt view+1 und leitet den Besucher weiter
	$update = mysql_query("UPDATE affis SET view = view+'1' WHERE id='$id'"); 
	
		if($update){
			header("Location: $row->url");
		}else{
			echo "Es ist ein Fehler aufgetreten";
		}	
		
} // close ID uebergeben
?>

Hier wird als erstes die DB Verbindung eingebunden, dann wird ueberprueft ob eine ID per GET uebergeben wurde, sollte dies nicht der Fall sein, wird eine Fehlermeldung ausgegeben. Sofern denn eine ID uebergeben wurde, wird die passende URL dazu aus der DB ausgelesen und anschliessend wir der Klick dann mittels mysql_query("UPDATE affis SET view = view+'1' WHERE id='$id'"); um eines erhoeht, es folgt mittels header("Location: $row->url"); die Weiterleitung auf die entsprechende Seite.

Step 5 - admin.php


Eigentlich wuerde das ja jetzt schon ausreichen, wir haben die Ausgabe der Daten(affis.php) und die Zaehlung der Klicks(go.php), die Daten der Affiliates koennten auch per Hand in die Datenbank eingetragen werden,
aber dann waer es ja nicht easy, sondern kompliziert ;)

Kommen wir also nun zum 'Adminpanel' der Datei admin.php...
<?php // admin.php

session_start(); // startet die Session 

//---------------------- Logindate --------------------------------- //
$grafixx_name = "USERNAME";                // Loginname angeben
$grafixx_pass = "PASSWORT";                // Loginpasswort angeben
//------------------------------------------------------------------ //
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 

<head>
<title>Grafixx - Affiliates</title> 

<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" type="text/css" href="style.css" />

</head>
<body>

<div id="ram">
<h1 id="header">Grafixx - Affiliates</h1>
<br />

<?php // ------------------------------------------------------------------------------------------------------
// WENN NICHT EINGELOGGT
// ------------------------------------------------------------------------------------------------------

if(!isset($_SESSION['login'])){ // Wenn nicht eingeloggt

if(isset($_POST['admin_login'])) { // sofern submit gedrueckt

$login_name = strip_tags($_POST['admin_name']); // Variable definieren
$login_pass = strip_tags($_POST['admin_pass']);	// Variable definieren

    if(empty($login_name)) { 
        $message .= 'Bitte geben Sie ihren Usernamen ein ... <br />'; $error = "1";
     }     
     if(empty($login_pass)) { 
        $message .= 'Bitte geben Sie ihr Passwort ein ... <br />'; $error = "1";
     }     
     
     if($login_name != $grafixx_name OR $login_pass != $grafixx_pass){
        $message .= 'Zugriff verweigert ... <br />'; $error = "1";
     }
    
    if($error != "1"){
        
            // session handle-----------------------------
            $_SESSION['login'] = $_SERVER['REMOTE_ADDR'];

            echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";
    }
    
    if($error == "1"){
        echo "<h1>Error ...</h1>\n <p>$message</p>";
    }

} // close isset [admin_login]
?>

<form action="" method="post">
<fieldset style="width: 300px">
<legend>Login</legend>
<label for="user">Username: </label>
<input type="text" name="admin_name" style="width: 250px" />

<label for="passwort">Passwort:&nbsp; </label>
<input type="password" name="admin_pass" style="width: 250px" />
<br /><br />
<input type="submit" value=" Login " name="admin_login" />
</fieldset>

</form>
<?php 
// ------------------------------------------------------------------------------------------------------
// WENN EINGELOGGT
// ------------------------------------------------------------------------------------------------------
}else{

include('config.inc.php');				// DB Verbindung einbinden

// DB Abfragen
$abfrage = mysql_query("SELECT id, name, url, view FROM affis");

	echo "<table width=\"650\" cellpadding=\"3\" class=\"tab\">\n";
	echo "<tr>\n <th width=\"15\">ID</th>\n";
	echo "<th>Name</th>\n";
	echo "<th width=\"200\">Website</th>\n";
	echo "<th width=\"55\">Klicks</th>\n";
	echo "<th width=\"95\">Bearbeiten</th>\n </tr>\n";

// Affiliates ausgeben
while($row = mysql_fetch_object($abfrage)){
	
 $zeile++;  // jede 2te Zeile einfaerben
   if ($zeile % 2 == 0) {
       echo "<tr>";
   } else {
          echo "<tr bgcolor=\"#f5f5f5\">";
   }

	echo "<td align=\"right\">".$row->id."</td>\n";
	echo "<td>".$row->name."</td>\n";
	echo "<td>".$row->url."</td>\n";
	echo "<td align=\"center\">".$row->view."</td>\n";

	echo "<td align=\"center\">\n";
	echo "<a href=\"admin.php?action=loeschen&amp;id=".$row->id."\">Delete</a> | \n";
	echo "<a href=\"admin.php?action=edit&amp;id=".$row->id."\">Edit</a>\n";
	echo "</td>\n";
	echo "</tr> \n";

} // close while

 echo "</table><br />\n";

 echo "<p><a href=\"admin.php?action=new\" class=\"button\">Neuen Affiliate anlegen</a></p>"; // LINK zum AFFI anlegen

// ------------------------------------------------------------------------------------------------------
// AFFILLIATE NEW - AFFILIATE EDIT 
// ------------------------------------------------------------------------------------------------------

$id = mysql_real_escape_string($_GET['id']);	// Variable definieren
$action = strip_tags($_GET['action']);			// Variable definieren

if($action == 'edit' OR $action == 'new') { // Sofern nicht geloescht werden soll ...

	if(isset($_GET['id'])){ // Parameteruebergabe pruefen

		// DB Abfrage
	    $abfrage = mysql_query("SELECT name, email, url, button FROM affis WHERE id='$id'");
	    $row = mysql_fetch_array($abfrage);
  
	    $name = $row['name']; 		// Variable definieren
	    $email = $row['email'];		// Variable definieren
	    $url = $row['url'];			// Variable definieren
	    $button = $row['button'];	// Variable definieren
    
	} // if $_GET 'id'

// ------------------------------------------------------------------------------------------------------
// SUBMIT GEDRUECKT
// ------------------------------------------------------------------------------------------------------

if(isset($_POST['submit'])){

 $name = mysql_real_escape_string($_POST['name']);		// Variable definieren
 $email = mysql_real_escape_string($_POST['email']);		// Variable definieren
 $url = mysql_real_escape_string($_POST['url']);		// Variable definieren
 $button = mysql_real_escape_string($_POST['button']);	// Variable definieren


// Check alle Felder ausgefuellt 
    if($name == '' || $button == '' || $url == ''){
    
		echo "<div class=\"error\"><h2>Error ...</h2>\n <p>Bitte Danke alle Felder ausfuellen ...</p>\n</div>\n";

    }else{ // Wenn alles ausgefuellt wurde
    
		if($action == "new"){  // ------------------------------- Wenn action = new
    
       		$eintragen = mysql_query("INSERT INTO affis (name, email, button, url) 
        						  	  VALUES ('$name','$email','$button','$url')");
        }// close new						  	  

		if($action == "edit") {  

	    	$eintragen = mysql_query("UPDATE affis SET    
	    		                      				name='$name',
        			                  				email='$email',
        			                  				url='$url',
        			                  				button='$button'
        			   				WHERE id='$id'");
         } // close edit
         			   				
   		 if ($eintragen){
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";	// Weiterleitung => Admin
		}else{
		   	echo "<p>Es ist ein Fehler aufgetreten ".mysql_error()."</p>";
    	} // close $eintragen

	} // close Check alle Felder ausgefuellt

}// close Submit

// ------------------------------------------------------------------------------------------------------
// FORMULAR 
// ------------------------------------------------------------------------------------------------------

    if(isset($_GET['id'])) {
        $headline = "Edit Affiliate";
        $pfad = "new_affi.php?action=edit&amp;id=".$id."";
        
    }else{
        $headline = "New Affiliate";
        $pfad = "new_affi.php?action=new";
    }
?>
<form action=" " method="post">
                                      
<fieldset>   

<legend><?= $headline; ?></legend>                                  

<label>Name:</label>
<input type="text" name="name" value="<?= $name; ?>" style="width: 250px" />
<br />

<label>E-Mail:</label>
<input type="text" name="email" value="<?= $email; ?>" style="width: 250px" />
<br />

<label>Website:</label>
<input type="text" name="url" value="<?= $url; ?>" style="width: 250px" />
<br />

<label>Button:</label>  
<input type="text" name="button" value="<?= $button; ?>" style="width: 250px" />
<br /><br />

<input type="submit" value="Abschicken" name="submit" class="button" />
</fieldset> 
</form>

<?php 

} // close action

// -----------------------------------------------------------------------------------------------
// Affiliate LOESCHEN
//------------------------------------------------------------------------------------------------

if($action == 'loeschen'){ // Wenn geloescht werden soll
  
$mode = strip_tags($_GET['mode']);
   
   if(isset($_GET['mode'])){ // Wenn Parameter uebergeben wurde
   
   	// Affiliate loeschen
    $loeschen = mysql_query("DELETE FROM affis WHERE id='$id'");
    
        if($loeschen){ // Sofern Loeschen erfolgreich
        
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";	// Weiterleitung => Admin
			
        }else{ // Wenn nicht erfolgreich
        
        	echo "<p>Beim Loeschen ist ein Fehler aufgetreten ".mysql_error()."</p>";
        } // close $loeschen
    
    } else { // Abfragen ob auch wirklich geloescht werden soll
    
        echo "<p class=\"error\">Ganz sicher loeschen? <br /><br />\n";
        echo "<a href=\"admin.php?action=loeschen&amp;mode=del&id=$id\" class=\"button\">Ja</a>\n";
        echo "&nbsp;&nbsp;<a href=\"admin.php\" class=\"button\">Nein</a>\n </p>";
    }
    
}// close loeschen

// -----------------------------------------------------------------------------------------------
// LOGOUT
//------------------------------------------------------------------------------------------------

if($action == 'logout'){ // Logout
	session_unset();			// Sessionvariable loeschen	
	session_destroy();			// Session zerstoeren

	echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";	// Weiterleitung => Login
}// close logout

} // close nicht eingeloggt

 echo "<h3>Grafixx - Affiliates © <a href=\"http://alice-grafixx.de\">Alice-Grafixx.de</a> ".date('Y')." | ";

 if(isset($_SESSION['login'])){ // Admin Logout
    echo "<a href=\"admin.php?action=logout\">logout</a>";
 }
?> 
</h3>

</div>

</body>
</html>

Hier starten wir als erstes eine Session, dies wird fuer den Login benoetigt,
anschliessend werden die LOGIN-DATEN hinterlegt,
hier sollte die Variable $grafixx_name und die Variable $grafixx_pass, mit dem gewuenschten Username und Passwort bestueck werden!
Darauf folgt der Login-Bereich ...
Anschliessend listen wir alle existierenden Affiliates auf, bestueckt jeweils mit einem Link zum Loeschen und Editieren,
dann wird ein Link ausgegeben, der es uns ermoeglicht einen neuen Affiliate einzutragen.
Es folgt anschliessend dann der Bereich, der fuer den Neueintrag sowie als auch die Bearbeitung eines bestehenden Eintrags zustaendig ist, Naeheres hierzu erspaere ich mit der Einfachheit halber.
Danach kommt den der Teil, der fuer das Loeschen eines Affiliates zustaendig ist und ganz zum Schluss kommt dann der Teil zum Ausloggen...

Das waer es dann mal im Grossen und Ganzen, wir haben nun 4 Dateien
config.inc.php - Stellt die Verbindung zur DB her
affis.php - listet alle Affiliates auf
go.php - zaehlt die Aufrufe und leitet auf die URL weiter
admin.php - Adminpanel | Listet alle Affiliates zur Bearbeitung

Wichtig!


Damit das Script reibungslos funktioniert, muss in der php.ini short_open_tag = ON sein,
ansonsten muss haendisch ueberall die Ausgabe von Variablen nach dem Schema <?= $xxx; ?>
umgeaendert werden in <?php echo $xxx; ?>


Tutorial Dateien downloaden

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


Affiliates:   The Seduction  •   Design Grafixx  •   Pat DG  •   Chibi Graphics  •   Colorful Gfx  •   Gallery Yuri  •   Blue-Graphics  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider