<?php force_login(); if (!empty($_POST) && user_load_authenticate(user()->name, $_POST['old_pass'])) { // Account löschen if (isset($_POST['del_account'])) { if (!isset($_POST['del_confirm'])) { status_message("Bitte wähle die Checkbox zur Bestätigung aus!"); gotop("index.php?q=acc"); } else { $database->exec('DELETE FROM user_data WHERE user_id = ' . user()->id); $database->exec('DELETE FROM user_feeds WHERE user_id = ' . user()->id); $database->exec('DELETE FROM users WHERE id = ' . user()->id); $database->exec('DELETE FROM user_autologin WHERE user_id = ' . user()->id); session_destroy(); session_start(); setcookie('autologin', '', time() - 3600, dirname($_SERVER['REQUEST_URI']) == '/' ? '/' : dirname($_SERVER['REQUEST_URI']) . '/', null, false, true); status_message("Dein Account wurde gelöscht."); gotop("index.php"); } } // Passwort ändern if (isset($_POST['change_pw']) && (user()->flags & USER_FLAG_IS_LDAP_ACCOUNT) == 0 || !$ldap_server) { if (!trim($_POST['new_pass_1'])) { status_message("Bitte gib ein neues Kennwort ein, das nicht nur aus Whitespace besteht!"); gotop("index.php?q=acc"); } if ($_POST['new_pass_1'] != $_POST['new_pass_2']) { status_message("Die neuen Kennwörter stimmen nicht überein."); gotop("index.php?q=acc"); } else {
$salt = base_convert(rand(0, 36 * 36 - 1), 10, 36); $passSha = sha1($salt . $pass); $user->pass = $passSha; $user->salt = $salt; } user_save(); status_message('Dein Benutzer wurde angelegt. Willkommen beim Übungszetteldienst!'); // Kein Autologin beim ersten Anmelden $_SESSION['logged_in'] = true; $_SESSION['login'] = $user; gotop('index.php'); } } if ($_POST['action'] == 'Anmelden') { // Benutzer einloggen $user = user_load_authenticate($name, $pass); if (!$user) { $errPass = '******'; } else { // Autologin-Cookie anlegen $autologin = sha1($user->salt . $secure_token . time() . $user->id . $_SERVER['REMOTE_ADDR']); $token = sha1($autologin . '-' . microtime() . '-' . rand()); $database->query("INSERT INTO user_autologin (id, token, user_id) VALUES('" . $autologin . "',\n\t\t\t\t\t'" . $token . "', " . $user->id . ');'); setcookie('autologin', $autologin . '-' . $token, time() + 15552000, dirname($_SERVER['REQUEST_URI']) == '/' ? '/' : dirname($_SERVER['REQUEST_URI']) . '/', null, false, true); // User ist nun eingeloggt. Zur Übersicht. $_SESSION['logged_in'] = true; $_SESSION['login'] = $user; gotop('index.php'); } } }