]> andersk Git - sql-web.git/blob - lib/joe/joe.lib.php
dffb0df346513b609b716774770accef27126833
[sql-web.git] / lib / joe / joe.lib.php
1 <?php
2 /*
3     (c) 2005 Joe Presbrey
4     joepresbrey@gmail.com
5 */
6
7 function isPost() {
8   if($_SERVER['REQUEST_METHOD'] == 'POST') {
9     return true;
10   } else {
11     return false;
12   }
13 }
14 function isFormPost() { return isPost(); }
15
16 function isSess($id) {
17   return isset($_SESSION[$id]);
18 }
19
20 function sess($id,$val=null) {
21   if (is_null($val)) {
22     return (isSess($id)?$_SESSION[$id]:null);
23   } elseif (empty($val)) {
24     unset($_SESSION[$id]);
25   } else {
26     $prev = sess($id);
27     $_SESSION[$id] = $val;
28     return $prev;
29   }
30 }
31
32 function stopSess() {
33   $sid[] = session_id();
34   @session_destroy();
35   session_start();
36   $sid[] = session_id();
37   session_regenerate_id();
38   $sid[] = session_id();
39   session_write_close();
40   @session_destroy();
41
42   foreach($sid as $id) {
43     @unlink(session_save_path().'/sess_'.$id);
44   }
45 }
46
47 function sessTime($query=null) {
48   global $timingc;
49   global $timings;
50
51   if(!isset($timings)) {
52     $timings = array();
53   }
54
55   if (!isset($timingc) || empty($timingc)) {
56         $timingc = 1;
57   } elseif (!is_null($query)) {
58     $current = $timingc;
59         $timingc = ++$current;
60   }
61   $key = $timingc;
62
63   if (is_null($query)) {
64     $timings[$key]['time'] = microtime(true)-$timings[$key]['time'];
65         if (mysql_error())
66                 $timings[$key]['error'] = mysql_error();
67     return true;
68   } else {
69     $timings[$key] = array();
70     $timings[$key]['time'] = microtime(true);
71     $timings[$key]['query'] = $query;
72     return false;
73   }
74 }
75
76 function fetchRows($rs, $key = null) {
77     if (!$rs) return array();
78     $kn = is_null($key);
79     $n = mysql_num_rows($rs);
80     if ($n > 0) {
81         $arr = array();
82         if (is_null($key)) {
83             while ($r = mysql_fetch_assoc($rs)) {
84                 $arr[] = $r;
85             }
86         } elseif (is_numeric($key)) {
87             while ($r = mysql_fetch_row($rs)) {
88                 $arr[$r[$key]] = $r;
89             }
90         } else {
91             while ($r = mysql_fetch_assoc($rs)) {
92                 $arr[$r[$key]] = $r;
93             }
94         }
95         mysql_free_result($rs);
96         return $arr;
97     } else {
98         mysql_free_result($rs);
99         return array();
100     }
101 }
102
103 function printErrors($err) { printList('err', $err); }
104 function printMsgs($err) { printList('msg', $err); }
105
106 function printList($class,$err) {
107     if (is_array($err) && count($err)) {
108         echo '<div class="',$class,'">',(count($err)>1?'<ul>':'');
109         foreach($err as $e) {
110                         if (count($err)>1) {
111                                 echo '<li><p>',$e,'</p></li>';
112                         } else {
113                                 echo '<p>',$e,'</p>';
114                         }
115         }
116         echo (count($err)>1?'</ul>':''),'</div>';
117     }
118 }
119
120 function buildSQLSet($fields, $values=null) {
121     $ex = array('NOW()','NULL');
122     $sql = 'SET';
123     $c = 0;
124     if (!is_null($values)) {
125         foreach($fields as $field) {
126             if ($c++) $sql .= ',';
127             $sql .= " `$field`='".mysql_escape_string(array_shift($values))."'";
128         }
129     } else {
130         foreach($fields as $field=>$value) {
131             if ($c++) $sql .= ',';
132             if (in_array($value,$ex)) {
133                 $sql .= " `$field`= $value";
134             } else {
135                 $sql .= " `$field`='".mysql_escape_string($value)."'";
136             }
137         }
138     }
139     return $sql;
140 }
141
142 function buildSQLInsert($array, $table=null) {
143     $ex = array('NOW()','NULL');
144     $sql = '(';
145     $c = 0;
146     foreach($array as $field=>$value) {
147         if ($c++) $sql .= ',';
148         $sql .= " `$field` ";
149     }
150     $sql .= ') VALUES (';
151     $c = 0;
152        foreach($array as $field=>$value) {
153         $v = mysql_escape_string($value);
154         if ($c++) $sql .= ',';
155         if (in_array($v, $ex))
156             $sql .= " $v ";
157         else
158             $sql .= " '$v' ";
159     }
160     $sql .= ')';
161     return (is_null($table)?$sql:('INSERT INTO `'.$table.'` '.$table));
162 }
163
164 function build_str($query_array) {
165     $query_string = array();
166     foreach ($query_array as $k => $v) {
167         $new = $k;
168         if (strlen($v))
169             $new .= '='.$v;
170         $query_string[] = $new;
171     }
172     return join('&', $query_string);
173 }
174
175 function newQS($key, $val=null) {
176     return newQSA(array($key=>$val));
177 }
178
179 function newQSA($array=array()) {
180     parse_str($_SERVER['QUERY_STRING'], $arr);
181     $s = count($arr);
182     foreach($array as $key=>$val) {
183         $arr[$key] = $val;
184         if (is_null($val))
185             unset($arr[$key]);
186     }
187     return (count($arr)||$s)?'?'.build_str($arr):'';
188 }
189
190 function formQSA($array=array()) {
191     if (!count($array)) $array = $_SERVER['QUERY_STRING'];
192     parse_str($array, $arr);
193     $text = '';
194     foreach($arr as $key=>$val) {
195         $text .= sprintf('<input type="hidden" name="%s" value="%s">', $key, $val);
196     }
197     return $text;
198 }
199
200 ?>
This page took 0.04598 seconds and 3 git commands to generate.