Keygenerator für Apis und co
Willst du eine eigene API erstellen oder ein Login bauen, womit sich jeder nur mit dem zugesendeten Key registrieren kann , dann könnte dir das helfen.
Gebe Länge ,Schwierigkeit , Name und E-Mail an, und die Person bekommt dann per Email ein Key zugeschickt. Dieses Script muss man sich natürlich für deine Zwecke umbauen , den ein User sollte, nicht die Länge eines APIs Schlüssel bestimmen können und so weiteIn diesen Beispiel werden die keys in einer Textdatei gespeichert , was man eigentlich über Datenbank dann machen muss
Der hier verwendete Code
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Demo for License Key Generator By Basti1012</title>
<style>
.info{
cursor:help;
font-weight:bolder;
}
.info>span{
display:none;
position:fixed;
top:0;
width:200px;
height:auto;
border:1px solid black;
background:red;
padding:10px;
border-radius:10px;
}
.info:hover>span{
display:block;
}
#aa{
display:flex;
}
</style>
</head>
<body style="background-color:#F0F0F0">
<h1>License Key erstellen und verschicken</h1>
<h3>Gebe länge ,Sicherungstufe ,name und Email ein um deinen Schlüßel zu erhalten</h3>
<form method="POST">
<table>
<tr>
<td>Länge</td>
<td><select name="numkeys">
<option value="1">1</option>
<option value="2">2</option>
<option value="5" selected>5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="150">150</option>
</select></td>
</tr>
<tr>
<td>Sicherungstufe</td>
<td><select name="savli">
<option value="9">Nur Zahlen</option>
<option value="35">Zahlen ,Buchstaben Groß</option>
<option value="61" selected>Zahlen Buchstaben groß und klein</option>
<option value="83">Zahlen,buchstabe und Sonderzeichen</option>
</select></td>
</tr>
<tr>
<td id="aa">Dein Name<div class="info">[?]<span id="info">Es kann auch für den Namen ein Passwort gewählt werden.Diese Eingabe dient dazu um bei vergessene Serialkeys ihr Identität zu gewährleisten.Falls einer Ihre Emailadresse kennt ,brauch er trotzdem diese Eingabe.Bitte merken sie sich ihre Eingabe gut.</span></div>
</td>
<td><input type="text" name="namen"></input></td>
</tr>
<tr>
<td>Deine Email</td>
<td><input type="text" name="mail"></input></td>
</tr>
</table>
<input type="submit" name="validate" value="Serialkey anfordern" >
</table>
</form>
<div id="info"></div>
<script>
//debugger;
var ele = document.querySelector('bodyl');
ele.addEventListener('mousemove', e => {
koordinaten(e)
} )
function koordinaten(e) {
xpos = (document.layers || (document.getElementById && !document.all)) ? e.pageX : document.body.scrollLeft +
event.clientX;
ypos = (document.layers || (document.getElementById && !document.all)) ? e.pageY : document.body.scrollTop +
event.clientY;
werte();
}
function werte(){
document.getElementById('info').innerHTML=ypos+'px';
document.getElementById('info').innerHTML=xpos+'px';
window.status = xpos+'px :'+ypos+'px';
}
</script>
<?php
if(isset($_POST['validate'])){
$sa=$_POST['savli'];
$me=$_POST['numkeys'];
$name=$_POST['namen'];
$mail=$_POST['mail'];
$pool = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!%&/()=?*<>#+][{}@|";
$countPool = $sa;
$totalChars = $me;
$serial = '' ;
for ($i = 0 ; $i < $totalChars ; $i++) {
$currIndex = mt_rand(0, $countPool) ;
$currChar = $pool[$currIndex] ;
$serial .= $currChar ;
}
$break = "<br/>";
$eol .= "\r\n";
$sol .= "\n";
$errors = array();
if (empty($_POST['namen'])) {
$errors[] = 'Bitte gebe einen Namen / Pin oder Passwort ein.';
}
if (!preg_match("/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$/", $_POST['mail'])) {
$errors[] = 'Bitte gebe eine korekte Email Adresse ein.';
}
if (empty($serial)) {
$errors[] = 'Please enter a message.';
}
if (empty($errors)) {
$siteName = 'basti1012';
$senderName = $_POST['name'];
$senderMail = $_POST['email'];
$headers .= 'Date: '.date("r").$eol;
$headers .= 'Sender-IP: '.$_SERVER["REMOTE_ADDR"].$eol;
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$empfaenger = $mail;
$absender = $senderName;
$betreff = "Meine Seite $siteName ";
$antwortan = $mail;
$header .= "From: $senderName\r\n";
$header .= "Reply-To: $antwortan\r\n";
$header .= "X-Mailer: PHP ". phpversion();
$msg .= '<font face=arial size=2>';
$msg .= '<strong>Absender:</strong> '.$senderName.$break;
$msg .= 'Sender-IP: '.$_SERVER["REMOTE_ADDR"].$break;
$msg .= 'Seitenname: '.$siteName.$break;
$msg .= 'Date: '.date("r").$break;
$msg .= '<strong>Serialnummer:</strong> '.$serial.$break;
$msg .= '<strong>Name:</strong> '.$name.$break;
$msg .= '<strong>Email:</strong> '.$mail.$break;
$msg .='<li style="color:red">Bitte die Daten sorgfältig aufbewahren .Fals sie ihre Daten vergessen haben oder sonst irgendwas können sie mit Ihren angegebenen Namen und Emailadresse ihre SerienNummer wieder anfordern</li>';
$msg .= '</font>';
mail( $empfaenger, $betreff, $msg, $header);
echo "Eine Email wurde an $mail geschickt";
echo "Glückwunsch $name<br>Deine Serialnummer ist<br>Serialnummer:";
echo $serial;
echo "<br>Mit deinen Namen und Email kannst du jeder Zeit deinen Schlüssel wieder anfordern<br>";
echo "<font style='color:red'>Bitte gut merken</font>";
echo "<h2>Inhalt der Gesendeten Email</h2>";
echo "$msg";
$file = 'keys.txt';
$was = $mail.';'.$name.';'.date("r").';'.$serial.$eol;
file_put_contents($file, $was, FILE_APPEND | LOCK_EX);
} else {
echo '<strong>Error!</strong><br/><br/>
Bitte koregiere folgene Felder.<br/>';
foreach ($errors as $message) {
echo " - $message<br/>\n";
}
echo 'Please go <a href="javascript:history.go(-1)">back</a> and try again.</p>';
}
}
?>
</body>
</html>