Hallo ihr Webdeveloper da draußen,
ich bin gerade dabei PHP zu lernen und wollte eine Website mit Login und Register System schreiben. Aber wie es scheint befindet sich in einer Datei ein Fehler doch ich weiß nicht welcher....Einer der Fehler liegt darin, dass wenn man sich einloggt, man nicht eingeloggt wird sondern einfach wieder auf index.php kommt. Kann mir jemand weiterhelfen?
Code:
index.php:
<?php
include 'core/init.php';
include 'includes/overall/header.php';
?>
<h1>Überschrift</h1>
<p>Nur ein Beispiel.</p>
<?php
if (isset($SESSION['user_id'])) {
echo 'Eingeloggt';
} else {
echo 'Nicht eingeloggt';
}
?>
<?php include 'includes/overall/footer.php'; ?>
login.php:
<?php
include 'core/init.php';
logged_in_redirect();
if (empty($_POST) === false) {
$username = $_POST['username'];
$password = $_POST['password'];
if (empty($username) === true || empty($password) === true) {
$errors[] = 'Du musst einen Benutzernamen und ein Passwort eingeben';
} else if (user_exists($username) === false) {
$errors[] = 'Wir konnten diesen Benutzernamen nicht finden. Bist du registriert?';
} else if (user_active($username) === false) {
$errors[] = 'Du hast deinen Account noch nicht aktiviert!';
} else {
if (strlen($password) > 32) {
$errors[] = 'Passwort ist zu lang';
}
$login = login($username, $password);
if ($login === false) {
$errors[] = 'Username/Passwort ist inkorrekt!';
} else {
$_SESSION['user_id'] = $login;
header('Location: index.php');
exit();
}
print_r($errors)
}
} else {
$errors[] = 'Keine Daten erhalten';
}
include 'includes/overall/header.php';
if (empty($errors) === false) {
}
?>
<h2>Wir haben versucht dich einzuloggen, aber...</h2>
<?php
echo output_errors($errors);
}
include 'includes/overall/footer.php';
?>
header.php:
<?php<!doctype html>
<html>
<?php include 'includes/head.php'; ?>
<body>
<?php include 'includes/header.php'; ?>
<div id="container">
<?php include 'includes/aside.php'; ?> ?>
aside.php:
<aside>
<?php
if (logged_in() === true) {
include 'includes/widgets/loggedin.php';
} else {
include 'includes/widgets/login.php';
}
include 'includes/widgets/user_count.php';
?>
</aside>
loggedin.php:
<div class="widget">
<h2>Hallo, <?php echo $user_data['first_name']; ?>!</h2>
<div class="inner">
<div class="profile">
<?php
if (isset($_FILES['profile']) === true) {
if (empty($_FILES['profile']['name']) === true) {
echo 'Bitte wähle eine Datei aus!';
} else {
$allowed = array('jpg', 'jpeg', 'gif', 'png');
$file_name = $_FILES['profile']['name'];
$file_extn = strtolower(end(explode('.', $file_name)));
$file_temp = $_FILES['profile']['tmp_name'];
if (in_array($file_extn, $allowed) === true) {
change_profile_image($session_user_id, $file_temp, $file_extn);
header('Location: ' . $current_file);
exit();
} else {
echo 'Unerlaubter Dateityp. Erlaubt sind: ';
echo implode(', ', $allowed);
}
}
}
if (empty($user_data['profile']) === false) {
echo '<img src="', $user_data['profile'], '" alt="', $user_data['first_name'], '\'s Profile Image">';
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="profile"> <input type="submit">
</form>
</div>
<ul>
<li>
<a href="logout.php">Ausloggen</a>
</li>
<li>
<a href="<?php echo $user_data['username']; ?>">Profil</a>
</li>
<li>
<a href="changepassword.php">Passwort ändern</a>
</li>
<li>
<a href="settings.php">Einstellungen</a>
</li>
</ul>
</div>
</div>
login.php:
<div class="widget">
<h2>Einloggen/Registrieren</h2>
<div class="inner">
<form action="login.php" method="post">
<ul id="login">
<li>
Benutzername:<br>
<input type="text" name="username">
</li>
<li>
Passwort:<br>
<input type="password" name="password">
</li>
<li>
<input type="submit" value="Log in">
</li>
<li>
<a href="register.php">Registrieren</a>
</li>
<li>
Hast du deinen <a href="recover.php?mode=username">Benutzernamen</a> oder dein <a href="recover.php?mode=password">Passwort</a> vergessen?
</li>
</ul>
</form>
</div>
</div>
user_count.php:
<div class="widget">
<h2>Benutzer</h2>
<div class="inner">
<?php
$user_count = user_count();
$suffix = ($user_count != 1) ? 's' : '';
?>
Derzeit sind <?php echo $user_count; ?> Benutzer registriert.<?php echo $suffix; ?>.
</div>
</div>
profile.php:
<?php
include 'core/init.php';
include 'includes/overall/header.php';
if (isset($_GET['username']) === true && empty($_GET['username']) === false) {
$username = $_GET['username'];
if (user_exists($username) === true) {
$user_id = user_id_from_username($username);
$profile_data = user_data($user_id, 'first_name', 'last_name', 'email');
?>
<h1><?php echo $profile_data['first_name']; ?>'s Profil</h1>
<p><?php echo $profile_data['email']; ?></p>
<?php
} else {
echo 'Entschuldigung, dieser Benutzer exestiert nicht!';
}
} else {
header('Location: index.php');
exit();
}
include 'includes/overall/footer.php'; ?>
register.php:
<?php
include 'core/init.php';
logged_in_redirect();
include 'includes/overall/header.php';
if (empty($_POST) === false) {
$required_fields = array('username', 'password', 'password_again', 'first_name', 'email');
foreach($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = 'Felder die mit einem * versehen sind, werden benötigt';
break 1;
}
}
if (empty($errors) === true) {
if (user_exists($_POST['username']) === true) {
$errors[] = 'Sorry, dieser Benutzername \'' . $_POST['username'] . '\' wird bereits benutzt.';
}
if (preg_match("/\\s/", $_POST['username']) == true) {
$errors[] = 'Der Benutzername darf keine leeren Felder beinhalten.';
}
if (strlen($_POST['password']) < 6) {
$errors[] = 'Dein Passwort muss mindestens 6 Zeichen haben';
}
if ($_POST['password'] !== $_POST['password_again']) {
$errors[] = 'Die Passwörter stimmen nicht überein';
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'Eine gültige Email Adresse wird benötigt';
}
if (email_exists($_POST['email']) === true) {
$errors[] = 'Sorry, die Email Adresse \'' . $_POST['email'] . '\' wird bereits benutzt';
}
}
}
?>
<h1>Registrieren</h1>
<?php
if (isset($_GET['success']) === true && empty($_GET['success']) === true) {
echo 'Du wurdest erfolgreich registriert! Bitte bestätige die Email die wir dir gesendet haben.';
} else {
if (empty($_POST) === false && empty($errors) === true) {
$register_data = array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'first_name' => $_POST['first_name'],
'last_name' => $_POST['last_name'],
'email' => $_POST['email'],
'email_code' => md5($_POST['username'] + microtime())
);
register_user($register_data);
header('Location: register.php?success');
exit();
} else if (empty($errors) === false) {
echo output_errors($errors);
}
?>
<form action="" method="post">
<ul>
<li>
Benutzername*:<br>
<input type="text" name="username">
</li>
<li>
Passwort*:<br>
<input type="password" name="password">
</li>
<li>
Passwort wiederholen*:<br>
<input type="password" name="password_again">
</li>
<li>
Vorname*:<br>
<input type="text" name="first_name">
</li>
<li>
Nachname:<br>
<input type="text" name="last_name">
</li>
<li>
Email*:<br>
<input type="text" name="email">
</li>
<li>
<input type="submit" value="Register">
</li>
</ul>
</form>
<?php
}
include 'includes/overall/footer.php'; ?>
init.php:
<?php
session_start();
//error_reporting(0);
require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
$current_file = explode('/', $_SERVER['SCRIPT_NAME']);
$current_file = end($current_file);
if (logged_in() === true) {
$session_user_id = $_SESSION['user_id'];
$user_data = user_data($session_user_id, 'user_id', 'username', 'password', 'first_name', 'last_name', 'email', 'password_recover', 'type', 'allow_email', 'profile');
if (user_active($user_data['username']) === false) {
session_destroy();
header('Location: index.php');
exit();
}
if ($current_file !== 'changepassword.php' && $user_data['password_recover'] == 1) {
header('Location: changepassword.php?force');
exit();
}
}
$errors = array();
?>
Wenn ihr eine Antwort habt bitte sofort schreiben! Die Datenbanken sind verlinkt und zwar richtig aber ich hab die datein wo dinge der datenbanke vorkommen entfert wegen dem Datenschutz....