487 lines
14 KiB
PHP
Executable File
487 lines
14 KiB
PHP
Executable File
<?php
|
||
include("kurs/datenbankanbindung.php"); // fügt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
|
||
#require("check_zweig.php"); // Pr<50>ft, ob Innenverwaltung angemeldet ist: setzt datenbankanbindung.php voraus
|
||
$db = dbconnect();
|
||
session_start();
|
||
$ansp = $db->query("SELECT wert1, wert2 FROM parameter WHERE pid='1'");
|
||
$uhd = $ansp->fetch_array();
|
||
|
||
$query_ldapcon = $db->query("SELECT wert1 FROM parameter WHERE pid='12'");
|
||
$row_ldapcon = $query_ldapcon->fetch_array();
|
||
$query_ldapuser = $db->query("SELECT wert1, wert2 FROM parameter WHERE pid='13'");
|
||
$row_ldapuser = $query_ldapuser->fetch_array();
|
||
$_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de";
|
||
|
||
$ansprechpart = "$uhd[wert1]"; // Ansprechpartner bei Probleme
|
||
$helpmail = "$uhd[wert2]"; // Kontaktmailadresse bei Problemen
|
||
$systemname = "Anmeldesystem";
|
||
$_SESSION['systemname'] = $systemname;
|
||
|
||
|
||
if (isset($_GET['action']))
|
||
$action = $_GET['action'];
|
||
else
|
||
$action = "";
|
||
|
||
switch($action){
|
||
default:
|
||
|
||
echo"
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Anmeldung $systemname</title>
|
||
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
|
||
</head>
|
||
<body>
|
||
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
|
||
<!--LOGIN FORM-->
|
||
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF'] . "?action=anmeld";echo" method=\"POST\" name=\"login\">
|
||
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>$systemname</h1><!--END TITLE-->
|
||
<!--DESCRIPTION--><span><font color=red><b><u>NEU: Studierende der Hochschule Ludwigsburg:</u></b></font><br>
|
||
Bitte verwenden Sie Ihre Windows Benutzerkennung und Passwort! Das bisherige Passwort der Anmeldesysteme ist nicht mehr gültig.</span><!--END DESCRIPTION-->
|
||
<br>
|
||
<br>
|
||
<!--DESCRIPTION--><span><span><font color=red><b><u>Studenten der Hochschule Kehl:</u></b></font><br>
|
||
Verwenden Sie - wie bisher - weiterhin ihr übliches Passwort.</span><!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
|
||
<!--CONTENT-->
|
||
<div class='content'>
|
||
<!--USERNAME--><input name='uid' class='input username' value='Benutzername' onfocus=\"this.value=''\" type='text'><!--END USERNAME-->
|
||
<!--PASSWORD--><input name='pwd' class='input password' value='Passwort' onfocus=\"this.value=''\" type='password'><!--END PASSWORD-->
|
||
</div>
|
||
<!--END CONTENT-->
|
||
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Login' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
|
||
</form>
|
||
<!--END LOGIN FORM-->
|
||
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
|
||
</body>
|
||
</html>";
|
||
|
||
break;
|
||
case "anmeld":
|
||
$systemname = $_SESSION['systemname'];
|
||
|
||
$uid = strtolower($_POST[uid]);
|
||
$pwd = $_POST[pwd];
|
||
|
||
$db = dbconnect();
|
||
|
||
$result = $db->query("SELECT hs, LOWER(uid) uid, Pwd FROM stud where uid=\"$uid\"");
|
||
$row = $result->fetch_array();
|
||
|
||
|
||
|
||
// Abfrage, was tun wenn Felder leer sind bzw. Passwort falsch ist
|
||
if ($uid == "" or $_POST['pwd'] == "")
|
||
{
|
||
echo "
|
||
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Anmeldung $systemname</title>
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
</head>
|
||
<body>
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
<!--LOGIN FORM-->
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF']; echo" method=\"POST\" name=\"login\">
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>Fehler</h1><!--END TITLE-->
|
||
<!--DESCRIPTION-->
|
||
<span>
|
||
Es müssen alle Felder ausgefüllt werden
|
||
<br>
|
||
<br>
|
||
</span>
|
||
<!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Zurück' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
</form>
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
</body>
|
||
</html>
|
||
<html>";
|
||
exit;
|
||
}
|
||
|
||
if ($uid != $row[uid]) {
|
||
echo"
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Anmeldung $systemname</title>
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
</head>
|
||
<body>
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
<!--LOGIN FORM-->
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF']; echo" method=\"POST\" name=\"login\">
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>Fehler</h1><!--END TITLE-->
|
||
<!--DESCRIPTION-->
|
||
<span>
|
||
Der Anmeldenamen ist im System nicht vorhanden!<br>
|
||
Wenden Sie sich bitte an <a href=\"mailto:$helpmail?subject=Keine Anmeldekennung\">$ansprechpart</a>!</b></p>
|
||
<br>
|
||
<br>
|
||
</span>
|
||
<!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Zurück' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
</form>
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
</body>
|
||
</html>
|
||
<html>";
|
||
exit;
|
||
}
|
||
|
||
if($row['hs'] == 'L' AND $row_ldapcon['wert1'] == 'Y'){
|
||
$ds=@ldap_connect("141.10.144.37", "389");
|
||
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||
|
||
################################
|
||
## Benutzerinfos aus LDAP setzen
|
||
################################
|
||
# bind wird benoetigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
|
||
|
||
$r=@ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
|
||
$sr=@ldap_search($ds, $_ldap_dn, "samaccountname=$uid");
|
||
$info = @ldap_get_entries($ds, $sr);
|
||
$anzahl = ldap_count_entries($ds,$sr);
|
||
$vorname = $info[0]['givenname'][0];
|
||
$nachname = $info[0]['sn'][0];
|
||
$mail = $info[0]['mail'][0];
|
||
$first = ldap_first_entry($ds,$sr);
|
||
$distinguishedName = ldap_get_dn($ds,$first);
|
||
################################
|
||
|
||
|
||
# Bind geht im hsnet nur über den DN "CN=Schwarz\, Alexander, OU=Externe Benutzer, ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"
|
||
##!!!!! IM STUDNET MIT DEM DISTINGUISHEDNAME !!!!!!#################
|
||
$password=utf8_decode($pwd);
|
||
if ($bind = ldap_bind($ds, $distinguishedName, $password) AND $anzahl > 0){
|
||
#echo "Bind geht:<br>$distinguishedName | $pwd<br>$anzahl<br>";
|
||
$db = dbconnect();
|
||
$sql = $db->query ("UPDATE stud
|
||
SET vorname='$vorname'
|
||
,nachname='$nachname'
|
||
,mail='$mail'
|
||
WHERE uid='$uid'");
|
||
$login = "0";
|
||
}else{
|
||
#echo "Bind geht nicht:<br>$distinguishedName<br>$anzahl";
|
||
$login = "1";
|
||
}
|
||
}else{
|
||
# Kehler Login
|
||
$passwd = md5($_POST['pwd']);
|
||
$login = "0";
|
||
if ($passwd != $row['Pwd']){
|
||
$login = "1";
|
||
$pw_failure= "1";
|
||
}
|
||
}
|
||
|
||
if ($row['hs'] == 'K'){
|
||
# Kehler Studenten haben ihr Passwort in Tabelle stud. Daher d<>rfen Sie es selbst zur<75>cksetzen.
|
||
$pw_zusatz ="Sie können sich ein neues Passwort an Ihre<br>Hochschul-Mailadresse schicken lassen:<br><a href=". $_SERVER['PHP_SELF'] . "?action=pass_gen>Neues Passwort setzen</a><br>";
|
||
}
|
||
|
||
|
||
if ($login == 1){
|
||
|
||
// Cokkie hier, falls PW generiert werden soll
|
||
setcookie("uid1","");
|
||
setcookie("uid1","$row[uid]");
|
||
|
||
# F<>r Ludwigsburger Studenten soll das Passwort zur<75>cksetzen und per Mail zuschicken nicht angeboten werden,
|
||
# da die Informationen im LDAP stehen.
|
||
|
||
echo "
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Anmeldung $systemname</title>
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
</head>
|
||
<body>
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
<!--LOGIN FORM-->
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF']; echo" method=\"POST\" name=\"login\">
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>Fehler</h1><!--END TITLE-->
|
||
<!--DESCRIPTION-->
|
||
<span>
|
||
Das eingegebene Passwort ist entweder falsch oder konnte nicht verifiziert werden.<br>
|
||
Wenden Sie sich bitte an <a href=\"mailto:$helpmail?subject=Keine Anmeldekennung\">$ansprechpart</a>!</b></p>
|
||
<br>
|
||
<br>
|
||
$pw_zusatz
|
||
<br>
|
||
</span>
|
||
<!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Zurück' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
</form>
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
</body>
|
||
</html>
|
||
";
|
||
exit;
|
||
}
|
||
|
||
#echo "Login";
|
||
#exit;
|
||
|
||
# wenn Benutzername und Passwort stimmen, dann Weiterleitung
|
||
setcookie("uid1","");
|
||
setcookie("uid1","$row[uid]");
|
||
|
||
|
||
if (file_exists("balancing_ldap.php")) {
|
||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=balancing_ldap.php\">";
|
||
} else {
|
||
if (file_exists("index_frame.htm")) {
|
||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=index_frame.htm\">";
|
||
}else{
|
||
## Bei Veranstaltung und stellenantrag zB. ist es in einem weiteren Unterordner
|
||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=stud/index_frame.htm\">";
|
||
}
|
||
}
|
||
|
||
break;
|
||
case "pass_gen":
|
||
|
||
|
||
$uid1=$_COOKIE["uid1"];
|
||
$systemname = $_SESSION['systemname'];
|
||
$pool = "qwertzupasdfghkyxcvbnm";
|
||
$pool .= "23456789";
|
||
$pool .= "WERTZUPLKJHGFDSAYXCVBNM";
|
||
|
||
srand ((double)microtime()*1000000);
|
||
for($index = 0; $index < 7; $index++)
|
||
{
|
||
$pass_word .= substr($pool,(rand()%(strlen ($pool))), 1);
|
||
}
|
||
|
||
$new_pw_md5=md5($pass_word);
|
||
|
||
$sql = $db->query ("UPDATE stud SET pwd='$new_pw_md5' WHERE uid='$uid1'");
|
||
|
||
// Nachricht über Passwortrücksetzung: Hinzugefügt 19.09.2006
|
||
$result2 = $db->query("SELECT uid, vorname, nachname, mail FROM stud where uid='$uid1'");
|
||
$row2 = $result2->fetch_array();
|
||
|
||
$empfaenger = "$row2[mail]";
|
||
$betreff = "Kurssystem: Passwort zurückgesetzt";
|
||
$text = "
|
||
<html>
|
||
<head>
|
||
<title>Passwort zurückgesetzt</title>
|
||
</head>
|
||
<body>
|
||
<font face='Arial' size='2'>
|
||
Guten Tag $row2[vorname] $row2[nachname]!<br><br>
|
||
Sie haben Ihr Passwort im Kurssystem zurückgesetzt!<br>
|
||
Nachfolgend finden Sie Ihre neuen 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>$row2[uid]</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>$pass_word</b>
|
||
</font>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<br>
|
||
Bitte beachten Sie, dass zwischen Groß- und<br>
|
||
Kleinschreibung unterschieden wird.
|
||
<p>
|
||
Ändern Sie bitte zu Ihrer eigenen Sicherheit das<br>
|
||
Passwort nach dem ersten Login.
|
||
<p>
|
||
Link zum Anmeldesystem: <a href=\"https://www.fh-ludwigsburg.de/kurs\">Kurssystem</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\r\n";
|
||
$headers .= "Content-type: text/html; charset=utf-8\r\n";
|
||
|
||
$return = @mail($empfaenger, $betreff, $text, $headers);
|
||
|
||
// ENDE Nachricht über Passwortrücksetzung
|
||
|
||
if($return){
|
||
echo "
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Bestätigung</title>
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
</head>
|
||
<body>
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
<!--LOGIN FORM-->
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF']; echo" method=\"POST\" name=\"login\">
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>Bestätigung</h1><!--END TITLE-->
|
||
<!--DESCRIPTION-->
|
||
<span>
|
||
Ihr neues Passwort wurde an $row2[mail] geschickt.
|
||
<br>
|
||
<br>
|
||
</span>
|
||
<!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Zurück' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
</form>
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
</body>
|
||
<html>";
|
||
exit;
|
||
}else{
|
||
echo "
|
||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||
<html>
|
||
<head>
|
||
<!--META-->
|
||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||
<title>Versandfehler</title>
|
||
<!--STYLESHEETS-->
|
||
<link href='login.css' rel='stylesheet' type='text/css'>
|
||
<link href='../login.css' rel='stylesheet' type='text/css'>
|
||
</head>
|
||
<body>
|
||
<!--WRAPPER-->
|
||
<div id='wrapper'>
|
||
<!--LOGIN FORM-->
|
||
<form name='login-form' class='login-form' action=";echo $_SERVER['PHP_SELF']; echo" method=\"POST\" name=\"login\">
|
||
<!--HEADER-->
|
||
<div class='header'>
|
||
<!--TITLE--><h1>Versandfehler</h1><!--END TITLE-->
|
||
<!--DESCRIPTION-->
|
||
<span>
|
||
Das Passwort konnte nicht verschickt werden!<br>
|
||
Wenden Sie sich bitte an <a href=\"mailto:$helpmail?subject=Keine Anmeldekennung\">$ansprechpart</a>!</b></p>
|
||
<br>
|
||
<br>
|
||
</span>
|
||
<!--END DESCRIPTION-->
|
||
</div>
|
||
<!--END HEADER-->
|
||
<!--FOOTER-->
|
||
<div class='footer'>
|
||
<!--LOGIN BUTTON--><input name='submit' value='Zurück' class='button' type='submit'><!--END LOGIN BUTTON-->
|
||
</div>
|
||
<!--END FOOTER-->
|
||
</form>
|
||
</div>
|
||
<!--END WRAPPER-->
|
||
</body>
|
||
<html>";
|
||
exit;
|
||
}
|
||
|
||
} // Ende IF von Action Abfrage
|
||
?>
|