Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Php Script zur Lizenzschlüssel Verteilung (https://www.delphipraxis.net/161248-php-script-zur-lizenzschluessel-verteilung.html)

cookie22 24. Jun 2011 10:47

Php Script zur Lizenzschlüssel Verteilung
 
Hallo,

ich brauche ein PHP Script, welches nach Eingabe von Kundendaten einen Lizenzschlüssel aus einer Schlüsseliste auf meiner Website ausgibt.

Kennt da jemand etwas? Ich hab im Web nichts wirklich brauchbares gefunden.

Gruß,
Cookie

mkinzler 24. Jun 2011 10:53

AW: Php Script zur Lizenzschlüssel Verteilung
 
Da sollte doch nicht viel dahinter stecken. Mach es einfach selber.

blackfin 24. Jun 2011 10:54

AW: Php Script zur Lizenzschlüssel Verteilung
 
So etwas kann man relativ schnell selbst schreiben :-)
Wo stehen denn die Lizenzschlüssel? In einer Datenbank? Wie ist die Zuordnung von Kundendaten -> Schlüssel?
Das php-Script muss ja die eingegeben Daten überprüfen und den zugehörigen Schlüssel ausspucken, der -irgendwo- bei den Kundendaten gespeichert ist.

cookie22 24. Jun 2011 10:57

AW: Php Script zur Lizenzschlüssel Verteilung
 
Meine PHP Kentnisse bewegen sich gen Null, da wäre was fertiges nicht schlecht. Hatte gehofft es gibt da was Open Source mäßig.

Ps.: Ka, wo die Schlüssel stehen. In einer Textdatei oder in einer MySQL Datenbank oder so. Es handelt sich um eine Freeware für die sich die Kunden regisrieren sollen, darum sollte der aufwant nicht so groß sein.

blackfin 24. Jun 2011 11:07

AW: Php Script zur Lizenzschlüssel Verteilung
 
mal so grob, falls die Daten in einer mySQL-Datenbank stehen:

PHP-Quellcode:
<?php

/*
lizenz.php
*/

// Eingabeformular (anzeigen, wenn keine POST-Daten abgeschickt wurden)
if(!isset($_POST)) {
   echo "
   <form action="lizenz.php" method="post">
      <input type="text" name="kundendaten" value="" />
      <input type="sumbit" value="abschicken" />
   </form>" ;

// POST-Daten auswerten (nach Absenden des Formulars)
}else{
   // Input escapen (gegen mySQL-Injection)
   $kundendaten = mysql_real_escape_string($_POST['kundendaten']) ;
   
   // mySQL-Verbindung aufbauen
   $con = mysql_connect(Server,Username,Password);
   
   // Datenbank "customers" wählen
   mysql_select_db("customers") ;
   
   // Kundendaten-Abfrage aus "customerdata"-Tabelle
   $row_query = mysql_query("SELECT license from `customerdata` WHERE data='".$kundendaten."'") ;
   
   // Kein zugehöriger Datensatz gefunden => Fehler ausgeben
   if(mysql_num_rows($row_query) == 0) {
      echo "Keinen Lizenzschlüssel für diese Kundendaten gefunden" ;
   
   // Datendatz gefunden => Lizenzschlüssel ausgeben
   }else{
      $row = mysql_fetch_assoc($row_query) ;
      echo "Ihr Lizenzschlüssel: ".$row['license'] ;
   }
   
}
?>

fkerber 24. Jun 2011 11:12

AW: Php Script zur Lizenzschlüssel Verteilung
 
Hi,

ich würde eher empfehlen mit Prepared Statements zu arbeiten.


LG, Frederic

cookie22 24. Jun 2011 11:26

AW: Php Script zur Lizenzschlüssel Verteilung
 
Zitat:

Zitat von blackfin (Beitrag 1108050)
mal so grob, falls die Daten in einer mySQL-Datenbank stehen:

PHP-Quellcode:
<?php

/*
lizenz.php
*/

// Eingabeformular (anzeigen, wenn keine POST-Daten abgeschickt wurden)
if(!isset($_POST)) {
echo "
<form action="lizenz.php" method="post">
   <input type="text" name="kundendaten" value=""/>
   <input type="sumbit" value="abschicken"/>
</form>" ;

// POST-Daten auswerten (nach Absenden des Formulars)
}else{
   // Input escapen (gegen mySQL-Injection)
   $kundendaten = mysql_real_escape_string($_POST['kundendaten']) ;
   
   // mySQL-Verbindung aufbauen
   $con = mysql_connect (Server,Username,Password);
   
   // Datenbank "customers" wählen
   mysql_select_db("customers") ;
   
   // Kundendaten-Abfrage aus "customerdata"-Tabelle
   $row_query = mysql_query("SELECT license from `customerdata` WHERE data='".$kundendaten."'") ;
   
   // Kein zugehöriger Datensatz gefunden => Fehler ausgeben
   if(mysql_num_rows($row_query) == 0) {
      echo "Keinen Lizenzschlüssel für diese Kundendaten gefunden" ;
   
   // Datendatz gefunden => Lizenzschlüssel ausgeben
   }else{
      row = mysql_fetch_assoc($row_query) ;
      echo "Ihr Lizenzschlüssel: ".$row['license'] ;
   }
   
}
?>

Kleine verständnisfrage. Müssen für bestimmte Kunden schon Schlüssel da sein oder kann jeder der sich neu einträgt einen Schlüssel bekommen?

Irgendwie verwirrt mich das hier:
PHP-Quellcode:
   // Kein zugehöriger Datensatz gefunden => Fehler ausgeben
   if(mysql_num_rows($row_query) == 0) {
      echo "Keinen Lizenzschlüssel für diese Kundendaten gefunden" ;

blackfin 24. Jun 2011 11:30

AW: Php Script zur Lizenzschlüssel Verteilung
 
Zitat:

ich würde eher empfehlen mit Prepared Statements zu arbeiten.
Joa...das lässt sich ja relativ einfach auf ein prepared statement umschreiben:
PHP-Quellcode:
$con = new mysqli(Server,Username,Password,Datenbank);
$s = $con->prepare("SELECT license from `customerdata` WHERE data = ?");
$s->bind_param("s", $kundendaten);
$s->execute();
$r = $s->get_result();
$row = $r->fetch_assoc() ;
Zitat:

Kleine verständnisfrage. Müssen für bestimmte Kunden schon Schlüssel da sein oder kann jeder der sich neu einträgt einen Schlüssel bekommen?
Öhm..das kommt auf deine Logik an...und hat eigentlich nichts mit der Programmierung zu tun :-)
Was soll denn wann geschehen?

mkinzler 24. Jun 2011 11:32

AW: Php Script zur Lizenzschlüssel Verteilung
 
Der Code liest nur vorhandene Schlüssel aus. An der von dir genannten Stelle müsste dann der Code für die Erzeugung eines neueb Schlüssels und den Eintragung in die Datenbank stehen.

cookie22 24. Jun 2011 11:44

AW: Php Script zur Lizenzschlüssel Verteilung
 
Zitat:

Zitat von blackfin (Beitrag 1108058)
...Was soll denn wann geschehen?

Also das ganze soll folgendermassen ablaufen.

Jemand läd sich das Programm herunter und muß nach 30 Tagen einen Lizenzschlüssel eingeben um das Programm weiter benutzen zu können. Den Schlüssel bekommt er umsonst auf meiner Website. Dazu muss er Namen und Mail-Adresse eingeben. Dann drückt er den Submit-Button und soll einen Schlüssel aus einer Liste bekommen. Liste deshalb, weil das die Implementierung das Key-Generators erspart.

mkinzler 24. Jun 2011 11:49

AW: Php Script zur Lizenzschlüssel Verteilung
 
Schau dir mal AVLock an.

cookie22 24. Jun 2011 12:05

AW: Php Script zur Lizenzschlüssel Verteilung
 
Sieht ganz gut aus, aber ich hab schon ein Key-System. Ich will ja nur die Keys verteilen, dafür brauch ich ja nicht gleich alles neu zu machen.

mkinzler 24. Jun 2011 12:08

AW: Php Script zur Lizenzschlüssel Verteilung
 
Die Schlüsselerzeugung musst du auch nochmal in PHP nachprogrammieren oder eine Zeitverzögerung in Kauf nehmen (Nach der Registrierung wirst du dann benachrichtigt und musst den Schlüssel lokal erzeugen und in die Onlinedatenbank eintragen)

blackfin 24. Jun 2011 12:12

AW: Php Script zur Lizenzschlüssel Verteilung
 
Du musst an meinem Script ja eigentlich nur die Stelle, an der der Fehler ausgegeben wird, dass kein Datensatz gefunden wurde , durch folgende Dinge ersetzen:

1) Die Tabelle, in der die Codes stehen abfragen und den nächsten, freien Code holen.
2) Den Code in der Code-Tabelle als verwendet markieren
3) Eine neuen Kunden-Datensatz in der Kunden-Tabelle anlegen und den Code bzw. die Referenz dazu in der Kunden-Tabelle eintragen, ebenso den Namen und die Email-Adresse aus dem abgesendeten Formular.
4) Dem Kunden den Code anzeigen.

Den generellen php-Syntax, wie man Abfragen mit mySQL(i) via php macht und ein Resultset erzeugt, findest du ja in meinem mini-Beispielscript, was fehlt sind fast nur noch ein paar zusätzliche mySQL-Abfragen und evtl ein paar ifs.
Vorher musst du natürlich noch Codes generieren (hast du ja schon) und diese in die Code-Tabelle eintragen.
Das kannst du wiederum über ein mySQL-Tool deiner Wahl machen und musst es nicht programmieren (z.B. über phpmyadmin).
Die meisten Hoster haben den eh irgendwo installiert. Kommt halt drauf an, wo du deinen Webspace hast :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz