Compare commits
4 Commits
8ed62b86bc
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7566cb2e6b | ||
|
|
e043a1b022 | ||
|
|
e88e5477de | ||
|
|
dd8ce88556 |
@@ -15,10 +15,21 @@ class Register extends Renderer {
|
|||||||
protected string $templateName = 'renderer';
|
protected string $templateName = 'renderer';
|
||||||
|
|
||||||
protected function formAction(): void {
|
protected function formAction(): void {
|
||||||
|
error_log('DEBUG Register::formAction aufgerufen');
|
||||||
|
if (!$this->formCheckFields()) {
|
||||||
|
error_log('DEBUG Register::formCheckFields fehlgeschlagen: ' . print_r($this->errors, true));
|
||||||
|
// Bei Validierungsfehlern: nichts speichern, keine Mail, Fehler im Formular anzeigen
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
error_log('DEBUG Register::formCheckFields ok, schreibe in DB');
|
||||||
$this->writeToDb();
|
$this->writeToDb();
|
||||||
|
error_log('DEBUG Register::writeToDb erledigt, sende Mail');
|
||||||
$this->sendEmail();
|
$this->sendEmail();
|
||||||
|
error_log('DEBUG Register::sendEmail beendet, Errors: ' . print_r($this->errors, true));
|
||||||
|
if (count($this->errors) === 0) {
|
||||||
$this->templateName = 'register_successful';
|
$this->templateName = 'register_successful';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function formCheckFields(): bool {
|
protected function formCheckFields(): bool {
|
||||||
$username = trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_ADD_SLASHES));
|
$username = trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_ADD_SLASHES));
|
||||||
@@ -29,7 +40,10 @@ class Register extends Renderer {
|
|||||||
if (!preg_match('/^([a-z0-9]{3,16})$/', $username)) {
|
if (!preg_match('/^([a-z0-9]{3,16})$/', $username)) {
|
||||||
$this->errors['username'] = 'Der Benutzername darf nur aus Buchstaben (ohne Umlaute) und Zahlen bestehen und muss zwischen drei und sechzen Zeichen lang sein.';
|
$this->errors['username'] = 'Der Benutzername darf nur aus Buchstaben (ohne Umlaute) und Zahlen bestehen und muss zwischen drei und sechzen Zeichen lang sein.';
|
||||||
}
|
}
|
||||||
if (!filter_var(strtolower(trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL)), FILTER_VALIDATE_EMAIL))) {
|
if (!filter_var(
|
||||||
|
strtolower(trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL))),
|
||||||
|
FILTER_VALIDATE_EMAIL
|
||||||
|
)) {
|
||||||
$this->errors['email'] = 'Die Email-Adresse ist inkorrekt';
|
$this->errors['email'] = 'Die Email-Adresse ist inkorrekt';
|
||||||
}
|
}
|
||||||
if (strlen(filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING)) < 8) {
|
if (strlen(filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING)) < 8) {
|
||||||
@@ -41,7 +55,7 @@ class Register extends Renderer {
|
|||||||
if (filter_input(INPUT_POST, 'accept', FILTER_SANITIZE_NUMBER_INT) !== '1') {
|
if (filter_input(INPUT_POST, 'accept', FILTER_SANITIZE_NUMBER_INT) !== '1') {
|
||||||
$this->errors['accept'] = 'Sie müssen der Speicherung Ihrer Daten zustimmen.';
|
$this->errors['accept'] = 'Sie müssen der Speicherung Ihrer Daten zustimmen.';
|
||||||
}
|
}
|
||||||
return (count($errors) === 0);
|
return (count($this->errors) === 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function writeToDb(): void {
|
protected function writeToDb(): void {
|
||||||
@@ -50,13 +64,13 @@ class Register extends Renderer {
|
|||||||
$email = strtolower(trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL)));
|
$email = strtolower(trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL)));
|
||||||
$encryptedEmail = $this->encode($email, $salt);
|
$encryptedEmail = $this->encode($email, $salt);
|
||||||
$query = sprintf("INSERT INTO ffajs.`user` (username, password, realname, email, active, save_data_accepted, salt, color_id) "
|
$query = sprintf("INSERT INTO ffajs.`user` (username, password, realname, email, active, save_data_accepted, salt, color_id) "
|
||||||
. "VALUES('%s', '%s', '%s', '%s', 0, %d, '%s', (SELECT c.id
|
. "VALUES('%s', '%s', '%s', '%s', 0, %d, '%s', COALESCE((SELECT c.id
|
||||||
FROM color c
|
FROM color c
|
||||||
left join `user` u
|
left join `user` u
|
||||||
on u.color_id = c.id
|
on u.color_id = c.id
|
||||||
where u.id is null
|
where u.id is null
|
||||||
order by rand()
|
order by rand()
|
||||||
limit 1))",
|
limit 1), 1))",
|
||||||
strtolower(trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING))),
|
strtolower(trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING))),
|
||||||
password_hash(filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING), PASSWORD_DEFAULT),
|
password_hash(filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING), PASSWORD_DEFAULT),
|
||||||
$encryptedName,
|
$encryptedName,
|
||||||
|
|||||||
@@ -461,7 +461,12 @@ class Renderer {
|
|||||||
$mail->addStringAttachment($attachment['content'], $fileName, 'base64', $attachment['type']);
|
$mail->addStringAttachment($attachment['content'], $fileName, 'base64', $attachment['type']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
$mail->send();
|
$mail->send();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
error_log('Mailversand fehlgeschlagen: ' . $e->getMessage());
|
||||||
|
$this->errors[] = 'Die Bestätigungs-Email konnte nicht versendet werden. Bitte versuchen Sie es später erneut oder kontaktieren Sie uns direkt.';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function connectToImap($folder = ''): bool {
|
protected function connectToImap($folder = ''): bool {
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
// Temporäre Fehlerausgabe und Logging für Debugzwecke
|
||||||
|
ini_set('display_errors', '0');
|
||||||
|
ini_set('log_errors', '1');
|
||||||
|
ini_set('error_reporting', (string)E_ALL);
|
||||||
|
ini_set('error_log', __DIR__ . '/php-error.log');
|
||||||
|
|
||||||
if (isset($_REQUEST['q']) && substr($_REQUEST['q'], -4) === '.php') {
|
if (isset($_REQUEST['q']) && substr($_REQUEST['q'], -4) === '.php') {
|
||||||
$url = substr($_REQUEST['q'], 0, -4);
|
$url = substr($_REQUEST['q'], 0, -4);
|
||||||
header('Location: ' . $url, true, 301);
|
header('Location: ' . $url, true, 301);
|
||||||
|
|||||||
Reference in New Issue
Block a user