PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Codeschnipsel

REF Seite

Zurück zur Übersicht
Nun ja manche von euch werden sich jezt fragen was eine Ref Seite ist. Es geht darum dass der User seinen eigenen Link bekommt diesen weiterverschickt und dafür ein Counter hochgezählt wird und er ab einer gewissen Klick Zahl etwas sieht.

Kommen wir zum Code:

Es werden 2 Tabellen benötigt. Einmal eine für die User und einmal eine für die Besucher. In meinem Beispiel ref für die User und ref2 für die Besucher.

Struktur zu ref:

ID |IP | Clicks

Ref2:

ID | IP

Was man nehmen muss Auto Increment und Index brauch ich ja jezt nicht erzählen...

So nun die

ref.php

<?php

  $verbindung 
= mysql_connect ("Servername",  
  
"Username", "Passwort")
  or die (
"keine Verbindung möglich.
  Benutzername oder Passwort sind falsch"
);

  
mysql_select_db("Datenbankenname")
  or die (
"Die Datenbank existiert nicht.");  // Normaler Verbindungsaufbau



  
$ip = $_SERVER["REMOTE_ADDR"]; // IP-Adresse ermitteln
  
$id = mysql_real_escape_string($_GET["id"]); // ID aus der URL ermitteln

  
$qq = mysql_query("SELECT * FROM ref");
  
$row = mysql_fetch_object($qq);

    if(
$row->id == $id AND $row->ip == $ip) // Wenn ID und IP gleich sind Daten für denn User anzeigen
    
{
      if((
$row->clicks)<= 10 )
        {
          echo 
"Du hast weniger als 10 Klicks";   // Hier können natürliche alle Daten rein die der User ab 10 oder unter 10 Klicks sehen soll
        
}
            elseif((
$row->clicks >= 10))
            {
              echo 
"Du hat mehr als 10 Klicks";
            }
    }


  
$query= mysql_query("SELECT * FROM `ref2` WHERE id='$id' AND ip='$ip'"); // Hier wird geguckt ob der Besucher schon einmal auf dieser ID war


  
if(mysql_num_rows($query) == "0" )
  {
    
$q = mysql_query ("UPDATE ref SET clicks=clicks+1 WHERE id=$id"); //Wenn kein Eintrag gefunden wurde Counter für die ID erhöhen
    
$ins = mysql_query("INSERT INTO ref2 VALUES('$id','$ip')");    //Sichern dass ein zweites Mal nicht mehr vorkommt
  
}
    elseif(
mysql_num_rows($query)!= "0") // Andernfalls keine Aktion ausführen
    
{
      echo 
"Du hast schon geklickt";
    }
// Copyright by Stex. Darf frei verwendet werden    
?>


Durch die Comments müsste das eigentlich selbsterklärend sein. Links werden dann natürlich so aussehen ref.php?id=XX . Nun könnte man da noch einen Link einbauen z.B Du willst deinen eigenen Link dann klicke hier dann kommt man zur


anmelden.php

<?php

  $verbindung 
= mysql_connect ("Servername",  
  
"Username", "Passwort")
  or die (
"keine Verbindung möglich.
  Benutzername oder Passwort sind falsch"
);

  
mysql_select_db("Datenbankenname")
  or die (
"Die Datenbank existiert nicht.");  // Normaler Verbindungsaufbau


  
$ip = $_SERVER["REMOTE_ADDR"]; // IP ermitteln

  
$q= mysql_query("SELECT * FROM ref WHERE ip='$ip'"); // Gucken ob der User schon einen Link hat

  
if(mysql_num_rows($q) == "0") //Wenn er keinen Link hat einen erstellen und Link ausgeben
  
{
    
$query= mysql_query("INSERT INTO ref(ip)
    VALUES ('
$ip')");

?>
Hier ist dein Link <a href="http:/localhost/ref.php?id=<?php echo mysql_insert_id(); ?>"> Dein Link </a>
<?php
  
}
  else
  {
    echo 
"Du hast schon ein Link";  // Andernfalls sagen dass er schone einen Link hat
  
}
// Copyright by Stex. Darf frei verwendet werden.
?>


Bei Fragen oder so einfach hier reinschreiben. Wenn jemand ein Upload mit install etc alles wünscht wird das nachgereicht.

Kommentare

Autor stex

Zurück zur Übersicht
Autor: Nils Reimers
Zurück: URLs im Text identifizieren

Für Fortgeschrittene

  • Objektorientierte Programmierung
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur
  • CasinoAndy Finland
  • Casinoohnelizenz.info
  • Cryptocasinomaster.com
  • CasinoHEX.at
  • inkedin.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 1 Min.
  2. Linevast Ø 2 Min.
  3. netcup Ø 3 Min.
  4. All-Inkl.com Ø 6 Min.
  5. checkdomain Ø 8 Min.
  6. dogado Ø 17 Min.
  7. bplaced Ø 17 Min.
  8. Contabo Ø 25 Min.
  9. Hetzner Ø 49 Min.
  10. ONE.com Ø 62 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2023

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}