fhiiqm/inc/func_lib.inc.php
author Bettina Schwarzer
Fri, 20 Dec 2013 15:19:32 +0100
changeset 41 9c668cd391fa
parent 40 6f4b105daa24
child 43 70cea8f0e807
permissions -rw-r--r--
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     1
<?php
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     2
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     3
/**
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     4
 * @author Bettina Schwarzer,  Fritz-Haber-Institut
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     5
 * @copyright 06/2011
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     6
 * 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     7
 * 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     8
 */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
     9
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    10
    function tab_column($colnum=2,$bez,$sort,$dir,$fcol=0,$fanr=0,$filtb="",$start="",$anzds="25",$id="",$g=0,$tab="",$adr="")
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    11
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    12
      /** beliebige Tabellenspalte mit Sortier-/Filtersymbolen und Links generieren
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    13
        * Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    14
        * $colnum   SpaltenNr. in SELECT-Statement 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    15
        * $bez      Spaltenbezeichnung
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    16
        * $sort     aktuelle SortspaltenNr.
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    17
        * $dir      Sortrichtung (ASC/DESC)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    18
        * $fcol     SpaltenNr. Filter (=0, wenn nicht gefiltert werden soll)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    19
        * $fanr     aktuelle FilterspaltenNr.
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    20
        * $filtb    Filterbegriff
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    21
        * $start    ab Datensatz $start+1
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    22
        * $anzds    Anzahl angezeigter Datensaetze
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    23
        * $id       fuer spezielle ID als zusaetzl. Filter (Laser-Log)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    24
        * $g        Gesamtansicht (rag-gefahr-massnahmen-vorsorge)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    25
        * [$tab     fuer tab-basierte Seite
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    26
        * $adr      wohin gehen (Teilseite)]
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    27
        */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    28
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    29
        if ($colnum == $sort)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    30
            if ($dir == 'DESC')
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    31
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    32
                $auf = "auf";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    33
                $ab = "ab_activ";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    34
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    35
            else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    36
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    37
                $auf = "auf_activ";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    38
                $ab = "ab";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    39
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    40
        else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    41
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    42
                $auf = "auf";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    43
                $ab = "ab";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    44
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    45
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    46
        if ($bez == "Haus") $tip = "Haus: A, B, BES, C, D, E, F, FAB, HAR, K, L, M, N, P, Q, R, S, T, U"; else $tip = "Filter";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    47
        if ($tab > "!")
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    48
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    49
            $addr = $adr;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    50
            $ank = $tab; 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    51
        } 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    52
        else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    53
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    54
            $addr = $_SERVER['PHP_SELF'];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    55
            $ank = "";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    56
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    57
        if ($fcol>0 && $fanr>0) // Filtern nach Spalte moeglich
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    58
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    59
            if ($fcol == $fanr) $filt = "filter_activ"; else $filt = "filter"; 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    60
            $filt = "&nbsp;<a href='".$addr."$ank?f=$fcol&s=$sort&d=$dir&st=$start&z=$anzds&i=$id&g=$g'><img src='/fhiiqm/img/$filt.gif' border='0' width='14' hight='11' alt='$tip' title='$tip'></a>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    61
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    62
        else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    63
            $filt="";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    64
        if ($filtb>'!') $where = "&f=$fanr&b=$filtb&i=$id&g=$g"; else $where="&i=$id&g=$g";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    65
        echo "<th>$bez&nbsp;<a href='".$addr."$ank?s=$colnum$where&st=$start&z=$anzds'><img src='/fhiiqm/img/$auf.gif' border='0' width='11' hight='11' alt='sort aufsteigend' title='sort aufsteigend'></a>            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    66
                  <a href='".$addr."$ank?s=$colnum&d=DESC$where&st=$start&z=$anzds'><img src='/fhiiqm/img/$ab.gif' border='0' width='11' hight='11' alt='sort absteigend' title='sort absteigend'></a>$filt</th>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    67
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    68
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    69
    function date_obj($jahr,$mon,$tag)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    70
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    71
       /** prueft auf valides Datum und erstellt DateTime-Objekt, wenn o.k.
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    72
        *  Voraussetzung: Klasse 'DateTime_s' ist included
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    73
        */  
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    74
        include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    75
        if ($jahr && $mon && $tag)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    76
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    77
            $dat = $jahr."-".$mon."-".$tag;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    78
            // Datum valid?
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    79
            if (!$dat = new DateTime_s($dat)) $dat = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    80
        }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    81
        else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    82
            $dat = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    83
        return $dat;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    84
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    85
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    86
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    87
    function liste_links($start,$zeil,$anz,$liste)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    88
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    89
       /** erstellt links zu Seiten einer Liste
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    90
         * Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    91
         * $start   Beginn bei DS $start+1 (1.DS -> $start=0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    92
         * $zeil    Anzahl Zeilen pro Seite
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    93
         * $anz     Anzahl DS gesamt
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    94
         * $liste   weitere Inhalte fuer $_GET-Array
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    95
         */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    96
        $page = 1;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    97
        while (($page-1)*$zeil < $anz)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    98
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
    99
            $be = ($page-1)*$zeil+1;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   100
            if (($page-1)*$zeil+$zeil < $anz) $en = ($page-1)*$zeil+$zeil; else $en = $anz;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   101
            $st = ($page-1)*$zeil;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   102
            if ($start == $be-1)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   103
                echo "$be - $en";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   104
            else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   105
                echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?st=$st$liste\"  class=\"sc\">$be - $en</a>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   106
            if (($page-1)*$zeil+$zeil < $anz) echo "<span class=\"sc\"> | </span>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   107
            $page++;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   108
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   109
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   110
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   111
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   112
    function login_db($target, $headl="")
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   113
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   114
       /** zeigt Login-Form, prueft userid und passwort, leitet zu gewuenschter Seite weiter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   115
        *   Authentifizierung gegen die Datenbank
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   116
        *   Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   117
        *   $target     Zieladresse
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   118
        *   $headl      Ueberschrift Loginform
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   119
        */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   120
          
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   121
       session_start();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   122
       if ($_SESSION["userid"]) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   123
        	{
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   124
        	header("Location: $target");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   125
        	exit;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   126
        	}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   127
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   128
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   129
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   130
        $login  = $_POST["login"];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   131
        $log    = $_POST["log"];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   132
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   133
        if ($login)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   134
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   135
        	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   136
        	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   137
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   138
            $stmt = $dbc -> stmtinit();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   139
            if (is_object($stmt))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   140
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   141
                $stmt -> prepare("SELECT userid, pwd FROM userweb WHERE userid = ?");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   142
                $stmt -> bind_param('s',$log["user"]);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   143
                $result = $stmt -> execute();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   144
                // $stmt -> store_result();    // wegen weiterer query dies oder $stmt -> free_result();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   145
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   146
            if ($result)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   147
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   148
                if ($log["pass"] <= '') $log["pass"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   149
                $stmt->bind_result($userid, $pwdmd5);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   150
                if ($stmt->fetch()) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   151
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   152
//                    if ($pwdmd5 == md5($log["pass"]) || $log["pass"]==null)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   153
                    if ($pwdmd5 === md5($log["pass"]) || ($pwdmd5 === null && $log["pass"] === null))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   154
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   155
                        $_SESSION = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   156
                        $_SESSION["userid"] = $userid;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   157
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   158
                        // Recht
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   159
                        $stmt -> free_result(); // wegen weiterer query
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   160
                        $sql = "SELECT recht_ID FROM user_recht WHERE userid = '$userid'";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   161
                        if ($res = $dbc -> queryObjectArray($sql))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   162
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   163
                            $arecht = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   164
                            foreach ($res as $row)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   165
                            {    $arecht[] = $row->recht_ID;}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   166
                            if (count($arecht)>0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   167
                                $_SESSION["recht"] = $arecht;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   168
                            else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   169
                                $_SESSION["recht"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   170
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   171
                        else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   172
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   173
                            $_SESSION["recht"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   174
//                            echo "error_recht: " . $dbc->error . "<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   175
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   176
//                        print_r($arecht);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   177
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   178
                        // Recht Produkt-Gruppe
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   179
                        $sql = "SELECT prod_group_ID FROM user_prodgroup WHERE userid = '$userid'";   
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   180
                        if ($re = $dbc -> queryObjectArray($sql))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   181
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   182
                            $pgrecht = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   183
                            foreach ($re as $row)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   184
                            {    $pgrecht[] = $row->prod_group_ID;}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   185
                            if (count($pgrecht)>0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   186
                                $_SESSION["prodg"] = $pgrecht;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   187
                            else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   188
                                $_SESSION["prodg"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   189
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   190
                        else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   191
                            $_SESSION["prodg"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   192
                		header("Location: $target");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   193
                		exit;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   194
                    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   195
                    else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   196
                        $err2 = "<br /><span class=\"red\">Passwort ist nicht korrekt</span>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   197
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   198
                else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   199
                    $err1 = "<br /><span class=\"red\">Username ist nicht korrekt</span>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   200
       
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   201
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   202
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   203
        if ($err1 || $err2 || !$log)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   204
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   205
            ?>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   206
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   207
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   208
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   209
            <head>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   210
            	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   211
               	<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" /> 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   212
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   213
            	<title>Login fhiiqm</title>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   214
            </head>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   215
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   216
            <body onload="document.flogin.user.focus();">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   217
            <!--    <div class="float-r"><img src="img/document_mark_as_final.png" border="0" alt="Vertr&auml;ge" title="Vertr&auml;ge"/></div> -->
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   218
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   219
            <?php
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   220
                include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/form/login_form.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   221
            echo "</body>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   222
            </html>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   223
        }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   224
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   225
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   226
    function login($target, $headl="")
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   227
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   228
       /** zeigt Login-Form, prueft userid und passwort, leitet zu gewuenschter Seite weiter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   229
        *   Authentifizierung gegen LDAP
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   230
        *   Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   231
        *   $target     Zieladresse
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   232
        *   $headl      Ueberschrift Loginform
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   233
        */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   234
          
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   235
       session_start();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   236
       if ($_SESSION["userid"]) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   237
        	{
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   238
        	header("Location: $target");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   239
        	exit;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   240
        	}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   241
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   242
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   243
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   244
        $login  = $_POST["login"];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   245
        $log    = $_POST["log"];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   246
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   247
        if ($login)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   248
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   249
        	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   250
        	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   251
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   252
            $stmt = $dbc -> stmtinit();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   253
            if (is_object($stmt))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   254
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   255
                $stmt -> prepare("SELECT userid FROM userweb WHERE userid = ?");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   256
                $stmt -> bind_param('s',$log["user"]);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   257
                $result = $stmt -> execute();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   258
                // $stmt -> store_result();    // wegen weiterer query dies oder $stmt -> free_result();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   259
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   260
            if ($result)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   261
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   262
                $ldaphost = "ldap.rz-berlin.mpg.de";  // ldap server
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   263
                $ldapport = 389;                 // Die Portnummer ldap server
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   264
                $ldapconn = ldap_connect( $ldaphost, $ldapport ) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   265
                          or die( "Keine Verbindung zu {$ldaphost} möglich" );
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   266
                $stmt->bind_result($userid);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   267
                if ($stmt->fetch()) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   268
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   269
                    $ldaprdn = "uid=" . $log["user"].",ou=people,dc=ppb,dc=rz-berlin,dc=mpg,dc=de";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   270
                    $ldappwd = $log["pass"];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   271
                    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   272
                    ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   273
                    if ($ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappwd))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   274
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   275
                        ldap_close($ldapconn);
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   276
                        if (!isset($_SESSION['user'])) $_SESSION = array();  // zerstoert alle Session-Variablen,wenn keine Anmeldung an apartvw
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   277
                        $_SESSION["userid"] = $userid;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   278
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   279
                        // Recht
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   280
                        $stmt -> free_result(); // wegen weiterer query
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   281
                        $sql = "SELECT recht_ID FROM user_recht WHERE userid = '$userid'";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   282
                        if ($res = $dbc -> queryObjectArray($sql))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   283
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   284
                            $arecht = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   285
                            foreach ($res as $row)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   286
                            {    $arecht[] = $row->recht_ID;}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   287
                            if (count($arecht)>0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   288
                                $_SESSION["recht"] = $arecht;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   289
                            else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   290
                                $_SESSION["recht"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   291
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   292
                        else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   293
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   294
                            $_SESSION["recht"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   295
//                            echo "error_recht: " . $dbc->error . "<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   296
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   297
//                        print_r($arecht);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   298
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   299
                        // Recht Produkt-Gruppe
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   300
                        $sql = "SELECT prod_group_ID FROM user_prodgroup WHERE userid = '$userid'";   
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   301
                        if ($re = $dbc -> queryObjectArray($sql))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   302
                        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   303
                            $pgrecht = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   304
                            foreach ($re as $row)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   305
                            {    $pgrecht[] = $row->prod_group_ID;}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   306
                            if (count($pgrecht)>0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   307
                                $_SESSION["prodg"] = $pgrecht;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   308
                            else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   309
                                $_SESSION["prodg"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   310
                        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   311
                        else 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   312
                            $_SESSION["prodg"] = null;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   313
                		header("Location: $target");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   314
                		exit;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   315
                    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   316
                    else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   317
                        $err2 = "<br /><span class=\"red\">Passwort ist nicht korrekt</span>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   318
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   319
                else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   320
                    $err1 = "<br /><span class=\"red\">Username ist nicht korrekt</span>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   321
       
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   322
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   323
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   324
        if ($err1 || $err2 || !$log)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   325
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   326
            ?>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   327
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   328
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   329
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   330
            <head>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   331
            	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   332
               	<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" /> 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   333
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   334
            	<title>Login fhiiqm</title>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   335
            </head>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   336
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   337
            <body onload="document.flogin.user.focus();">
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   338
            <!--    <div class="float-r"><img src="img/document_mark_as_final.png" border="0" alt="Vertr&auml;ge" title="Vertr&auml;ge"/></div> -->
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   339
            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   340
            <?php
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   341
                include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/form/login_form.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   342
            echo "</body>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   343
            </html>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   344
        }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   345
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   346
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   347
    function duplicate_record ($table, $key_name, $key_value, $auto=1) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   348
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   349
       /** dupliziert Datensatz in table
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   350
        *   Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   351
        *   $table      Tabellenname
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   352
        *   $key_name   Name ID-Spalte
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   353
        *   $key_value  Wert ID des DSes, der dupliziert werden soll
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   354
        *   $auto       ID ist Auto-Wert
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   355
        */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   356
         
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   357
    	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   358
        global $dbc; // Verbindung ist schon da? 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   359
    	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   360
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   361
        // erfragen Namen aller Felder in $table
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   362
        $sql = 'SHOW COLUMNS FROM ' . $table . ';';
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   363
        $result = $dbc -> queryObjectArray($sql);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   364
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   365
        // Generieren der INSERT-Abfrage mit allen Feldern ausser ID-Feld
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   366
        $query = 'INSERT INTO ' . $table . ' (SELECT ';
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   367
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   368
        foreach ($result as $row) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   369
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   370
            if ($row->Field == $key_name && $auto) {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   371
            $query .= 'NULL, ';
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   372
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   373
            elseif ($row->Field == $key_name && !$auto) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   374
                {$query .= '"'. $key_value . '_COPY", ';}
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   375
            else {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   376
            $query .= $row->Field . ', ';
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   377
            } // END IF
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   378
        } 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   379
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   380
        $query = substr($query, 0, strlen($query) - 2);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   381
        $query .= ' FROM ' . $table . ' WHERE ' . $key_name . ' = "' . $key_value . '")';
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   382
//        echo "$query<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   383
        $ret = $dbc -> execute($query);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   384
        if ($ret && $auto)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   385
        { 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   386
            // Return new id
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   387
            $new_id = $dbc -> insertId();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   388
            return $new_id;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   389
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   390
        elseif ($ret && !$auto)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   391
            return $key_value . "_COPY";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   392
        else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   393
            return false;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   394
/*
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   395
        return $query;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   396
*/    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   397
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   398
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   399
    function dbformat_wert($wert)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   400
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   401
        /** wandelt Dezimalzahl mit Komma und Tausender-Trennzeichen in Datenbankformat
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   402
         * 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   403
         * Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   404
         * $wert    -   zu konvertierende Zahl
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   405
         */
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   406
         
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   407
        if (isset($wert) && $wert<>0)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   408
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   409
            if (strpos($wert,',') >0) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   410
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   411
                $wert = str_replace(',','.',$wert);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   412
                $aw = explode('.',$wert);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   413
                if (count($aw) > 2) // mit Dezimalpunkt und Tausendertrennzeichen
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   414
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   415
                    for ($i=0; $i<count($aw)-1; $i++)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   416
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   417
                        $dbw .= $aw[$i];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   418
                    }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   419
                    $dbw .= "." .$aw[count($aw)-1];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   420
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   421
                else // kein Dezimalpunkt,nur Kommastellen
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   422
                    $dbw = $wert;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   423
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   424
            else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   425
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   426
                $aw = explode('.',$wert);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   427
                if (count($aw) > 1 && strlen($aw[count($aw)-1]) == 2)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   428
                {   // Dezimalpunkt mit 2 Stellen danach (= .nn)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   429
                    for ($i=0; $i<count($aw)-1; $i++)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   430
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   431
                        $dbw .= $aw[$i];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   432
                    }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   433
                    $dbw .= "." .$aw[count($aw)-1];
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   434
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   435
                else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   436
                    $dbw = str_replace('.','',$wert);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   437
            }    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   438
            return $dbw;            
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   439
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   440
        else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   441
            return 0;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   442
    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   443
    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   444
    function ldap_replace($sn,$gn,$title,$roomnr,$tel,$mail,$dep,$ag)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   445
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   446
        /** ersetzt bestehende Eintraege von LDAP-Objektklassen
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   447
         *  erstellt weiteres Attribut zu Telefon und Arbeitsgruppe, falls erforderlich
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   448
         * 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   449
         * Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   450
         * $sn
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   451
         * $gn      - givenName
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   452
         * $title
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   453
         * $roomnr  - roomNumber
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   454
         * $tel[]   - telephonNumber
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   455
         * $mail
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   456
         * $dep     - departmentNumber
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   457
         * $ag[]    - physicalDeliveryOfficeName
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   458
         * */ 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   459
        include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/conf.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   460
        $ldaphost = "ldap.rz-berlin.mpg.de";  // Ihr ldap servers
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   461
        $ldapport = 389;                 // Die Portnummer ihres ldap servers
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   462
        global $ldapconn;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   463
        global $ldapbd;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   464
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   465
        // Verbindung zu LDAP
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   466
        if (!$ldapconn) $ldapconn = ldap_connect( $ldaphost, $ldapport );
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   467
        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   468
        ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   469
        $ldapbd = @ldap_bind($ldapconn, $ldaprdn, $ldappwd);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   470
//        echo "ldapbd=$ldapbd, ldaprdn=$ldaprdn<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   471
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   472
        if ($ldapbd)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   473
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   474
            $base="ou=people,dc=ppb,dc=rz-berlin,dc=mpg,dc=de";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   475
            $uid = ldap_search_uid($sn,$gn);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   476
            //Parameter abfragen
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   477
            if ($uid)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   478
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   479
                $dn = "uid=".$uid .",ou=people,dc=ppb,dc=rz-berlin,dc=mpg,dc=de";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   480
//                    echo "dn-mod = $dn<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   481
                $su = array("ä","ö","ü","ß","Ä","Ö","Ü");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   482
                $rp = array("ae","oe","ue","ss","Ae","Oe","Ue");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   483
                $gn = str_replace($su,$rp,$gn);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   484
                $sn = str_replace($su,$rp,$sn); 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   485
                $entry["sn"] = $sn;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   486
                $entry["givenName"] = $gn;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   487
                if (isset($title) && $title) $entry["title"] = $title;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   488
                if (isset($roomnr) && $roomnr) $entry["roomNumber"] = $roomnr;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   489
                if (isset($mail) && $mail) $entry["mail"] = $mail;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   490
                if (isset($dep) && $dep) $entry["departmentNumber"] = $dep;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   491
//                    print_r ($entry); echo "ldapconn=$ldapconn: single<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   492
                $result1 = ldap_mod_replace($ldapconn, $dn, $entry);    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   493
                if (!$result1)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   494
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   495
                    printf("LDAP-Fehlernummer replace: %s<br>\n", ldap_errno($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   496
                    printf("LDAP-Fehler replace: %s<br>\n", ldap_error($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   497
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   498
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   499
                if (is_array($tel) && $tel)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   500
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   501
                    $entry2["telephoneNumber"] = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   502
                    $result = ldap_mod_del($ldapconn, $dn, $entry2);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   503
                    if (!$result)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   504
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   505
                        printf("LDAP-Fehlernummer del1: %s<br>\n", ldap_errno($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   506
                        printf("LDAP-Fehler del1: %s<br>\n", ldap_error($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   507
                    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   508
                    foreach ($tel as $telf)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   509
                        if ($telf > "!") $entry2["telephoneNumber"][] = $telf;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   510
                }        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   511
                if (is_array($ag) && $ag)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   512
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   513
                    $entry3["physicalDeliveryOfficeName"] = array();
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   514
                    $result = ldap_mod_del($ldapconn, $dn, $entry3);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   515
                    if (!$result)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   516
                    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   517
                        printf("LDAP-Fehlernummer del2: %s<br>\n", ldap_errno($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   518
                        printf("LDAP-Fehler del2: %s<br>\n", ldap_error($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   519
                    }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   520
                    foreach ($ag as $agr)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   521
                        if ($agr > "!") $entry2["physicalDeliveryOfficeName"][] = $agr;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   522
                }        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   523
//                    print_r ($entry2); echo ": multiple<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   524
                $result2 = ldap_mod_add($ldapconn, $dn, $entry2);    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   525
                if (!$result2)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   526
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   527
                    printf("LDAP-Fehlernummer add: %s<br>\n", ldap_errno($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   528
                    printf("LDAP-Fehler add: %s<br>\n", ldap_error($ldapconn));
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   529
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   530
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   531
                $filter = "(uid=".$uid.")"; 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   532
                $afields = array ("uid","cn","givenName","sn","title","userPassword","mail","departmentNumber","telephoneNumber","roomNumber","physicalDeliveryOfficeName");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   533
                if (!($search=@ldap_search($ldapconn,$base,$filter,$afields))) die("Unable to search ldap server");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   534
                echo "<div align = 'center'>LDAP-Eintrag nach &Auml;nderung 1<br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   535
                $info = ldap_get_entries($ldapconn, $search);   
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   536
        		$bg1 = "#F8F8F8";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   537
        		$bg2 = "#DEDFE1";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   538
        		$bg = "#FFFFFF";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   539
//                    print_r ($info); echo "<br  /><br />";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   540
             
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   541
                echo "<table border='0' cellspacing='2' cellpadding='2'>\n
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   542
                        <tr bgcolor='#68ACBF'><th>sn</th><th>givenName</th><th>cn</th><th>title</th><th>uid</th><th>userPassword</th><th>mail</th>
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   543
                        <th>departmentNumber</th><th>telephoneNumber</th><th>roomNumber</th><th>physicalDeliveryOfficeName</th></tr>\n";  
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   544
                for ($i=0; $i<$info["count"]; $i++) 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   545
                {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   546
           			if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   547
                    echo "<tr bgcolor='" . $bg . "'>";    
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   548
                    echo "<td>". $info[$i]["sn"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   549
                    echo "<td>". $info[$i]["givenname"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   550
                    echo "<td>". $info[$i]["cn"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   551
                    echo "<td>". $info[$i]["title"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   552
                    echo "<td>". $info[$i]["uid"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   553
                    echo "<td>". $info[$i]["userpassword"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   554
                    echo "<td>". $info[$i]["mail"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   555
                    echo "<td>". $info[$i]["departmentnumber"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   556
                    $stel = "";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   557
                    foreach ($info[$i]["telephonenumber"] as $tel)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   558
                       $stel .= $tel . ", ";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   559
                    echo "<td>". substr($stel,strpos($stel,",")+1,strlen(substr($stel,strpos($stel,",")+1))-2) . "</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   560
                    echo "<td>". $info[$i]["roomnumber"][0]."</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   561
                    $sag = "";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   562
                    foreach ($info[$i]["physicaldeliveryofficename"] as $ag)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   563
                        $sag .= $ag . ", ";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   564
                    echo "<td>". substr($sag,strpos($sag,",")+1,strlen(substr($sag,strpos($sag,",")+1))-2) . "</td>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   565
                    echo "</tr>\n"; 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   566
                }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   567
                echo "</table>";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   568
                echo "</div>\n";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   569
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   570
                if (!$result1 || !$result2) return 0; else return 1;
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   571
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   572
            else
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   573
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   574
                echo "Nutzer '".$gn ." " . $sn ."' konnte nicht identifiziert werden.";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   575
                return 0; 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   576
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   577
        }        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   578
    } 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   579
    function ldap_search_uid($sn,$gn)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   580
    {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   581
        /** Suchrt uid des gegebenen Nutzers
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   582
         * 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   583
         * Parameter
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   584
         * $sn
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   585
         * $gn      - givenName
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   586
         * */ 
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   587
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   588
        include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/conf.inc.php");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   589
        $ldaphost = "ldap.rz-berlin.mpg.de";  // Ihr ldap servers
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   590
        $ldapport = 389;                 // Die Portnummer ihres ldap servers
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   591
        
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   592
        // Verbindung zu LDAP
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   593
        if (!$ldapconn) $ldapconn = ldap_connect( $ldaphost, $ldapport );
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   594
        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   595
        ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   596
        if (!$ldapbd) $ldapbd = @ldap_bind($ldapconn, $ldaprdn, $ldappwd);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   597
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   598
        if ($ldapbd)
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   599
        {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   600
            $base="ou=people,dc=ppb,dc=rz-berlin,dc=mpg,dc=de";
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   601
            $su = array("ä","ö","ü","ß","Ä","Ö","Ü");
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   602
            $rp = array("ae","oe","ue","ss","Ae","Oe","Ue");
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   603
            $afields = array ("uid","cn","mail");
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   604
            $gnr = str_replace($su,$rp,$gn);
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   605
            $snr = str_replace($su,$rp,$sn); 
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   606
            $gnu = utf8_encode($gn);
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   607
            $snu = utf8_encode($sn);
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   608
            if (!ldap_count_entries($ldapconn,$search))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   609
            {
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   610
                if ($gn && $sn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   611
                    $filter = "(|(&(sn=$sn*)(givenName=$gn*))(mail=$gn*)(mail=$sn*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   612
                if ($sn && !$gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   613
                    $filter = "(|(&(sn=$sn*)(givenName=$gn*))(mail=$sn*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   614
                if (!$sn && $gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   615
                    $filter = "(|(&(sn=$sn*)(givenName=$gn*))(mail=$gn*))";
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   616
                $search=@ldap_search($ldapconn,$base,$filter,$afields);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   617
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   618
            if (!ldap_count_entries($ldapconn,$search))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   619
            {
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   620
                if ($gn && $sn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   621
                    $filter = "(|(&(sn=$snr*)(givenName=$gnr*))(mail=$gnr*)(mail=$snr*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   622
                if ($sn && !$gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   623
                    $filter = "(|(&(sn=$snr*)(givenName=$gnr*))(mail=$snr*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   624
                if (!$sn && $gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   625
                    $filter = "(|(&(sn=$snr*)(givenName=$gnr*))(mail=$gnr*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   626
                $search=@ldap_search($ldapconn,$base,$filter,$afields);
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   627
            }
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   628
            if (!ldap_count_entries($ldapconn,$search))
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   629
            {
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   630
                if ($gn && $sn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   631
                    $filter = "(|(&(sn=$snu*)(givenName=$gnu*))(mail=$gnu*)(mail=$snu*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   632
                if ($sn && !$gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   633
                    $filter = "(|(&(sn=$snu*)(givenName=$gnu*))(mail=$snu*))";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   634
                if (!$sn && $gn)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   635
                    $filter = "(|(&(sn=$snu*)(givenName=$gnu*))(mail=$gnu*))";
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   636
                $search=@ldap_search($ldapconn,$base,$filter,$afields);
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   637
            }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   638
            if (ldap_count_entries($ldapconn,$search))
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   639
            {
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   640
                $info = ldap_get_entries($ldapconn, $search);
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   641
                for ($i=0; $i<$info["count"]; $i++)
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   642
                { 
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   643
                    $inf[$i][0] = $info[$i]["uid"][0];
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   644
                    $inf[$i][1] = $info[$i]["cn"][0];
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   645
                    $inf[$i][2] = $info[$i]["mail"][0];
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   646
                }    
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   647
            }
41
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   648
//            echo "&nbsp;&nbsp;&nbsp;$filter<br />";
9c668cd391fa + Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents: 40
diff changeset
   649
            return $inf;
40
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   650
        }
6f4b105daa24 +Keytyp Korrekturen, LDAP Authentifizierung
Bettina Schwarzer
parents: 38
diff changeset
   651
    }
1
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   652
?>