Hallo,
Mit diesem Tutorial erstellen sie mit VB 2010, PHP und MySQL ein Lizenzsystem.
Sie benötigen:
- Eine MySQL-Datenbank (bei fast jedem Hoster erhältlich)
- Einen Webspace (für die PHP-Dateien)
- Visual Basic 2010
Als Erstes wird in der Datenbank eine Tabelle mit den Spalten
license VARCHAR(150)
program VARCHAR(100)
used INT
until VARCHAR(8)
erstellt.
Hier der SQL-Code zum Erstellen der Tabelle:
Als nächstes kann man mithilfe von PHP ein Formular erstellen, dass der Nutzer der Software ausfüllen muss, um einen Lizenzschlüssel zu erhalten.
Als nächstes wird eine PHP-Datei erstellt, die die Zugangsdaten für MySQL-Datenbank enthält:
dbdaten.php:
VORSICHT!: Sichere diese Datei mit einer .htaccess - Datei ab (im Verzeichnis 'sicher' ), dass keiner auf die sensiblen Daten außer die PHP-Scripts zugreifen können.
Jetzt wird der Lizenzschlüssel generiert und in die Datenbank geschrieben:
generate.php:
Spoiler anzeigen
Jetzt wird eine PHP-Datei erstellt, die den Lizenzschlüssel ausliest und überprüft.
get.php
Spoiler anzeigen
Jetzt kommt der Visual Basic-Teil :D:
Spoiler anzeigen
1.Schritt
Jetzt öffnen Sie Visual Basic und öffnen (bsw. erstellen) Sie die Anwendung.
Fügen Sie eine TextBox mit dem Namen Lizenzcode und
einen Button mit dem Text "Lizenzschlüssel überprüfen" ein.
Jetzt klicken Sie doppelt auf den Button.
Fügen Sie das ganz oben ein
Und fügen Sie diesen Code ein:
Und jetzt haben Sie ein Lizenzsystem erstellt
MFG
alexwedwed
EDIT: VB-Teil verbessert (Response durch Serverresponse ersetzt :D)
PHP-Teil verbessert (real_escape_string eingesetzt)
PHP: MySQL-Query funktioniert
2 PHP-Syntaxfehler behoben
VB-Teil auskommentiert :)
Edit by hal2000:
- Verschoben von Tutorials nach SCA (zu wenig Erklärung für ein Tutorial - kann nach Überarbeitung gerne wieder zurückverschoben werden).
Mit diesem Tutorial erstellen sie mit VB 2010, PHP und MySQL ein Lizenzsystem.
Sie benötigen:
- Eine MySQL-Datenbank (bei fast jedem Hoster erhältlich)
- Einen Webspace (für die PHP-Dateien)
- Visual Basic 2010
Als Erstes wird in der Datenbank eine Tabelle mit den Spalten
license VARCHAR(150)
program VARCHAR(100)
used INT
until VARCHAR(8)
erstellt.
Hier der SQL-Code zum Erstellen der Tabelle:
Als nächstes kann man mithilfe von PHP ein Formular erstellen, dass der Nutzer der Software ausfüllen muss, um einen Lizenzschlüssel zu erhalten.
Als nächstes wird eine PHP-Datei erstellt, die die Zugangsdaten für MySQL-Datenbank enthält:
dbdaten.php:
VORSICHT!: Sichere diese Datei mit einer .htaccess - Datei ab (im Verzeichnis 'sicher' ), dass keiner auf die sensiblen Daten außer die PHP-Scripts zugreifen können.
Jetzt wird der Lizenzschlüssel generiert und in die Datenbank geschrieben:
generate.php:
PHP-Quellcode
- <?php
- require_once "sicher/dbdaten.php";
- $1str = substr($_POST["vorname"], 3) . rand(0,10);
- $2str = substr($_POST["nachname"], 3) . rand(0,10);
- $hash = $1str . $2str;
- $license = hash('sha256', $hash);
- $mysqli = new mysqli(datenbank,benutzername,passwort,server);
- if($mysqli->connect_error) {
- echo "Fehler bei der Verbindung:" . $mysqli_connect_error();
- exit();
- }
- $program = $mysqli->real_escape_string("IhrProgramm"); /* Geben sie ihren Programmennamen ein */
- $used = $mysqli->real_escape_string("0");
- $until = $mysqli->real_escape_string(date("d.m.Y",strtotime("+1 year")));
- if($stmt = $mysqli->prepare("INSERT INTO licensesystem (license,program,used,until) VALUES (?,?,?,?)")) {
- $stmt->bind_param("ssis", $license, $program, $used, $until);
- $stmt->execute();
- }
- if($stmt->affected_rows != 0) {
- echo "Ihr Lizenzschlüssel:";
- echo "<br />";
- echo htmlspecialchars($license); echo "<br />";echo "Gültig bis: " . htmlspecialchars($unti)l;
- } else {
- echo "Er ist ein Fehler aufgetreten.";
- }
- $stmt->close();
- $mysqli->close();
Jetzt wird eine PHP-Datei erstellt, die den Lizenzschlüssel ausliest und überprüft.
get.php
PHP-Quellcode
- <?php
- require_once "sicher/dbdaten.php";
- if($mysqli->connect_error) {
- echo "Fehler bei der Verbindung:" . $mysqli_connect_error();
- exit();
- }
- $ergebnis = $mysqli->query("SELECT license,until FROM licensesystem WHERE used = '0'")
- while($result = $ergebnis->fetch_array()) {
- if $result['license'] = $_POST["license"] {
- if($update = $mysqli->prepare("UPDATE licensesystem SET used = '1' WHERE license = $_POST["license"]")) {
- echo "Erfolgreich";
- echo "Gültig: " . htmlspecialchars($result['until']);
- } else {
- echo "Fehlgeschlagen";
- } else {
- echo "Fehlgeschlagen";
- } }
- $ergebnis->close();
- $stmt->close();
- $update->close();
- $mysqli->close();
- ?>
Jetzt kommt der Visual Basic-Teil :D:
1.Schritt
Jetzt öffnen Sie Visual Basic und öffnen (bsw. erstellen) Sie die Anwendung.
Fügen Sie eine TextBox mit dem Namen Lizenzcode und
einen Button mit dem Text "Lizenzschlüssel überprüfen" ein.
Jetzt klicken Sie doppelt auf den Button.
Fügen Sie das ganz oben ein
Und fügen Sie diesen Code ein:
VB.NET-Quellcode
- Dim License As String = Lizenzcode.Text
- ' Ersetzen sie unterhalb 'www.example.com' in ihre Adresse, wo sich die zuvor erstellten PHP-Dateien liegen
- Dim Request As HttpWebRequest = CType(WebRequest.Create("www.example.com/get.php"), HttpWebRequest)
- Request.Method = "POST"
- Request.ContentType = "application/x-www-form-urlencoded"
- Dim Post As String = "license=" & License 'POST-Data wird festgelegt
- Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
- Request.ContentLength = byteArray.Length
- Dim RequestStream As Stream = Request.GetRequestStream()
- RequestStream.Write(byteArray, 0, byteArray.Length) 'Schreibt den POST-Request in den Requeststream
- RequestStream.Close()
- Dim Response As HttpWebResponse = Request.GetResponse()
- RequestStream = Response.GetResponseStream()
- Dim reader As New StreamReader(RequestStream)
- Dim ServerResponse As String = reader.ReadToEnd() 'Liest den Quelltext aus
- reader.Close()
- RequestStream.Close()
- Response.Close()
- If InStr(ServerResponse, "Erfolgreich") Then 'Wenn im Quelltext des get.php 'Erfolgreich' steht
- Dim stringdate As String = ServerResponse.Substring(ServerResponse.IndexOf("Gültig :"), +8)
- Dim datum As Date = CDate(stringdate)
- Dim NowDate As Date = Now
- If datum < NowDate Then 'Wenn das Gültigkeitsdatum kleiner ist, als das jetzige Datum
- MessageBox.Show("Ihr Lizenzschlüssel ist abgelaufen")
- End
- ElseIf InStr(ServerResponse, "Fehlgeschlagen") Then 'Wenn im Quelltext des get.php 'Fehlgeschlagen' steht
- MessageBox.Show("Ungültiger Lizenzschlüssel")
- Else
- 'Was nach der Lizenzüberprüfung passiert. :-)
- End If
- End If
Und jetzt haben Sie ein Lizenzsystem erstellt
MFG
alexwedwed
EDIT: VB-Teil verbessert (Response durch Serverresponse ersetzt :D)
PHP-Teil verbessert (real_escape_string eingesetzt)
PHP: MySQL-Query funktioniert
2 PHP-Syntaxfehler behoben
VB-Teil auskommentiert :)
Edit by hal2000:
- Verschoben von Tutorials nach SCA (zu wenig Erklärung für ein Tutorial - kann nach Überarbeitung gerne wieder zurückverschoben werden).
Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „Alex-Digital“ ()