Oh okay
Sry, dann poste ich hier mal alle Dateien, welche von Bedeutung sein sollten :
Index.php
<?php
$dateien = array();
$dateien['index'] = 'index.php';
$dateien['login'] = 'login.php';
$dateien['logout'] = 'logout.php';
$dateien['register'] = 'register.php';
$dateien['profile'] = 'profile.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
include 'constants.php';
include 'functions.php';
$db = @new MySQLi('localhost', 'root', '' , 'database');
$ret = 1; // speichert den rückgabewert von include, standardwert 1
if (mysqli_connect_errno()) {
$ret = 'Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error();
} else {
include 'register.tpl';
// Laden der Include-Datei
// [...]
}
// Laden des HTML-Kopfs
// [...]
?>
Alles anzeigen
register.php
<?php
$ret = array();
$ret['filename'] = 'register.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],
$_POST['Antwort'], $_POST['formaction'])) {
return INVALID_FORM;
}
if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {
return INVALID_FORM;
}
if ($_POST['Password'][0] != $_POST['Password'][1]) {
return 'Bitte geben sie das gleiche Password ein.';
}
if (($Username = trim($_POST['Username'])) == '' OR
($Password = trim($_POST['Password'][0])) == '' OR
($Email = trim($_POST['Email'])) == '' OR
($Antwort = trim($_POST['Antwort'])) == '') {
return EMPTY_FORM;
}
if ('' != $Antwort) { // entsprechend anpassen
return 'Bitte geben sie die richtige Antwort an.';
}
if (!preg_match('~\A\S{3,30}\z~', $Username)) {
return 'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.
'keine Leerzeichen enthalten.';
}
$sql = 'SELECT
ID
FROM
User
WHERE
Username = ?
LIMIT
1';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('s', $Username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows) {
return 'Der Username wird bereits verwendet.';
}
$stmt->close();
$sql = 'INSERT INTO
User(Username, Email)
VALUES
(?, ?)';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('ss', $Username, $Email);
if (!$stmt->execute()) {
return $stmt->error;
}
$UserID = $stmt->insert_id;
$sql = 'UPDATE
User
SET
Password = ?
WHERE
ID = ?';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$Hash = md5(md5($UserID).$Password);
$stmt->bind_param('si', $Hash, $UserID);
if (!$stmt->execute()) {
return $stmt->error;
}
return showInfo('Der Benutzer wurde hinzugefügt. Sie können sich nun anmelden.');
}
?>
Alles anzeigen
register.tpl
<form action="index.php?section=register" method="post">
<fieldset>
<legend>Registieren</legend>
<label>Username: <input type="text" name="Username" /></label>
<label>Password: <input type="password" name="Password[]" /></label>
<label>Bestätigung: <input type="password" name="Password[]" /></label>
<label>Email: <input type="text" name="Email" /></label>
<label>{FRAGE}: <input type="text" name="Antwort" /></label>
<input type="submit" name="formaction" value="Registieren" />
</fieldset>
</form>
Alles anzeigen
Das Problem ist das ich in der Datenbank keinen Usereintrag finde?