[Kleines Release]Beta Registration Seite

06/22/2015 14:28 .Avani™#1
EDIT (22.06.2015 / 22:13 Uhr): Ich habe nun aufgrund der Rückmeldung die Seite nochmal komplett überarbeitet. Falls jemand trotzdem noch Fehler finden sollte, bitte bescheid geben! :)

Ab sofort muss die Datei "/config/db_connection.php" mit euren Daten bearbeitet werden.




Hallo e*pvp Community,
ich hab aus Langeweile eine Beta Registrations Seite erstellt, brauche diese aber nicht und Release sie deshalb. Vielleicht kann sie ja einer sinnvoll benutzen. Zudem ist die Seite Frei Editierbar, falls das ein oder andere für manche nicht in Ordnung ist.

Derzeit bin ich noch am Lernen von HTML, PHP, CSS und jQuery weshalb der Code eventuell für manche nicht überragend gut ist. ;)

Gallery

[Only registered and activated users can see links. Click Here To Register...]


Über Feedback und Kritik würde ich sehr Freuen!
Grüße, .Avani™
06/22/2015 14:53 /exit#2
Design ist nicht überragend.

Nun zum Code:

beta_register.php
PHP Code:
<?php
$username 
$_POST['username'];
$passwort $_POST['passwort'];
$mail $_POST['mail'];
$beta_key $_POST['beta_key'];

echo 
"Benutzername: $username<br>";
echo 
"Passwort: $passwort<br>";
echo 
"E-Mail: $mail<br>";
echo 
"Beta Key: $beta_key<br>";
?>
Wird überhaupt nicht gehen, da er die eingegeben Daten nicht in der Datenbank speichert und keine Key ausliest.

Teil aus der index.php:
PHP Code:
<form id="beta_register" autocomplete="off">
            <
table border="0" width="100%">
            <
tr align="center"><td><input type="text" id="username" placeholder="Benutzername" class="input_text"></td></tr>
            <
tr align="center"><td><input type="password" id="passwort" placeholder="Passwort" class="input_text"></td></tr>
            <
tr align="center"><td><input type="text" id="mail" placeholder="E-Mail" class="input_text" pattern="{0,5}"></td></tr>
            <
tr align="center"><td><input type="text" id="beta_key" placeholder="Beta Key" class="input_text"></td></tr>
            </
table>
            <
input type="button" id="register_button">
            <
input type="button" id="register_button_g">
        </
form
Wenn man jetzt auf den Button drücken würde, würde nichts passieren
da der korrekte Pfad fehlt.

insert_beta_keys.php:
PHP Code:
<?php
$db 
mysqli_connect("HOST""USERNAME""PASSWORT""DATENBANK") or die();
$x 0;

while (
$x 10) {
    
$beta_key rand(10009999)."-".rand(10009999)."-".rand(10009999)."-".rand(10009999);
    
$query mysqli_query($db"INSERT INTO beta_keys (beta_key, used) VALUES ('".$beta_key."', '0')");
    echo 
"Der Key: <i>".$beta_key."<//i> wurde hinzugefügt!<br>";
    
$x++;
};
?>
Wieso 4x mal die Rand abfrage, eine hätte gereicht.
Und die Verbindung beendest du am ende auch nicht.

Und was ich mich die ganze Zeit Frage ist, warum zur Hölle verwendest du jQuery?

Fazit: Release ist nett gemeint, aber unbrauchbar!
06/22/2015 15:49 [Remix]#3
Zudem sollte geprüft werden, ob der Betakey bereits existiert.
Die Chance ist zwar gering, aber es ist im Bereich des Möglichen.
06/22/2015 18:53 nybu#4
Soo hab mir das ganze jetzt mal angeschaut :)

Du solltest dir AUF JEDEN FALL! nochmal die HTML Grundlagen durch schauen.

das meta charset Element, was du in Zeile 1 hast gehört in den Head,
über den Titel. In die Erste Zeile gehört die Deklaration der HTML
Version,w elche du nutzt (<!doctype html> für html5).
Nach dem <head> Element kommt der <body> und um head und
body gehört das <html> Element.

Generell soltlest du auch Tabellen wirklich nur dann verwenden
wenn du eine Tabelle darstellen möchtest. Allgemein
Layoutgestaltung immer mit Divs.

[Only registered and activated users can see links. Click Here To Register...]


Allgemein ist jQuery echt was tolles! Da kann man sehr einfach
und sehr schnell extrem schöne Sachen zuabern... aber wenn HTML
und CSS schon die Funktionen bieten, wieso dann noch jQuery
einbinden und damit zusätzlichen Traffic erzeugen? Wobei du das
hier eig echt nett gemacht hast. Man könnte das Key-Input feld evtl.
noch etwas schöner gestalten (nicht mit pipes und unterstrichen
sondern mit css oder Grafiken) aber sonst ne gute Idee :)

Allgemein Stichpunkt Traffic. Die Bidler die du Nutzt sind extrem
groß (von der Datenmenge her). Du soltlest diese auf jeden Fall
komprimieren. Allgemein sollten Bilder nicht größer als
maximal 200 - 400kb sein.

Hierzu rate ich dir:
[Only registered and activated users can see links. Click Here To Register...]
bzw
[Only registered and activated users can see links. Click Here To Register...]


Hier nochmal die index.php nach HTML5 Standards. Vielleicht guckst du dir ja einfach mal den Quellcode an und vergleichst ihn mit deinem... hoffe das hilft dir :)

HTML Code:
<!doctype HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>Beta Registrierung</title>
		<link rel="stylesheet" type="text/css" href="./css/style.css">
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
		<script type="text/javascript" src="./js/jQuery.js"></script>
		<script type="text/javascript" src="./js/jquery.maskedinput.min.js"></script>
	</head>
	<body>
		<div id="main">
			<div id="header">Beta Registrierung</div>
			<div id="register_form">
				<form id="beta_register" autocomplete="off">
					<input type="text" id="username" placeholder="Benutzername" class="input_text">
					<input type="password" id="passwort" placeholder="Passwort" class="input_text">
					<input type="text" id="mail" placeholder="E-Mail" class="input_text" pattern="{0,5}">
					<input type="text" id="beta_key" placeholder="Beta Key" class="input_text">

					<input type="button" value=" " id="register_button">
					<input type="button" value=" " id="register_button_g">
				</form>
			</div>
		</div>
	</body>
</html>
Hier kannst du btw deinen HTML Code checken:
[Only registered and activated users can see links. Click Here To Register...]

Achja @Andres:
Das Script funktioniert:
Code:
$("#register_button").click(function() {
		$.post("./module/beta_register.php",
			{
				username : $("#username").val(),
				passwort : $("#passwort").val(),
				mail : $("#mail").val(),
				beta_key : $("#beta_key").val()
			},
		function(data) {
			$("#register_form").html(data);
		});
in der js Datei ^^
Klar... es fehlt noch die Query und die Datenbankconnection... aber das Formular wird abgeschickt.
06/22/2015 19:30 .Avani™#5
Danke erstmal für all euer Feedback!
Ich werde mir alles nochmal anschauen und Fehler beheben. Sowie Tipps von euch anwenden.

Sobald ich alles erledigt habe werde ich die Dateien nochmal hochladen. (Hoffentlich ohne Fehler.. :rolleyes:)

Grüße, .Avani™
06/22/2015 20:06 /exit#6
Quote:
Originally Posted by nybυ View Post
Achja @Andres:
Das Script funktioniert:
Code:
$("#register_button").click(function() {
		$.post("./module/beta_register.php",
			{
				username : $("#username").val(),
				passwort : $("#passwort").val(),
				mail : $("#mail").val(),
				beta_key : $("#beta_key").val()
			},
		function(data) {
			$("#register_form").html(data);
		});
in der js Datei ^^
Klar... es fehlt noch die Query und die Datenbankconnection... aber das Formular wird abgeschickt.

*andreas, solltest denn Namen eigentlich schon kennen.
Das Script funktioniert nicht, da es nicht das macht was es eigentlich
machen sollte, ergo ist es unbrauchbar.
Nur weil es die eingegebene Sachen ausgibt die man eingegeben hat kann
man nicht von funktionalität Sprechen.
Zumal ich Sagte, dass es so wie es jetzt da steht nicht funktioniert und
wenn du einwenig Ahnung hast von, wüsstest du dass ich das MySQL verfahren meine. :)
06/22/2015 20:16 rollback#7
Hier einmal ein kleiner SQL-Part für die Beta-Keys:

Code:
CREATE TABLE betakeys (
	´key´ char(16) not null,
	redeemed int(1) not null,
	primary key(´key´)
);

SELECT redeemed FROM betakeys WHERE ´key´ = 'YOUR_KEY' LIMIT 1;
UPDATE betakeys SET redeemed = 1 WHERE ´key´ = 'YOUR_KEY' LIMIT 1;
Wenn der Select nichts zurückgibt -> Falscher Key
Wenn der Select im Feld redeemed 1 zurückgibt -> Key bereits eingelöst
Wenn der Select im Feld redeemed 0 zurückgibt -> Key ist gültig

Update muss zusammen mit Regi ausgeführt werden
06/22/2015 21:22 AnTii™#8
Quote:
Originally Posted by It's me, 1093 View Post
Hier einmal ein kleiner SQL-Part für die Beta-Keys:

Code:
CREATE TABLE betakeys (
	key char(16) not null,
	redeemed int(1) not null,
	primary key(key)
);

SELECT redeemed FROM betakeys WHERE key = 'YOUR_KEY' LIMIT 1;
UPDATE betakeys SET redeemed = 1 WHERE key = 'YOUR_KEY' LIMIT 1;
Wenn der Select nichts zurückgibt -> Falscher Key
Wenn der Select im Feld redeemed 1 zurückgibt -> Key bereits eingelöst
Wenn der Select im Feld redeemed 0 zurückgibt -> Key ist gültig

Update muss zusammen mit Regi ausgeführt werden
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 'YOUR_KEY' LIMIT 1' at line 1
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 'YOUR_KEY' LIMIT 1' at line 1

:P
06/22/2015 21:44 rollback#9
Quote:
Originally Posted by AnTii™ View Post
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 'YOUR_KEY' LIMIT 1' at line 1
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 'YOUR_KEY' LIMIT 1' at line 1

:P
sry, habe vergessen key in ´ zu setzen