Hallo liebe Forenmitglieder. Mein Name ist Sascha und ich bin absoluter "Neu"-Anfänger. Das letzte Mal hab ich vor etwa 10 Jahren gescriptet. Nun möchte ich aber wieder anfangen und habe gleich ein,
für euch sicherlich kleines, Problem. Ich habe Angefangen auf meiner Seite ein Registrierungsformular zu erstellen, bekomme aber immer nur Error 500 (Wie ich diesen Fehler hasse!!!).
Aber bevor mein Post zu lang wird, umreiße ich das Problem kurz und stellle mal die betreffenden Stellen ein.
In meiner Index.php steht folgendes:
Als nächstes wäre die Datei /config/db.php dran:
Im folgenden Scipt (user.class.php) befindet sich:
Wie man vll erahnen kann, geht es darum einen neuen User in der DB anzulegen. Das erfolgt über ein Formular in der /html/register.html.php,
und die dazugehörige /inc/register.inc.php:
Ich google mir seid Tagen die Fingerkuppen taub und komme einfach nicht auf einen Lösungsansatz.
Wäre cool, wenn mir da jemnad helfen könnte.
Danke schonmal im Vorraus
P.S.: Das ist nur der Anfang. Sachen wie Passwort... werden noch ergänzt.
für euch sicherlich kleines, Problem. Ich habe Angefangen auf meiner Seite ein Registrierungsformular zu erstellen, bekomme aber immer nur Error 500 (Wie ich diesen Fehler hasse!!!).
Aber bevor mein Post zu lang wird, umreiße ich das Problem kurz und stellle mal die betreffenden Stellen ein.
In meiner Index.php steht folgendes:
PHP-Code:
ini_set('display_errors',1);
error_reporting(E_ALL);
// Setting Header Information
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set('Europe/Berlin');
// Grabbing necessary files
require_once './config/db.php';
require_once './inc/home.inc.php';
// Grabbing classes
require_once './class/user.class.php'; //Datei fur die class user
PHP-Code:
$dsn = 'mysql:dbname=testdb;host=localhost;charset=utf8';
$user = ' ';
$pass = ' ';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_EMULATE_PREPARES => false
];
$pdo = new PDO($dsn, $user, $pass, $options);
PHP-Code:
class user {
public $name;
public $email;
public $user_level;
public $now;
private $pdo;
public function __construct(PDO $pdo) {
$this->pdo = $pdo;
}
public function createUser($name, $email) {
$user_level = '1';
$now = time();
$new_user = array();
$new_user['user_name'] = $name;
$new_user['user_email'] = $email;
$new_user['user_level'] = $user_level;
$new_user['created_at'] = $now;
$statement = $pdo->prepare("INSERT INTO `users` (user_name, user_email, user_level, created_at) VALUES ($name, $email, $user_level, $now)");
$statement->execute($new_user);
}
}
$USER = new user($pdo);
PHP-Code:
<form action="./register.inc.php" method="POST">
<input type="hidden" name="do" value="register">
<input type="text" name="username" placeholder="Benutzername"><br />
<input type="text" name="email" placeholder="E-Mail Adresse"><br /><br />
<input type="submit" value="Registrieren">
</form>
PHP-Code:
$job = htmlspecialchars($_POST['do']);
if ($job == 'register') {
$name = htmlspecialchars($_POST['username']);
$email = htmlspecialchars($_POST['email']);
$USER->createUser($name, $email); // Wird diese Zeile auskommentiert, erscheint der Fehler nicht. Liegt also am Aufruf der function createUser()
header('Location: ../index.php');
} else {
$job = '';
}
require_once('../html/register.html.php');
Wäre cool, wenn mir da jemnad helfen könnte.
Danke schonmal im Vorraus
P.S.: Das ist nur der Anfang. Sachen wie Passwort... werden noch ergänzt.
Kommentar