first commit
This commit is contained in:
487
index_ldap.php
Executable file
487
index_ldap.php
Executable file
@ -0,0 +1,487 @@
|
||||
<?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' 'http://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' 'http://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' 'http://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' 'http://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=\"http://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' 'http://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' 'http://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
|
||||
?>
|
Reference in New Issue
Block a user