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