]> andersk Git - sql-web.git/blame - lib/joe.lib.php
bug: dropping database outside the interface stops interface for all users
[sql-web.git] / lib / joe.lib.php
CommitLineData
997305cf
JP
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
13function isPost() {
14 if($_SERVER['REQUEST_METHOD'] == 'POST') {
15 return true;
16 } else {
17 return false;
18 }
19}
20function isFormPost() { return isPost(); }
21
22function isSess($id) {
23 return isset($_SESSION[$id]);
24}
25
26function 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
38function 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
53function 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'];
e346f2b3
JP
71 if (mysql_error())
72 $timings[$key]['error'] = mysql_error();
997305cf
JP
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
82function 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
88b7d384
JP
110function printErrors($err) { printList('err', $err); }
111function printMsgs($err) { printList('msg', $err); }
112
e47be57b
JP
113function 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 }
997305cf 122 }
e47be57b 123 echo (count($err)>1?'</ul>':''),'</div>';
997305cf
JP
124 }
125}
126
127function 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
149function 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
171function 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
182function 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
191function 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
202function 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.066504 seconds and 5 git commands to generate.