Loading...   Upload Image

Affiliates ManagerTutorials » PHP/MySQL Tutorials » Affiliates Manager

Verfasst von Alice am 21.03.2007 - wurde schon 10222 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
20x bewertet
Schwierigkeit: mittel
Kommentare: [ 44 ]

Tag - Schlagwort PHP Tag - Schlagwort Affiliate Tag - Schlagwort Manager Tag - Schlagwort Script

Affiliates Manager - Tutorial

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

Hinweis


Es existiert eine neuere Version dieses Tutorials, zu finden unter Affiliate Manager ...


Was wird benoetigt?


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

Step 1 - MySQL Tabelle


Wir erzeugen eine neue Tabelle in 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 - affis.php


Die Ausgabeseite affis.php, listet uns alle vorhandenen Affiliates, sowie deren Aufrufe, auf...
<?php

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

// --------------------------------- Datenbankverbindung --- //
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$user = ""; // Ihr MySQL Benutzername
$pass = ""; // Ihr 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.");
// ----------------------------------------------- //

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

// Daten ausgeben
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 target="_blank" href="go.php?id=<?php echo $row->id; ?>">
<img border="0" src="<?php echo $row->button; ?>" width="88" height="31"
alt="<?php echo $row->name; ?>" /></a>
</span>
<a target="_blank" href="go.php?id=<?php echo $row->id; ?>"><?php echo $row->name; ?></a><br />
Visits: <?php echo $row->view; ?>
</div>
<?php
} // while
?>

Zu oberst haben wir die Daten, welche fuer den Verbindungsaufbau zur Datenbank von noeten sind.
Mittels $abfrage = mysql_query("SELECT id,name,view,button FROM affis"); rufen wir die Daten aus unserer Datenbank ab und geben diese dann anschliessend in einer While-Schleife aus.

Step 3 - go.php


Nun brauchen wir die Seite, welche den Klick zaehlt und den Besucher auf die URL des Affiliates weiterleitet.
<?php
// --------------------------------- Datenbankverbindung //
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$user = ""; // Ihr MySQL Benutzername
$pass = ""; // Ihr 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.");
// ------------------------------------------------ //

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

	// 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){ // Sofern Klick gezaehlt wurde
   		header("Location: $row->url"); // Weiterleitung
   	}	
?>

Hier haben wir dann auch wieder die Daten, die zur Datenbankverbindung, benoetigt werden.
Kann man natuerlich auch schoener loesen, indem man die Daten auf ne Extra Seite packt und dann diese einfach nur per include einbindet.
Wir rufen uns die Daten mit der id, die wir per $_GET['id'] uebergeben bekommen haben, ab,
setzen dann den Wert view + 1 und leiten dann den Besucher auf die entsprechende Seite weiter.

Step 4 - admin.php


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

Kommen wir also nun zum 'Adminpanel' - admin.php
Wir brauchen erstmal eine Uebersicht aller Affiliates, von wo aus man die Affiliates verwalten kann ...
<h1>Affis verwalten</h1>

<table width="600" cellpadding="3" class="tab">
<tr>
<th width="15">ID</th>
<th>Name</th>
<th width="200">Website</th>
<th width="55">Klicks</th>
<th width="95">Bearbeiten</th>
</tr>
<?php
// --------------------------------- Datenbankverbindung ---------------------------- //
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$user = ""; // Ihr MySQL Benutzername
$pass = ""; // Ihr 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.");
// ---------------------------------------------------------------------------------- //

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

// Daten ausgeben
while($row = mysql_fetch_object($abfrage)){
   
$zeile++;  // jede 2te Zeile einfaerben
   if ($zeile % 2 == 0) {
       echo "<tr>";
   } else {
          echo "<tr bgcolor=\"#f5f5f5\">";
   }
?>
<td align="right"><?php echo $row->id; ?></td>
<td><?php echo $row->name; ?></td>
<td><?php echo $row->url; ?></td>
<td align="center"><?php echo $row->view; ?></td>

<td align="center">
<a href="new_affi.php?action=loeschen&amp;id=<?php echo $row->id; ?>">Delete</a> |
<a href="new_affi.php?action=edit&amp;id=<?php echo $row->id; ?>">Edit</a>
</td>
</tr>
<?php
} // close while
?>
</table><br />
<a href="new_affi.php?action=new">Neuen Affiliate anlegen</a>

Auch hier bauen wir zu erst einmal wieder die Verbindung zur Datenbank auf, rufen dann die Daten ab und geben sie dann in einer Tabelle aus.

Damit es uebersichtlicher gehalten ist, erhaelt jede 2te Tabellenreihe einen beigen Hintergrund.
Damit die Affiliates an Ort und Stelle bearbeitet werden koennen, bekommt jeder 2 Links, einer um die Daten zu editieren und der andere um den Eintrag zu loeschen.
Und ganz zu letzt findet sich ein Verweis auf die Seite zum Erstellen eines neuen Affiliates...

Step 5


Kommen wir nun zur Seite die fuer einen Neueintraeg, die Loeschung und die Editierung eines Affiliates dient.

Man haette auch alles einzel auf je eine Seite verteilen koenne, ich halte von vielen Dateien recht wenig, warum viel wenn es auch wenig geht?
Damit wir nur eine Datei haben verwenden wir eine Switch-Abfrage.
<?php
// --------------------------------- Datenbankverbindung --- //
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$user = "root"; // Ihr MySQL Benutzername
$pass = ""; // Ihr MySQL Passwort
$dbase = "test"; // 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.");
// ------------------------------ //

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

if(isset($_GET['id'])) { // Sofern ID uebergeben wurde

	// DB Abfragen
    $abfrage = mysql_query("SELECT name,email,url,button FROM affis WHERE id='$id'");
	$row = mysql_fetch_array($abfrage);
      $name = $row->name;
      $email = $row->email;
      $website = $row->url;
      $button = $row->button;

} // if $_GET 'id'

// ---------------------------------------------- //

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

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

// ------------------------------- Wenn action = new

if ($action == "new") {  

// Check alle Felder ausgefuellt 
    if ($name == '' || $button == '' || $website == ''){
        echo '<p>Du musst alle Felder ausfuellen !</p>';
    }else {
        $eintragen = mysql_query("INSERT INTO affis (name, email, button, url) VALUES ('$name','$email','$button','$website')");

    if($eintragen){ // Sofern eintrag erfolgreich war
        echo "<h1>Prima ...</h1> \n";
        echo "<p>Vielen Dank ...<br /><br /> \n";
        echo "Der Eintrag war erfolgreich :)<br /><br />\n";
        echo "<a href=\"admin.php\">Adminpanel</a></p>";

    }else{ // Wenn nicht Fehler ausgeben
        echo '<p>Der Eintrag war nicht erfolgreich '.mysql_error().'</p>';
    }
    
  } // close Check alle Felder ausgefuellt
} // close  action new

// ------------------------------- Wenn action = edit
if ($action == "edit") {  

// Check alle Felder ausgefuellt
if ($name == '' || $button == '' || $website == '') {
    echo '<p>Bitte Danke alle Felder ausfuellen ...</p>';
}else {

	  // Neue Daten in DB schreiben
      $update = mysql_query("UPDATE affis SET name='$name', email='$email',	url='$website', button='$button' WHERE id='$id'");

      if($update){ // Sofern Update erfolgreich war
      	echo "<h1>Prima ...</h1> \n";
        echo "<p>Das Update war erfolgreich ...<br /><br />\n";
        echo "<a href=\"admin.php\">Adminpanel</a></p>";
        
      }else{ // Wenn nicht Fehler ausgeben
          echo "<h1>Error ...</h1> \n";
          echo '<p>Fehler beim Aktualisieren der Details: '.mysql_error().'</p>';
      }
  
  } // close Check alle Felder ausgefuellt
} // close action edit

}else{// ------------------------------- Wenn action = loeschen

if ($action == "loeschen") {
  
$mode = mysql_real_escape_string($_GET['mode']);
   
   if(isset($_GET['mode'])){
   	// Affiliate aus DB loeschen
    $delete = mysql_query("DELETE from affis where id='$id'");
    
        if ($delete) {
            echo "<h1>Prima ...</h1> \n";
            echo "<p class=\"error\">Der Affi wurde erfolgreich geloescht ...<br /><br />\n";
            echo "<a href=\"admin.php\">Adminpanel</a></p>";
        }
    
    }else{ // Zur Sicherheit noch mal nachfragen
        echo "<p class=\"error\">Ganz sicher loeschen?</p> \n";
        echo "<a href=\"new_affi.php?action=loeschen&amp;mode=del&id=".$id."\">Ja</a>";
        echo "&nbsp;&nbsp;<a href=\"affis.php\">Nein</a>";
    }
    
}// close if ($action == "loeschen")
   
//------------------------------------- close wenn Abschicken geklickt

if(($action == "edit")OR($action == "new")){

    if(isset($_GET['id'])) {
        echo "<h2>Edit Affiliate</h2>"; // Headline definieren
        
        $form = "new_affi.php?action=edit&amp;id=$id"; // URL => Formular
    }else{
        echo "<h2>New Affiliate</h2>"; // Headline definieren
        
        $form = "new_affi.php?action=new"; // URL => Formular
    }
?>                           
<form action="<?php echo $form; ?>" method="post">
<fieldset>
<label>Name</label>
<input type="text" name="name" value="<?php if(isset($_GET['id'])) { echo $name; }?>" style="width: 250px" />
<br />

<label>E-Mail</label>
<input type="text" name="email" value="<?php if(isset($_GET['id'])) { echo $email; }?>" style="width: 250px" />
<br />

<label>Website</label>
<input type="text" name="url" value="<?php if(isset($_GET['id'])) { echo $website; }else{ echo "http://";} ?>" style="width: 250px" />
<br />

<label>Button</label>
<input type="text" name="button" value="<?php if(isset($_GET['id'])) { echo $button; }else{ echo "http://";} ?>" style="width: 250px" />
<br /><br />

<input type="submit" value="Abschicken" name="submit" />
</fieldset>
</form>
<?php } //close else wenn submit 
	}// close action
?>

Als erstes, wie schon zuvor gehabt, stellen wir die Verbindung zur Datenbank her, dann rufen wir wenn per Get-Variable eine ID mitgeteiltwurde die Daten ab,
da wir die Daten eines Affiliates ja brauchen um diese zu Bearbeiten.

Sollte in der URL keine ID uebermittelt worden sein, dann prueft die naechste IF-Abfrage ob der Absende-Button gedrueckt worden ist,
sollte das der Fall sein, so kommt die Switch-Abfrage an die Reihe, diese prueft ob $action = new ist oder $action = edit.

Dann kommt der Else Teil der Abfrage, ob der Absende-Button gedrueckt wurde oder nicht und schliesslich kommt der letzte Teil unserer Switch-Abfrage ob $action=loeschen ist zum Zug.

Nun kommt schon wieder eine If-Abfrage, diese prueft ob $action = new oder $action = edit, sollte dies der Fall sein wird das Formular zum Eintragen der Angezeigt.

Das waer es dann mal im Grossen und Ganzen, wir haben nun 4 Dateien


affi.php - Listet alle Affiliates
go.php - erhoeht den Klick und leitet den Besucher weiter
admin.php - Listet alle Affiliates zur Bearbeitung
new_affi.php - Dient der Bearbeitung, Neuanlegung und Loeschung eines Affiliates

Wichtig


Damit nicht jeder beliebig Affiliates anlegen und loeschen kann, waere es sinnvoll die admin.php und die new_affi.php per htaccess zu geschuetzen.


Sollte etwas unklar sein, fragen kostet nix ;)

Tutorialdateien herunterladen

Affiliates Manager Part 2

Affiliates Manager Part 3

Das Tutorial wurde am 03.09.2009 ueberarbeitet ...

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:   Design Grafixx  •   The Seduction  •   Blue-Graphics  •   Gallery Yuri  •   Colorful Gfx  •   Pat DG  •   Chibi 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