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