[Release]Beta-Page mit Beta-Key-Generator passend zum Script

06/22/2015 22:37 Fydes#1
Moin,
da ich mich derzeit wieder sehr viel mit PHP beschäftige, habe ich euch eine nette Beta-Seite zusammen gebastelt. Natürlich bietet diese auch ein ansprechendes Design; meiner Meinung nach.

Design

Natürlich habe ich das ganze so schlicht wie möglich gehalten, dass es leicht anpassbar ist und, dass man leicht darin arbeiten kann, um ggf. Modifikationen vorzunehmen.

Hier musst du deine eigenen Einstellungen anpassen:
[Only registered and activated users can see links. Click Here To Register...]

Selbsterklärend, denke ich.

[Only registered and activated users can see links. Click Here To Register...]
Einfach eine Zahl eintragen und schon werden die Beta-Keys random generiert und auch in die Datenbank eingetragen.

Diesen Query müsst ihr ausführen:

Sollten Probleme auftreten kann man mich gerne kontaktieren.

Ich wünsche euch damit viel Spaß.

Bei Veränderungen mich bitte erwähnen.

Kind regards,
Fydes
06/22/2015 22:51 Dev'Malum#2
Sehr nice, Danke!
06/23/2015 00:41 rollback#3
Hübsch, spricht mich rein vom Design her mehr an als das andere :)

Zu der Beta-Key Tabelle muss ich aber kurz was sagen:
Du brauchst da keinen id als primary key erstellen, der Beta-Key ist doch eindeutig und kann somit als primary fungieren.
Dann wirst du auch nie, wenn auch nur aus Versehen, 2x den selben Beta-Key in der Tabelle stehen haben. Wenn das nämlich vorkommen würde, was mit deiner Tabelle möglich ist, könnte es zu unerwünschten Ergebnissen beim Abfragen führen.

Ausserdem würde ich als Datentyp für den Key anstatt "varchar" "char" wählen - damit kannst du sichergehen, dass der Key immer dieselbe Länge hat.

Code:
DROP TABLE IF EXISTS betakeys;
CREATE TABLE IF NOT EXISTS betakeys (
´key´ char(12) NOT NULL,
´used´ int(1) NOT NULL DEFAULT 0,
PRIMARY KEY(´key´)
);
EDIT:
zum Erstellen der Keys hab ich auch kurz was gemacht:

Code:
local anzahl_zeichen = 12
local anzahl_keys = 1

local valid = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
local query = "INSERT INTO betakeys (´key´) VALUES"

for i = 1, anzahl_keys do
	local key = ""
	for i = 1, anzahl_zeichen do
		key = string.format("%s%s", key, valid[math.random(1, #valid)])
	end
	query = string.format("%s ('%s'),", query, key)
end

query = string.format("%s ON DUPLICATE KEY UPDATE ´key´ = ´key´;", string.sub(query, 1, #query-1))
print(query)
kann einfach hier ausgeführt werden:
[Only registered and activated users can see links. Click Here To Register...]
06/23/2015 10:22 #Metho#4
Das Ganze ist in Sachen Coding ziemlicher Mist ^^ aber, dass ist Nebensächlich, machst du mehr solche Dinge (mit Variationen etc.) wird's auch besser. Jedoch ist's dafür im Design Top. Du machst das mit dem Designen echt gut :=) ... meiner Meinung nach unter den Top10 im Metin2-Bereich.
06/23/2015 13:57 /exit#5
Design hätte ich etwas anders gemacht, aber so siehts gut aus.
Zum Code kann ich nichts Sagen, da ich ihn mir gerade nicht angeschaut habe.
06/23/2015 14:32 Fydes#6
Quote:
Originally Posted by It's me, 1093 View Post
Hübsch, spricht mich rein vom Design her mehr an als das andere :)

Zu der Beta-Key Tabelle muss ich aber kurz was sagen:
Du brauchst da keinen id als primary key erstellen, der Beta-Key ist doch eindeutig und kann somit als primary fungieren.
Dann wirst du auch nie, wenn auch nur aus Versehen, 2x den selben Beta-Key in der Tabelle stehen haben. Wenn das nämlich vorkommen würde, was mit deiner Tabelle möglich ist, könnte es zu unerwünschten Ergebnissen beim Abfragen führen.

Ausserdem würde ich als Datentyp für den Key anstatt "varchar" "char" wählen - damit kannst du sichergehen, dass der Key immer dieselbe Länge hat.

Code:
DROP TABLE IF EXISTS betakeys;
CREATE TABLE IF NOT EXISTS betakeys (
´key´ char(12) NOT NULL,
´used´ int(1) NOT NULL DEFAULT 0,
PRIMARY KEY(´key´)
);
EDIT:
zum Erstellen der Keys hab ich auch kurz was gemacht:

Code:
local anzahl_zeichen = 12
local anzahl_keys = 1

local valid = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
local query = "INSERT INTO betakeys (´key´) VALUES"

for i = 1, anzahl_keys do
	local key = ""
	for i = 1, anzahl_zeichen do
		key = string.format("%s%s", key, valid[math.random(1, #valid)])
	end
	query = string.format("%s ('%s'),", query, key)
end

query = string.format("%s ON DUPLICATE KEY UPDATE ´key´ = ´key´;", string.sub(query, 1, #query-1))
print(query)
kann einfach hier ausgeführt werden:
[Only registered and activated users can see links. Click Here To Register...]
Danke für das ausführliche Feedback. Jedoch bin ich lein Lua Fan.. :)

Quote:
Originally Posted by andrs.exit View Post
Design hätte ich etwas anders gemacht, aber so siehts gut aus.
Zum Code kann ich nichts Sagen, da ich ihn mir gerade nicht angeschaut habe.
Du würdest immer was anderes machen :facepalm: Ich an deiner Stelle würde mim Namen anfangen ;)
06/23/2015 18:04 .Xilent#7
Das Design sieht sehr gut aus! :) Der Code ist auch ganz in Ordnung, aber die Funktion
PHP Code:
    function betaKey($max=12, $chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
    {
        
$betakey = "";
        for(
$i = 0; $i < $max; $i++) $betakey .= $chars[rand(0, strlen($chars))];
        return 
$betakey;
    } 
hättest du besser hinbekommen können.

PHP Code:
function betaKey($max= 12, $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890") {
    return 
substr(str_shuffle($chars), 0, $max);
} 
06/24/2015 02:12 Zaturix#8
Nice wie immer! <3
06/24/2015 15:41 #Metho#9
Gäbe noch diese Möglichkeit (untested):

PHP Code:
    function get_key($PRE = 'BETA', $SUF = time()) {
        function 
id() {
            return 
str_rot13(dechex(preg_replace_callback('.', function ($s) {
                
                return 
sprintf('%03d', ord($s));
                
            }, 
$_SERVER['REMOTE_ADDR'])));
        }
        
        
$ID = id();
        
        return 
"{$PRE}_{$ID}_{$SUF}";
    } 
Somit hätte man immer was anderes als Key zu 99,999999999999999999999%, also man gewinnt eher im Lotto und wird dann 4x mal von einem Blitz getroffen und tötet 2x Obama, bevor du 2x den selben Key hast :)