fhiiqm/inc/func_lib.inc.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Fri, 07 Oct 2011 11:37:29 +0200
changeset 14 32203b8f40ee
parent 13 741b35e9ebbe
child 15 1ed6fbdf4237
permissions -rw-r--r--
Rechteverwaltung II, vertrag_flist-Spaltenreihenfolge

<?php

/**
 * @author Bettina Schwarzer,  Fritz-Haber-Institut
 * @copyright 06/2011
 * 
 * 
 */

    function tab_column($colnum=2,$bez,$sort,$dir,$fcol=0,$fanr=0,$filtb="",$start="",$anzds="25")
    {
      /** beliebige Tabellenspalte mit Sortier-/Filtersymbolen und Links generieren
        * Parameter
        * $colnum   SpaltenNr. in SELECT-Statement 
        * $bez      Spaltenbezeichnung
        * $sort     aktuelle SortspaltenNr.
        * $dir      Sortrichtung (ASC/DESC)
        * $fcol     SpaltenNr. Filter (=0, wenn nicht gefiltert werden soll)
        * $fanr     aktuelle FilterspaltenNr.
        * $filtb    Filterbegriff
        * $start    ab Datensatz $start+1
        * $anzds    Anzahl angezeigter Datensaetze
        */
        
        if ($colnum == $sort)
            if ($dir == 'DESC')
            {
                $auf = "auf";
                $ab = "ab_activ";
            }
            else
            {
                $auf = "auf_activ";
                $ab = "ab";
            }
        else
        {
                $auf = "auf";
                $ab = "ab";
        }
        
        if ($bez == "Haus") $tip = "Haus: A, B, C, D, E, F, FAB, HAR, K, L, M, N, P, Q, R, S, T, U"; else $tip = "Filter";
        if ($fcol>0 && $fanr>0) // Filtern nach Spalte moeglich
        {
            if ($fcol == $fanr) $filt = "filter_activ"; else $filt = "filter"; 
            $filt = "&nbsp;&nbsp;<a href='".$_SERVER['PHP_SELF']."?f=$fcol&s=$sort&d=$dir&st=$start&z=$anzds'><img src='/fhiiqm/img/$filt.gif' border='0' width='14' hight='11' alt='$tip' title='$tip'></a>";;
        }
        else
            $filt="";
        if ($filtb>'!') $where = "&f=$fanr&b=$filtb"; else $where="";
        echo "<th>$bez&nbsp;<a href='".$_SERVER['PHP_SELF']."?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>            
                  <a href='".$_SERVER['PHP_SELF']."?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";
    }
    
    function date_obj($jahr,$mon,$tag)
    {
       /** prueft auf valides Datum und erstellt DateTime-Objekt, wenn o.k.
        *  Voraussetzung: Klasse 'DateTime_s' ist included
        */  
        include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
        if ($jahr && $mon && $tag)
        {
            $dat = $jahr."-".$mon."-".$tag;
            // Datum valid?
            if (!$dat = new DateTime_s($dat)) $dat = null;
        }    
        else
            $dat = null;
        return $dat;
        
    }
    
    function liste_links($start,$zeil,$anz,$liste)
    {
       /** erstellt links zu Seiten einer Liste
         * Parameter
         * $start   Beginn bei DS $start+1 (1.DS -> $start=0)
         * $zeil    Anzahl Zeilen pro Seite
         * $anz     Anzahl DS gesamt
         * $liste   weitere Inhalte fuer $_GET-Array
         */
        $page = 1;
        while (($page-1)*$zeil < $anz)
        {
            $be = ($page-1)*$zeil+1;
            if (($page-1)*$zeil+$zeil < $anz) $en = ($page-1)*$zeil+$zeil; else $en = $anz;
            $st = ($page-1)*$zeil;
            if ($start == $be-1)
                echo "$be - $en";
            else
                echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?st=$st$liste\"  class=\"sc\">$be - $en</a>";
            if (($page-1)*$zeil+$zeil < $anz) echo "<span class=\"sc\"> | </span>";
            $page++;
        }

    }
    
    function login($target, $headl="")
    {
       /** zeigt Login-Form, prueft userid und passwort, leitet zu gewuenschter Seite weiter
        *   Parameter
        *   $target     Zieladresse
        *   headl       Ueberschrift Loginform
        */
          
       session_start();
       if ($_SESSION["userid"]) 
        	{
        	header("Location: $target");
        	exit;
        	}
        
        
        
        $login  = $_POST["eintragen"];
        $log    = $_POST["log"];
        
        if ($login)
        {
        	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
        	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
            
            $stmt = $dbc -> stmtinit();
            if (is_object($stmt))
            {
                $stmt -> prepare("SELECT userid, pwd FROM userweb WHERE userid = ?");
                $stmt -> bind_param('s',$log["user"]);
                $result = $stmt -> execute();
                // $stmt -> store_result();    // wegen weiterer query dies oder $stmt -> free_result();
            }
            if ($result)
            {
                $stmt->bind_result($userid, $pwdmd5);
                if ($stmt->fetch()) 
                {
                    if ($pwdmd5 == md5($log["pass"]) || $log["pass"]==null)
                    {
                        $_SESSION = array();
                        $_SESSION["userid"] = $userid;

                        // Recht
                        $stmt -> free_result(); // wegen weiterer query
                        $sql = "SELECT recht_ID FROM user_recht WHERE userid = '$userid'";
                        if ($res = $dbc -> queryObjectArray($sql))
                        {
                            $arecht = array();
                            foreach ($res as $row)
                            {    $arecht[] = $row->recht_ID;}
                            if (count($arecht)>0)
                                $_SESSION["recht"] = $arecht;
                            else 
                                $_SESSION["recht"] = null;
                        }
                        else 
                        {
                            $_SESSION["recht"] = null;
//                            echo "error_recht: " . $dbc->error . "<br />";
                        }    
//                        print_r($arecht);
                		header("Location: $target");
                		exit;
                    }
                    else
                        $err2 = "<br /><span class=\"red\">Passwort ist nicht korrekt</span>\n";
                }
                else
                    $err1 = "<br /><span class=\"red\">Username ist nicht korrekt</span>\n";
       
            }
        }
        if ($err1 || $err2 || !$log)
        {
            ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
            
            <head>
            	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
               	<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" /> 
            
            	<title>Login fhiiqm</title>
            </head>
            
            <body onload="document.flogin.user.focus();">
            <!--    <div class="float-r"><img src="img/document_mark_as_final.png" border="0" alt="Vertr&auml;ge" title="Vertr&auml;ge"/></div> -->
            
            <?php
                include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/form/login_form.inc.php");
            echo "</body>
            </html>\n";
        }    
    }
       
?>