Handle logout
[misc/kostenrechnung] / lib / general.php
1 <?php
2
3 function passwd($login,$pass)
4 {
5   return md5(md5($pass).$login);
6 }
7
8 function check_session()
9 {
10   if (!empty($_SESSION['sys']['login']) && !empty($_GET['logout'])) {
11     session_destroy();
12     header('Location: ./?login=true');
13     exit();
14   }
15
16   if (!empty($_POST['login']) && !empty($_POST['passwd'])) {
17     require_once('lib/login.php');
18     if (check_passwd()) {
19       header('Location: ./');
20       exit();
21     }
22   }
23
24   if (empty($_SESSION['sys']['login']) && empty($_GET['login'])) {
25     header('Location: ./?login=true');
26     exit();
27   }
28 }
29
30 function sanitise_filename($file)
31 {
32   return str_replace('./','x',$file);
33 }
34
35 function load_mask($name)
36 {
37   global $mask;
38
39   $name = sanitise_filename($name);
40   $file = $_SESSION['sys']['basedir'] . 'masks/' . $name . '.php';
41
42   if (!file_exists($file))
43     return false;
44
45   include_once($file);
46
47   return true;
48 }
49
50 function connect_db()
51 {
52   $dsn = sprintf('host=%s dbname=%s user=%s password=%s',DBHOST,DBNAME,DBUSER,DBPASS);
53   pg_connect($dsn);
54 }
55
56 function query_db($sql)
57 {
58   $sth = pg_query($sql);
59
60   if ($sth === false) return false;
61
62   $result = array();
63   while ($row = pg_fetch_assoc($sth))
64     $result[] = $row;
65
66   return $result;
67 }
68
69 function load_js($jsfiles, $jscode)
70 {
71   $ret = '';
72   foreach ($jsfiles as $file)
73     $ret .= sprintf('<script type="text/javascript" src="%s"></script>'."\n", $file);
74
75   if (!empty($jscode))
76     $ret .= sprintf('<script type="text/javascript">'."\n%s\n</script>\n", implode("\n",$jscode));
77
78   return $ret;
79 }
80
81 function process()
82 {
83   if (!empty($_GET['login'])) {
84     require_once('lib/login.php');
85     return mask_login();
86   }
87
88   if (!empty($_GET['mask'])) {
89     require_once('lib/mask.php');
90     return mask($_GET['mask']);
91   }
92
93   $masks = array('sys_user','sys_group','sys_mask',
94                  'anbaugeraete','arbeitsarten','personal','materialien','gebiet','geraete',
95                  'kostenstellen','materialverbrauch','einsatz');
96   $ret = '';
97   foreach ($masks as $m)
98     $ret .= sprintf('<a href="index.php?mask=%s">%s</a><br>', $m, $m);
99   
100   return $ret;
101 }
102
103 function debug_log($text)
104 {
105   global $debug_info;
106
107   $debug_info .= '<br>' . $text;
108 }
109
110 function debug_info()
111 {
112   global $jsfiles;
113   global $debug_info;
114
115   if (DEBUG !== true) return '';
116
117   $jsfiles[] = 'lib/debug_joey.js';
118
119   $html = '<div style="background: #DDD; margin: 5px; padding-left: 4px; border: 1px solid #AAA;clear:both;">';
120   $html .= "\n<pre>\n\$_SESSION = " . var_export($_SESSION,true) . "\n";
121   $html .= "\n\$_COOKIE = " . var_export($_COOKIE,true) . "\n</pre>\n";
122   $html .= $debug_info;
123   $html .= '</div>';
124   return $html;
125 }
126
127 ?>