prognose_ludwigsburg/user_anlegen.php
2023-04-26 13:17:21 +02:00

375 lines
12 KiB
PHP
Executable File

<?php
/*
# Fuer debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
#echo __LINE__."<br>";
*/
include_once './classes/TestProjektSmarty.class.php';
$smarty = new Smarty();
require_once("./config.inc.php");
$template = "standard";
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
require_once "./language/german.inc.php";
require_once("func_rollenrechte.php");
require_once "func_genUser.php";
// Rechteüberprüfung
#$db = dbconnect();
if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
if(!rore($user_admin,'a_admanleg','RE')){echo "Keine Rechte";exit;}
// Rechteüberprüfung ende
session_start();
# Wenn Seite neu aufgerufen wird, dann alle Sessions, die mit "bearbeiten_" beginnen löschen
if(isset($_GET['new']) AND $_GET['new'] == 1){;
$search_prefix = 'anlegen_';
$search_len = strlen($search_prefix);
foreach( $_SESSION as $key => $value){
if ( substr( $key, 0, $search_len) == $search_prefix) {
unset( $_SESSION[$key]);
}
}
}
if(isset($_GET['action'])){
$action = $_GET['action'];
}else{
$action = '';
}
if($action == ''){
# Daten aufbereiten für Zurückbutton
if(isset($_SESSION["anlegen_vorname"])){
$smarty->assign('user_anlegen_vorname', $_SESSION["anlegen_vorname"]);
}
if(isset($_SESSION["anlegen_nachname"])){
$smarty->assign('user_anlegen_nachname', $_SESSION["anlegen_nachname"]);
}
if(isset($_SESSION["anlegen_mail"])){
$smarty->assign('user_anlegen_mail', $_SESSION["anlegen_mail"]);
}
# Daten aufbereiten für Zurückbutton ENDE
}
if($action == 'profil'){
# Daten aus Startseite speichern
if(isset($_POST['vorname'])){
$_SESSION["anlegen_vorname"] = $_POST['vorname'];
}
if(isset($_POST['nachname'])){
$_SESSION["anlegen_nachname"] = $_POST['nachname'];
}
if(isset($_POST['mail'])){
$_SESSION["anlegen_mail"] = $_POST['mail'];
}
# Daten aus Startseite speichern ENDE
if ($_SESSION["anlegen_mail"] == "" or $_SESSION["anlegen_nachname"] == "" or $_SESSION["anlegen_vorname"] == ""){ // Fehler, falls Pflichtfelder unausgef&uuml;llt
$smarty->assign('user_anlegen_mandatory', "1");
}else{
$smarty->assign('user_anlegen_mandatory', "2");
$result_vorh = $db->query("SELECT count(*) Anz FROM prog_admin WHERE mail=trim('$_SESSION[anlegen_mail]')");
$row_vorh = $result_vorh->fetch_array();
if($row_vorh['Anz'] > 0){
$smarty->assign('user_anlegen_exists', "1");
}else{
$smarty->assign('user_anlegen_exists', "2");
#$db = dbconnect();
# Wenn jmd nur das Vorsteherrecht hat rid=4, dann darf er nur Standarduser vergeben
$result_recht = $db->query("SELECT count(*) Anz
FROM prog_admin a, prog_admin_rollen_user_zuord b
WHERE user = '$user_admin'
AND a.vaid=b.vaid
AND rid = 4");
$row_recht = $result_recht->fetch_array();
if($row_recht['Anz'] != 1){
$query = "SELECT rid, bezeichnung FROM prog_admin_rolle ORDER BY bezeichnung ASC";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
if(isset($_SESSION["anlegen_profil"])){
if(@in_array($row['rid'], $_SESSION["anlegen_profil"])){
$select = "Y";
}else{
$select = "N";
}
}else{
$select = "";
}
$row['select'] = $select;
$value[] = $row;
}
}else{ # Vorseher darf nur Standardrecht sehen
$query = "SELECT rid, bezeichnung FROM prog_admin_rolle WHERE rid=2 ORDER BY bezeichnung ASC";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
if(isset($_SESSION["anlegen_profil"])){
$select = "Y";
}else{
$select = "";
}
$row['select'] = $select;
$value[] = $row;
}
}
$smarty->assign('table_data', $value);
}
}
}
if($action == 'overview'){
# Daten aus Startseite speichern
if(isset($_POST['profil'])){
$_SESSION["anlegen_profil"] = $_POST['profil'];
}else{
unset($_SESSION["anlegen_profil"]);
}
# Daten aus Startseite speichern ENDE
#echo "<hr>";
#echo nl2br(print_r($_SESSION,true));
#echo "<hr>";
if ($_SESSION["anlegen_profil"][0] == ""){ // Fehler, falls Pflichtfelder unausgef&uuml;llt
$smarty->assign('user_anlegen_mandatory_profil', "1");
}else{
$smarty->assign('user_anlegen_mandatory_profil', "2");
if(isset($_SESSION['anlegen_profil'])){
$profil = $_SESSION['anlegen_profil'];
$bezeichnung_profil = "";
for ($i=0;$i<sizeof($profil);$i++) {
$result_profil = $db->query("SELECT bezeichnung FROM prog_admin_rolle WHERE rid='$profil[$i]'");
$row_profil = $result_profil->fetch_array();
$bezeichnung_profil .= "$row_profil[bezeichnung]<br>";
}
}
#Benutzerkennung generieren
$benutzerkennung = genUser($_SESSION["anlegen_vorname"], $_SESSION["anlegen_nachname"]);
$smarty->assign('user_anlegen_vorname', $_SESSION["anlegen_vorname"]);
$smarty->assign('user_anlegen_nachname', $_SESSION["anlegen_nachname"]);
$smarty->assign('user_anlegen_user', $benutzerkennung);
$smarty->assign('user_anlegen_mail', $_SESSION["anlegen_mail"]);
$smarty->assign('user_anlegen_profil', $bezeichnung_profil);
}
}
if($action == 'save'){
# dt_patrone
$anlegen_vorname = trim($_SESSION["anlegen_vorname"]);
$anlegen_nachname = trim($_SESSION["anlegen_nachname"]);
$anlegen_mail = trim($_SESSION["anlegen_mail"]);
$benutzerkennung = genUser($anlegen_vorname, $anlegen_nachname);
# Profil
$anlegen_profil = $_SESSION["anlegen_profil"];
$result_vorh = $db->query("SELECT count(*) Anz FROM prog_admin WHERE mail='$anlegen_mail'");
$row_vorh = $result_vorh->fetch_array();
if($row_vorh['Anz'] > 0){
$smarty->assign('user_anlegen_exists', "1");
}else{
$smarty->assign('user_anlegen_exists', "2");
$passwd = md5($benutzerkennung);
$datum=date("Y-m-d H:i:s");
$pw_expire = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m")+1, date("d"), date("Y"))); // ISO-8601 Format
$sql1 = $db->query( "INSERT INTO prog_admin ( vorname
, nachname
, user
, mail
, passwort
, pw_expire
, registriert_durch
, registriert
, inaktiv
)
VALUES
( '$anlegen_vorname'
, '$anlegen_nachname'
, '$benutzerkennung'
, '$anlegen_mail'
, '$passwd'
, '$pw_expire'
, '$user_admin'
, '$datum'
, 'N'
)
" );
if(!$sql1){
$error = TRUE;
$error_reason .= "Fehler beim anlegen von Stammdaten (prog_admin)<br>";
}else{
$error = FALSE;
}
$vaid = $db->insert_id;
for ($i=0;$i<sizeof($anlegen_profil);$i++) {
$sql3 = $db->query( "INSERT INTO prog_admin_rollen_user_zuord ( rid
, vaid
)
VALUES
( '$anlegen_profil[$i]'
, '$vaid'
)
" );
if(!$sql3){
$error = TRUE;
$error_reason .= "Fehler beim anlegen der Benutzer - Rollenzuordnung (prog_admin_rollen_user_zuord)<br>";
}else{
$error = FALSE;
}
}
if(!$error){
$smarty->assign('user_anlegen_inserterr', "2");
$result_abs = $db->query("SELECT vorname, nachname, mail FROM prog_admin WHERE user='$user_admin'");
$row_abs = $result_abs->fetch_array();
$empfaenger = "$anlegen_mail";
$betreff = "Anmeldung Prognosetool";
$text = "
<html>
<head>
<title>Administrator Prognosetool</title>
</head>
<body>
<font face='Arial' size='2'>
Guten Tag $anlegen_vorname $anlegen_nachname!<br><br>
Sie wurden von $row_abs[vorname] $row_abs[nachname] als Administrator für das Prognosetool registriert!<br>
Nachfolgend finden Sie Ihre Zugangsdaten:
<br>
<br>
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
Benutzerkennung:
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
<b>$benutzerkennung</b>
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
Passwort:
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
<b>$benutzerkennung</b>
</font>
</td>
</tr>
</table>
<br>
Bitte beachten Sie, dass zwischen Gro&szlig;- und<br>
Kleinschreibung unterschieden wird.
<p>
&Auml;ndern Sie bitte zu Ihrer eigenen Sicherheit das<br>
Passwort nach dem ersten Login.
<p>
Link zum <a href=\"https://www.hs-ludwigsburg.de/kurs/prognose\">Prognosetool</a>
<p>
Diese Mail wurde automatisch generiert!<br>
Antworten Sie daher nicht auf diese Mail<br>
<br>
Vielen Dank
</body>
</html>";
#$headers = "MIME-Version: 1.0\n";
#$headers .= "Content-type: text/html; charset=iso-8859-1\n";
# $headers .= "From: Atelerier <$row_abs[mail]>\n";
# PRoblem bei 1und1, wenn man die Absendermailadresse als Variable übergibt
$headers = 'MIME-Version: 1.0' . "\n" . "From: Prognosetool <mueller@hs-ludwigsburg.de> " . "\n" . 'Content-Type:text/html; charset="iso-8859-1"';
# echo $headers;
$return1 = @mail($empfaenger, $betreff, $text, $headers);
if($return1){ // Abfrage ob Mailversand funktioniert hat
$smarty->assign('user_anlegen_mailsuccess', "2"); // Mailversand
$smarty->assign('user_anlegen_returnmailadr', "$anlegen_mail"); // Mailadresse
}else{
$smarty->assign('user_anlegen_mailsuccess', "1"); // Kein Mailversand
}
}else{ // ELSE IF: Wenn Insert nicht geklappt hat
$smarty->assign('user_anlegen_inserterr', "1");
$smarty->assign('user_anlegen_reason', "$error_reason"); // Kein Mailversand
} // Ende IF : Insert hat geklappt
}
session_destroy();
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>