[Release] 2015 Register

03/28/2019 17:25 Amanecer#1
Howdy Community!

Ich hab vor einem Monat angefangen ein bisschen PHP zu lernen und habe für mein erstes Projekt [Only registered and activated users can see links. Click Here To Register...] Tutorial verwendet. Ich war überglücklich weil es total meiner Vorstellung entsprach!

Klick [Only registered and activated users can see links. Click Here To Register...] um das Register Script herunterzuladen, vollständig angepasst um mit den 2015 Files zu funktionieren. Die Extension [Only registered and activated users can see links. Click Here To Register...] PDO ist notwendig.

Das Archiv beinhaltet Dateien für die Verwendung mit Win und SQL Authentifizierung (Standalone index.php oder mit separater Configdatei für den Datenbanklogin) + jeweils ein Bootstrap Beispiel.

Sollten Probleme auftauchen lass mich bitte darüber wissen! Ich werde versuchen es so gut wie möglich zu verbessern.
03/28/2019 19:50 D0n!#2
Quote:
Originally Posted by Amanecer View Post
Howdy Community!

Ich hab vor einem Monat angefangen ein bisschen PHP zu lernen und habe für mein erstes Projekt [Only registered and activated users can see links. Click Here To Register...] Tutorial verwendet. Ich war überglücklich weil es total meiner Vorstellung entsprach!

Klick [Only registered and activated users can see links. Click Here To Register...] um das Register Script herunterzuladen, vollständig angepasst um mit den 2015 Files zu funktionieren. Die Extension [Only registered and activated users can see links. Click Here To Register...] PDO ist notwendig.

Das Archiv beinhaltet insgesamt 5 Dateien für die Verwendung mit Win und SQL Authentifizierung + jeweils ein Bootstrap Beispiel + Account Datenbank mit einer zusätzlichen Tabelle für die Anzahl der Item Shop Coins.

Sollten Probleme auftauchen lass mich bitte darüber wissen! Ich werde versuchen es so gut wie möglich zu verbessern.
Ich habe gerade mal drüber geschaut auf die schnelle und was mir so direkt ins Auge fällt ist die Prüfung
der Benutzereingaben.

Code:
 1 if (isset($_POST['uid']) === true && isset($_POST['upw']) === true && isset($_POST['cupw']) === true) {
 2	if (Database() === 0) {
 3		$error = 'Database connect error!';
 4	} elseif ($_POST['upw'] !== $_POST['cupw']) {
 5		$error = 'Confirm Password does not match Password!';
 6	} elseif (preg_match('/^$/', $_POST['uid']) === 1) {
 7		$error = 'Username field required!';
 8	} elseif (preg_match('/^$/', $_POST['upw']) === 1) {
 9		$error = 'Password field required!';
10	} elseif (preg_match('/^[\s\S]{61,}$/', $_POST['uid']) === 1) {
11		$error = 'Username exceeds the max of 60 characters!';
12	} elseif (preg_match('/^[\s\S]{17,}$/', $_POST['upw']) === 1) {
13		$error = 'Password exceeds the max of 16 characters!';
14	} elseif (preg_match('/^[\x{20}-\x{7E}]+$/', $_POST['uid']) === 0) {
15		$error = 'Username contains forbidden characters!';
16	} elseif (preg_match('/^\x{20}/', $_POST['uid']) === 1) {
17		$error = 'Username may not start with a space!';
18	} elseif (preg_match('/\x{20}$/', $_POST['uid']) === 1) {
19		$error = 'Username may not end with a space!';
20	} elseif (preg_match('/^[\x{20}-\x{7E}]+$/', $_POST['upw']) === 0) {
21		$error = 'Password contains forbidden characters!';
22	} elseif (UIDUnique() === 0) {
23		$error = 'Username already in use!';
24	} else {
25		SetCoins();
26		$success = 'User has been created!';
27	}
28 }
Ich würde an deiner Stelle die function Database() am ende jedoch vor der Function UIDUnique() anordnen,
wenn nicht gar ganz entfernen dort aus performancetechnischen Gründen,
da eine Datenbankabfrage ja ansich nicht stattfinden muss wenn schon eine der anderen Bedingungen zutrifft.

Wenn überhaupt dann mach den Check schon beim aufruf der Seite damit der User sich sparen kann
überhaupt Daten einzugeben.

Warum du im allgemeinen so viele Sonderzeichen im Username zulässt kann ich natürlich nur erahnen
und ist vermutlich auch nicht so verkehrt was andere Zeichensätze angeht, lässt aber vielleicht auch zu,
dass Zeichen/Zeichensätze benutzt werden die evtl. vom Server/Client nicht verarbeitet werden könnten.
Muss nicht sein aber könnte, ist nur son Gedanke. ;)

ansonsten siehts eigentlich ganz gut aus und für die Comm ist ja in erster Linie wichtig das es funktioniert.:)
03/28/2019 20:02 Amanecer#3
Deinen Vorschlag mit der Datenbankverbindung hab ich umgesetzt! Wird jetzt beim Laden der Seite überprüft. Sollte aber in der Regel ja eigentlich so gut wie nie zutreffen!

Der Fiesta Client akzeptiert (zumindest für den Login) alle [Only registered and activated users can see links. Click Here To Register...]. Deswegen auch die UTF-8 Range im Regex.

Edit: Das Bootstrap Template wurde auch geändert und zeigt jetzt eine Error/Successbox um die Meldung an.
03/28/2019 20:29 Der Fiesta Bob#4
Quote:
Originally Posted by Amanecer View Post
Howdy Community!

Ich hab vor einem Monat angefangen ein bisschen PHP zu lernen und habe für mein erstes Projekt [Only registered and activated users can see links. Click Here To Register...] Tutorial verwendet. Ich war überglücklich weil es total meiner Vorstellung entsprach!

Klick [Only registered and activated users can see links. Click Here To Register...] um das Register Script herunterzuladen, vollständig angepasst um mit den 2015 Files zu funktionieren. Die Extension [Only registered and activated users can see links. Click Here To Register...] PDO ist notwendig.

Das Archiv beinhaltet insgesamt 5 Dateien für die Verwendung mit Win und SQL Authentifizierung + jeweils ein Bootstrap Beispiel + Account Datenbank mit einer zusätzlichen Tabelle für die Anzahl der Item Shop Coins.

Sollten Probleme auftauchen lass mich bitte darüber wissen! Ich werde versuchen es so gut wie möglich zu verbessern.
So langsam mag ich dich☆
03/28/2019 22:04 D0n!#5
Quote:
Originally Posted by Amanecer View Post
Der Fiesta Client akzeptiert (zumindest für den Login) alle [Only registered and activated users can see links. Click Here To Register...]. Deswegen auch die UTF-8 Range im Regex.
Dann passt es ja wenn der Login das frisst wie gesagt, ansich ja ganz gut da es ein wenig
der sicherheit dient wenn auch sonderzeichen erlaubt sind. :)
Regex ist nich so meine stärke und hab ich ehrlich gesagt auch nicht sofort erkannt,
dass es sich um nen UTF-8 bereich handelt. :rolleyes:

Wie wärs jetzt noch mit config und evtl. auch functions auslagern in gesonderten .php's und per require_once();
einbinden so das es leichter anpassbar ist und die Logindaten für die db dann nicht unbedingt im Klartext im
public verzeichniss des webservers liegen?

Natürlich nur wennste bock hast, das kann die Comm ja dann nach etwas lektüre eigentlich auch selbst einrichten.;)
03/28/2019 22:45 Amanecer#6
Erledigt! Ich hab die Originaldaten im Ordner standalone drinnen gelassen, jeder muss für sich entscheiden was ihm lieber ist. Ich denke nicht dass es mit dem standalone irgendwelche Risiken geben sollte - dafür wird ja try und catch verwendet, um den Connection String eben nicht preiszugeben.
03/29/2019 21:32 D0n!#7
Sehr schön, ich habe das original vorhin mal aufn webserver geworfen und habe festgestellt,
dass Success auch ausgeworfen wird wenn die Connection zur DB zwar steht jedoch der insert
nicht erfolgreich war.

Da passt noch was nicht ganz, wenn ich gleich Lust habe dann suche ich nach dem Problem
und poste die Lösung.
03/29/2019 22:02 Amanecer#8
Es wird nun eine Fehlermeldung ausgegeben sollte der Insert fehlschlagen. Danke fürs Testen!
03/29/2019 22:05 D0n!#9
sehr hübsch, wollts grad posten aber warst schneller :)
03/29/2019 23:20 Amanecer#10
Habs nochmal geupdatet weil die Fehlermeldung nur bei einer nicht vorhandenen tItemShop Tabelle ausgegeben wurde und tUser wurde ignoriert. Wird jetzt beides respektiert!
03/31/2019 22:55 Ydrax#11
Ein Vorschaubild wäre eventuell auch nicht ganz verkehrt, ansonsten top!
04/13/2019 15:23 Tomekk76#12
Ich habe Trotz Eintragung in der PHP.ini extension=php_pdo_sqlsrv_73_ts
die fehlermeldung Error : Database connection Error ...
Mich verlässt es langsam , habe hin und her probiert
04/17/2019 20:41 Tomekk76#13
also Die Register Funktioniert nicht ... bin jetzt seid anfang an dabei am machen und probieren .. mehrmals die root mashine neu aufgesetzt aber immer Db connect error ...

Schade wer was schönes gewesen
04/17/2019 20:54 KuminDesu#14
Quote:
Originally Posted by Tomekk76 View Post
also Die Register Funktioniert nicht ... bin jetzt seid anfang an dabei am machen und probieren .. mehrmals die root mashine neu aufgesetzt aber immer Db connect error ...

Schade wer was schönes gewesen
Dann hast du deine Datenbank Connection nicht richtig eingetragen also bei mir funktioniert alles ohne probleme.
04/17/2019 22:05 Tomekk76#15
Quote:
Originally Posted by KuminDesu View Post
Dann hast du deine Datenbank Connection nicht richtig eingetragen also bei mir funktioniert alles ohne probleme.
Doch habe ich , kann ja das Passwort was ich da ja benötige kopieren und damit in SQL2014 einloggen aber er will wie gesagt nicht das es zu einer verbindung kommt !!!