Odyssey
cu_dbremote_top.prg
1 <?php
2 
3  /* VALUE
4  Remote_Servers -- Array of the available database servers to update
5  Array values
6  IP -- this is the IP address of the remote server
7  host -- this is the db host name, used to establish database connection
8  upd -- when true the server is included by default, when false the server is excluded by default
9  http_login -- This is set to true when the browser needs to pass along the http user and pwd information for the hcuadm folder (not sure this will be needed anymore, but keep it in the code until I decide
10  */
11 
12  $Remote_Servers["db-www5"]["IP"] = "db-www5.homecu.net";
13  $Remote_Servers["db-www5"]["host"] = "db-www5";
14  $Remote_Servers["db-www5"]["upd"] = true;
15  $Remote_Servers["db-www5"]["http_login"] = false;
16 
17  $Remote_Servers["db-www3"]["IP"] = "db-www3.homecu.net";
18  $Remote_Servers["db-www3"]["host"] = "db-www3";
19  $Remote_Servers["db-www3"]["upd"] = false;
20  $Remote_Servers["db-www3"]["http_login"] = false;
21 
22  $Remote_Servers["db-www6"]["IP"] = "db-www6.homecu.net";
23  $Remote_Servers["db-www6"]["host"] = "db-www6";
24  $Remote_Servers["db-www6"]["upd"] = false;
25  $Remote_Servers["db-www6"]["http_login"] = false;
26 
27  // ** Security Settings **
28  $http_user = "nobody";
29  $http_pwd = "no1home";
30  // ** End Settings
31 
32  // *** Function: remote_update_list
33  // *** Purpose: To list the servers that are available for remote updating
34  function remote_update_list() {
35  global $Remote_Servers;
36  print <<< EOF
37  <table border="0" cellpadding="1" cellspacing="1">
38  <tr>
39  <td class="hdr">Please select all remote servers you wish to update:</td>
40  </tr>
41 EOF;
42  foreach ($Remote_Servers as $key => $value) {
43  // ** NOT THE SAME MACHINE PRINT THE FIELD
44  $default_checked = ($value['upd'] ? "checked" : "");
45  print "
46  <tr>
47  <td class=\"dtl\">
48  <input type=\"checkbox\" value=\"$key\" name=\"Remote_Update[]\" $default_checked>$key
49  </td>
50  </tr> ";
51  }
52  print "
53  <tr>
54  <td class=\"dtl\"><hr></td>
55  </tr>
56  </table>";
57  }
58 
59  function Remote_Update_Selected() {
60  if (isset($_POST['Remote_Update']) && is_array($_POST['Remote_Update'])) {
61  return true;
62  } else {
63  return false;
64  }
65  }
66  function Remote_Update_Send($sqlAsk, $sqlUpd, $sqlIns) {
67  global $dbplat, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname;
68  global $Remote_Servers;
69  // ** LOOP THROUGH EACH SERVER LISTED
70  if (Remote_Update_Selected()) {
71  foreach ($_POST['Remote_Update'] as $key => $value) {
72  // ** CALL EACH SERVER
73  if (isset($Remote_Servers[$value]["host"])) {
74  $dbhost=$Remote_Servers[$value]["host"] . ".homecu.net";
75  if ($dbh ) {
76  // use sqlAsk to determine if we should update or insert
77  $db_result = db_query($sqlAsk, $dbx);
78 
79  $num_rows = db_num_rows($db_result);
80  if ($num_rows > 0 ) {
81  $qry_stmt=$sqlUpd;
82  } else {
83  $qry_stmt=$sqlIns;
84  }
85 
86  // Now pass the query to the Database
87  if (!($db_result=db_query($qry_stmt, $dbx))) {
88  $call_msg .= "<li>Update to server $value failed with description '$call_desc'.<br>";
89  } else {
90  $call_msg .= "<li>Update to server $value was successful.<br>";
91  }
92  } else {
93  $call_msg .= "$value - db connection failed";
94  }
95  } else {
96  // THE SERVER WAS NOT FOUND TO MAKE A REMOTE CALL
97  // ** NOT FOUND
98  $call_msg .= "$value - NOT FOUND";
99  }
100  }
101  return $call_msg;
102  } else {
103  return "No Remote Servers Selected to Update";
104  }
105 
106  }
107 
108  // ** This will update all Servers that are set to default
109  // ** It does NOT require any selection by user -- it is
110  // all behind the scenes
111  function Remote_Update_All($sqlAsk, $sqlUpd, $sqlIns) {
112  global $dbplat, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname;
113  global $Remote_Servers;
114  // ** LOOP THROUGH EACH SERVER LISTED
115 
116  foreach ($Remote_Servers as $key => $value) {
117  // ** CALL EACH SERVER
118  if ($value["upd"] == true) {
119  $dbhost=$Remote_Servers[$value]["host"] . ".homecu.net";
120  if ($dbh ) {
121  // use sqlAsk to determine if we should update or insert
122  $db_result = db_query($sqlAsk, $dbx);
123 
124  $num_rows = db_num_rows($db_result);
125  if ($num_rows > 0 ) {
126  $qry_stmt=$sqlUpd;
127  } else {
128  $qry_stmt=$sqlIns;
129  }
130 
131  // Now pass the query to the Database
132  if (!($db_result=db_query($qry_stmt, $dbx))) {
133  $call_msg .= "<li>Update to server $value failed with description '$call_desc'.<br>";
134  } else {
135  $call_msg .= "<li>Update to server $value was successful.<br>";
136  }
137  } else {
138  $call_msg .= "$value - db connection failed";
139  }
140  } else {
141  // THE SERVER WAS NOT FOUND TO MAKE A REMOTE CALL
142  // ** NOT FOUND
143  }
144  }
145  return $call_msg;
146 
147  }
148 
149  function Remote_Query_Send($sqlAsk) {
150  global $dbplat, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname;
151  global $Remote_Servers;
152  // ** LOOP THROUGH EACH SERVER LISTED
153  if (Remote_Update_Selected()) {
154  foreach ($_POST['Remote_Update'] as $key => $value) {
155  // ** CALL EACH SERVER
156  if (isset($Remote_Servers[$value]["host"])) {
157  $dbhost=$Remote_Servers[$value]["host"] . ".homecu.net";
158  if ($dbh) {
159 
160  if (!($db_result=db_query($sqlAsk, $dbx))) {
161  $call_msg .= "<li>Query to server $value failed with description '$call_desc'.<br>";
162  } else {
163  $call_msg .= "<li>Query to server $value was successful.<br>";
164  }
165  } else {
166  $call_msg .= "$value - db connection failed";
167  }
168  } else {
169  // THE SERVER WAS NOT FOUND TO MAKE A REMOTE CALL
170  // ** NOT FOUND
171  $call_msg .= "$value - NOT FOUND";
172  }
173  }
174  return $call_msg;
175  } else {
176  return "No Remote Servers Selected to Query";
177  }
178 
179  }
180 
181  // ** This will Query all Servers that are set to default
182  // ** It does NOT require any selection by user -- it is
183  // all behind the scenes
184  function Remote_Query_All($sqlAsk) {
185  global $dbplat, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname;
186  global $Remote_Servers;
187  global $dbh;
188 
189  // ** LOOP THROUGH EACH SERVER LISTED
190 
191  foreach ($Remote_Servers as $key => $value) {
192  // ** CALL EACH SERVER
193  if ($value["upd"] == true) {
194  $dbhost=$Remote_Servers[$value]["host"] . ".homecu.net";
195  if ($dbh) {
196 
197  // Now pass the query to the Database
198  if (!($db_result=db_query($sqlAsk, $dbh))) {
199  $call_msg .= "<li>Query to server $value failed with description '$call_desc'.<br>";
200  } else {
201  $call_msg .= "<li>Query to server $value was successful.<br>";
202  }
203  } else {
204  $call_msg .= "$value - db connection failed";
205  }
206  } else {
207  // THE SERVER WAS NOT FOUND TO MAKE A REMOTE CALL
208  // ** NOT FOUND
209  }
210  }
211  return $call_msg;
212 
213  }
214 
215 
216 
217  function Call_URL($remote_url) {
218  // *** This function will call the remote script and pass back the results
219 
220  // ** Pass the file
221  $results_ary = file($remote_url);
222 
223  // ** NOW LOOP THROUGH THE RESULTS
224  // ** IDEALLY, there should only be one line returned
225  foreach ($results_ary as $value) {
226  print "<Br>11 - $value";
227  }
228  if (count($results_ary) == 1 && strstr($results_ary[0], "RU: ") !== FALSE) {
229  // SUCCESS
230  return array(substr($results_ary[0], 4, 3), substr($results_ary[0], 10));
231  } else {
232  // ** ERROR --
233  return array("999", "Unable to update the remote server");
234  }
235 
236  }
237 ?>