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 if ( (checkMac ($mac) == -1) || (! $mac))
00053 {
00054 return error ("Error: Wrong MAC='" . $mac . "' ", "cameras");
00055 }
00056
00057 $mac = checkMac ($mac);
00058
00059 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0" ;
00060
00061 $query_resp = @mysql_query ($query, $id);
00062 $num = @mysql_numrows ($query_resp);
00063
00064 if ($num < 1)
00065 {
00066 return error ("Error: Camera with MAC='" . $mac_orig ."' is not found!", "cameras");
00067 }
00068
00069 $flag = 0;
00070 $query = "UPDATE cameras SET ";
00071 if ($ip1)
00072 {
00073 $flag = 1;
00074 $query .= "ip1='" . $ip1 . "' ";
00075 }
00076 if ($ip2)
00077 {
00078 if ($flag == 1)
00079 {
00080 $query .= ", ";
00081 }
00082 $flag = 1;
00083 $query .= "ip2='" . $ip2 . "' ";
00084 }
00085 if ($place)
00086 {
00087 if ($flag == 1)
00088 {
00089 $query .= ", ";
00090 }
00091 $flag = 1;
00092 $query .= "place='" . $place . "' ";
00093 }
00094
00095 $query .= " WHERE mac='" . $mac . "' AND del=0";
00096
00097 if ($flag == 1)
00098 {
00099 $query_resp = @mysql_query ($query, $id);
00100 }
00101
00102 $ret = formClosedTag ("OK", "edit", "") . "\n";
00103 $ret = formClosedTag ($ret, "cameras", "\n") . "\n";
00104
00105 return $ret;
00106 }
00107
00108
00109 function delUndelCam ($mac, $id, $action)
00110 {
00111 $mac_orig = $mac;
00112
00113 if (($mac = checkMac ($mac)) == -1)
00114 {
00115 return error ("Error: Wrong MAC=" . $mac, "cameras");
00116 }
00117
00118 if (($action != DELETE) && ($action != UNDELETE))
00119 {
00120 return error ("Error: Wrong action=" . $action, "cameras");
00121 }
00122
00123 $action_rev = $action == UNDELETE ? DELETE : UNDELETE;
00124 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=" . $action_rev;
00125
00126 $query_resp = @mysql_query ($query, $id);
00127 $num = @mysql_numrows ($query_resp);
00128
00129 if ($num < 1)
00130 {
00131 $err = 'C';
00132 if ($action == UNDELETE) $err = 'Deleted c';
00133 return error ("Error: " . $err . "amera with MAC='$mac_orig' is not found", "cameras");
00134 }
00135
00136 $query = "UPDATE cameras SET del=" . $action . " WHERE mac='" . $mac . "' AND del=" . $action_rev;
00137 $query_resp = @mysql_query ($query, $id);
00138
00139 $ret = formClosedTag ("OK", "undel", "") . "\n";
00140 if ($action == DELETE)
00141 {
00142 $ret = formClosedTag ("OK", "del", "") . "\n";
00143 }
00144
00145 $ret = formClosedTag ($ret, "cameras", "\n");
00146
00147 return $ret;
00148 }
00149
00150
00151
00152 function listCams ($mac, $id)
00153 {
00154 $mac_orig = $mac;
00155
00156 if ($mac)
00157 {
00158 if (($mac = checkMac ($mac)) == -1)
00159 {
00160 return error ("Error: Wrong MAC=" . $mac, "cameras");
00161 }
00162 }
00163
00164 $mac_enabled = 0;
00165 if ($mac)
00166 {
00167 $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0";
00168 $mac_enabled = 1;
00169 }
00170 else
00171 {
00172 $query = "SELECT * FROM cameras WHERE del=0";
00173 }
00174
00175 $query_resp = mysql_query ($query, $id);
00176 $num = mysql_numrows ($query_resp);
00177
00178 if ($num < 1)
00179 {
00180 if ( $mac_enabled == 1)
00181 {
00182 return error ("Error: Camera with MAC='" . $mac_orig . "' is not found", "cameras");
00183 }
00184 return error ("Error: Database is empty.", "cameras");
00185 }
00186
00187 $i = 0;
00188 $ret = '';
00189 while ($i < $num)
00190 {
00191 $mac_ = getDottedMac (mysql_result ($query_resp, $i, "mac"));
00192 $ret_ = '';
00193 $ret_ = $ret_ . formClosedTag ($mac_, "mac", "") . "\n";
00194 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip1"), "ip1", "") . "\n";
00195 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip2"), "ip2", "") . "\n";
00196 $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "place"), "place", "") . "\n";
00197 $ret_ = formClosedTag ($ret_, "camera", "\n") . "\n";
00198 $i++;
00199 $ret .= $ret_;
00200 }
00201 $ret = formClosedTag ($ret, "cameras", "\n");
00202
00203 return $ret;
00204 }
00205
00206
00207
00208
00209
00210
00211 switch ($_GET[cmd])
00212 {
00213 case "list":
00214 case "del":
00215 case "undel":
00216 case "add":
00217 case "edit":
00218 break;
00219 default :
00220 echo error ("Error: Unknown command '" . $_GET[cmd] . "' ", "cameras");
00221 return 0;
00222 break;
00223 }
00224
00225 $id = connectToServer (server, user, password);
00226 if (!$id)
00227 {
00228 echo error ("Error: " . mysql_error(), "cameras");
00229 return 0;
00230 }
00231
00232 if (!openDB (database, $id))
00233 {
00234 echo error ("Error: " . mysql_error($id), "cameras");
00235 closeDB ($id);
00236 return 0;
00237 }
00238
00239
00240 switch ($_GET[cmd])
00241 {
00242 case "list":
00243 $ret = listCams ($_GET[mac], $id);
00244 break;
00245 case "add":
00246 $ret = addCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00247 break;
00248 case "edit":
00249 $ret = editCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00250 break;
00251 case "del":
00252 $ret = delUndelCam ($_GET[mac], $id, DELETE);
00253 break;
00254 case "undel":
00255 $ret = delUndelCam ($_GET[mac], $id, UNDELETE);
00256 break;
00257 default :
00258 $ret = error ("Error: Unknown command \"$_GET[cmd]\"", "cameras");
00259 break;
00260 }
00261
00262 closeDB ($id);
00263
00264 echo $ret
00265 ?>