00001 <?php
00002
00003 # header ('Content-type: text/plain');
00004 header ('Content-type: text/xml');
00005
00006 include "tag.php";
00007 include "def.php";
00008 include "db.php";
00009 include "check.php";
00010
00011 define ("DELETE", 1);
00012 define ("UNDELETE", 0);
00013
00014
00015 function addCam ($mac, $id, $ip1, $ip2, $place)
00016 {
00017 $mac_orig = $mac;
00018
00019 if ( (checkMac ($mac) == -1) || (! $mac))
00020 {
00021 return error ("Error: Wrong MAC='" . $mac . "' ", "cameras");
00022 }
00023
00024 $mac = checkMac ($mac);
00025
00026 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' " ;
00027
00028 $query_resp = @mysql_query ($query, $id);
00029 $num = @mysql_numrows ($query_resp);
00030
00031 if ($num > 0)
00032 {
00033 $err = '';
00034 if (mysql_result ($query_resp, $i, "del") == 1) $err = ' and marked as deleted';
00035 return error ("Error: Camera with MAC='" . $mac_orig ."' already registered" . $err . "!", "cameras");
00036 }
00037
00038 $query = "INSERT INTO cameras VALUES ('" . $mac . "', '" . $ip1 . "', '" . $ip2 . "', '" . $place . "', '0')";
00039 $query_resp = @mysql_query ($query, $id);
00040
00041 $ret = formClosedTag ("OK", "add", "") . "\n";
00042 $ret = formClosedTag ($ret, "cameras", "\n") . "\n";
00043
00044 return $ret;
00045
00046 }
00047
00048 function editCam ($mac, $id, $ip1, $ip2, $place)
00049 {
00050 $mac_orig = $mac;
00051
00052
00053 if ( (checkMac ($mac) == -1) || (! $mac))
00054 {
00055 return error ("Error: Wrong MAC='" . $mac . "' ", "cameras");
00056 }
00057
00058 $mac = checkMac ($mac);
00059
00060 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0" ;
00061
00062 $query_resp = @mysql_query ($query, $id);
00063 $num = @mysql_numrows ($query_resp);
00064
00065 if ($num < 1)
00066 {
00067 return error ("Error: Camera with MAC='" . $mac_orig ."' is not found!", "cameras");
00068 }
00069
00070 $flag = 0;
00071 $query = "UPDATE cameras SET ";
00072 if ($ip1)
00073 {
00074 $flag = 1;
00075 $query .= "ip1='" . $ip1 . "' ";
00076 }
00077 if ($ip2)
00078 {
00079 if ($flag == 1)
00080 {
00081 $query .= ", ";
00082 }
00083 $flag = 1;
00084 $query .= "ip2='" . $ip2 . "' ";
00085 }
00086 if ($place)
00087 {
00088 if ($flag == 1)
00089 {
00090 $query .= ", ";
00091 }
00092 $flag = 1;
00093 $query .= "place='" . $place . "' ";
00094 }
00095
00096 $query .= " WHERE mac='" . $mac . "' AND del=0";
00097
00098 if ($flag == 1)
00099 {
00100 $query_resp = @mysql_query ($query, $id);
00101 }
00102
00103 $ret = formClosedTag ("OK", "edit", "") . "\n";
00104 $ret = formClosedTag ($ret, "cameras", "\n") . "\n";
00105
00106 return $ret;
00107 }
00108
00109
00110 function delUndelCam ($mac, $id, $action)
00111 {
00112 $mac_orig = $mac;
00113
00114 if (($mac = checkMac ($mac)) == -1)
00115 {
00116 return error ("Error: Wrong MAC=" . $mac, "cameras");
00117 }
00118
00119 if (($action != DELETE) && ($action != UNDELETE))
00120 {
00121 return error ("Error: Wrong action=" . $action, "cameras");
00122 }
00123
00124 $action_rev = $action == UNDELETE ? DELETE : UNDELETE;
00125 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=" . $action_rev;
00126
00127 $query_resp = @mysql_query ($query, $id);
00128 $num = @mysql_numrows ($query_resp);
00129
00130 if ($num < 1)
00131 {
00132 $err = 'C';
00133 if ($action == UNDELETE) $err = 'Deleted c';
00134 return error ("Error: " . $err . "amera with MAC='$mac_orig' is not found", "cameras");
00135 }
00136
00137 $query = "UPDATE cameras SET del=" . $action . " WHERE mac='" . $mac . "' AND del=" . $action_rev;
00138 $query_resp = @mysql_query ($query, $id);
00139
00140 $ret = formClosedTag ("OK", "undel", "") . "\n";
00141 if ($action == DELETE)
00142 {
00143 $ret = formClosedTag ("OK", "del", "") . "\n";
00144 }
00145
00146 $ret = formClosedTag ($ret, "cameras", "\n");
00147
00148 return $ret;
00149 }
00150
00151
00152
00153 function listCams ($mac, $id)
00154 {
00155 $mac_orig = $mac;
00156
00157 if ($mac)
00158 {
00159 if (($mac = checkMac ($mac)) == -1)
00160 {
00161 return error ("Error: Wrong MAC=" . $mac, "cameras");
00162 }
00163 }
00164
00165 $mac_enabled = 0;
00166 if ($mac)
00167 {
00168 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0";
00169 $mac_enabled = 1;
00170 }
00171 else
00172 {
00173 $query = "SELECT * FROM cameras WHERE del=0";
00174 }
00175
00176 $query_resp = mysql_query ($query, $id);
00177 $num = mysql_numrows ($query_resp);
00178
00179 if ($num < 1)
00180 {
00181 if ( $mac_enabled == 1)
00182 {
00183 return error ("Error: Camera with MAC='" . $mac_orig . "' is not found", "cameras");
00184 }
00185 return error ("Error: Database is empty.", "cameras");
00186 }
00187
00188 $i = 0;
00189 $ret = '';
00190 while ($i < $num)
00191 {
00192 $mac_ = getDottedMac (mysql_result ($query_resp, $i, "mac"));
00193 $ret_ = '';
00194 $ret_ = $ret_ . formClosedTag ($mac_, "mac", "") . "\n";
00195 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip1"), "ip1", "") . "\n";
00196 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip2"), "ip2", "") . "\n";
00197 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "place"), "place", "") . "\n";
00198 $ret_ = formClosedTag ($ret_, "camera", "\n") . "\n";
00199 $i++;
00200 $ret .= $ret_;
00201 }
00202 $ret = formClosedTag ($ret, "cameras", "\n");
00203
00204 return $ret;
00205 }
00206
00207
00208
00209
00210
00211 $debug = fopen("/tmp/dvr.log", "a");
00212 fwrite($debug, "camera.php: \n");
00213 fwrite($debug, $_SERVER['QUERY_STRING']."\n");
00214 fclose($debug);
00215
00216 switch ($_GET[cmd])
00217 {
00218 case "list":
00219 case "del":
00220 case "undel":
00221 case "add":
00222 case "edit":
00223 break;
00224 default :
00225 echo error ("Error: Unknown command '" . $_GET[cmd] . "' ", "cameras");
00226 return 0;
00227 break;
00228 }
00229
00230 $id = connectToServer (server, user, password);
00231 if (!$id)
00232 {
00233 echo error ("Error: " . mysql_error(), "cameras");
00234 return 0;
00235 }
00236
00237 if (!openDB (database, $id))
00238 {
00239 echo error ("Error: " . mysql_error($id), "cameras");
00240 closeDB ($id);
00241 return 0;
00242 }
00243
00244
00245 switch ($_GET[cmd])
00246 {
00247 case "list":
00248 $ret = listCams ($_GET[mac], $id);
00249 break;
00250 case "add":
00251 $ret = addCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00252 break;
00253 case "edit":
00254 $ret = editCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00255 break;
00256 case "del":
00257 $ret = delUndelCam ($_GET[mac], $id, DELETE);
00258 break;
00259 case "undel":
00260 $ret = delUndelCam ($_GET[mac], $id, UNDELETE);
00261 break;
00262 default :
00263 $ret = error ("Error: Unknown command \"$_GET[cmd]\"", "cameras");
00264 break;
00265 }
00266
00267 closeDB ($id);
00268
00269 echo $ret
00270 ?>