From: Michael K. <mic...@ip...> - 2007-04-22 10:54:35
|
Tom or anyone As I use the DB for a large part of my configuration, this piece of PHP code will come in very handy. I have it all working except that any DB entry that has a / in it does not display any characters after the /. As I am not a very experienced programmer, could someone let me know how to fix this problem. I am sure it is a syntax problem in this line: preg_match("/^\/(.*)\/([\w]*)\s*:\s*([\w\.:@]*)/", $value, $temp); Anyones help is very much appreciated. Regards Michael Knill -----Original Message----- From: ast...@ja... [mailto:ast...@ja...]On Behalf Of Tom Lynn Sent: Tuesday, 14 November 2006 7:00 AM To: Discussion of AstLinux - Asterisk on Compact Flash Subject: Re: [Astlinux-users] PHP page for maintaining asterisk databse Turns out the script was scrubbed off of my e-mail. Here it is for anybody that is interested. <html> <head> <?php import_request_variables("GP"); ?> <META http-equiv="Content-Style-Type" content="text/css"> <link href="default.css" rel="stylesheet" type="text/css"> <? if ($mode == "put"){ echo '<meta http-equiv="Refresh" Content="2; URL='.$self.'?mode=show">';} ?> </head> <BODY> <?php include "header.php"; ?> <? // ----------------------------------------------------------------------- begin ast db show if(!isset($mode)|| $mode == 'show') { echo 'Asterisk Database Maintenance<P><a href="'.$self.'?mode=form">New Entry</a> - Or edit existing below<P>'; $man_name = "php"; $man_pword = "supersecret"; $socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); // open a connection to the manager interface fputs($socket, "Action: Login\r\n"); // login fputs($socket, "UserName: $man_name\r\n"); // send username fputs($socket, "Secret: $man_pword\r\n\r\n"); // send password fputs($socket, "Action: Command\r\n"); // tell it a command is coming fputs($socket, "Command: database show\r\n\r\n"); // ask for the contents of the database fputs($socket, "Action: Logoff\r\n\r\n"); // logoff while (!feof($socket)) { $dbentries .= fread($socket, 8192); // read the entire output into $dbentries } fclose($socket); // close the socket $array = preg_split("/\n/",$dbentries, -1, PREG_SPLIT_NO_EMPTY); // split $dbentries on newline characters and store in $array for ($i = 1; $i < 7; $i++) { array_shift($array); // get rid of 7 lines of useless garbage (need a test for this) } $bgcolor='white'; // set a background color for the table $color_state=true; // use it when $color_state = true ?> <table border="0" cellspacing="2"> <tr bgcolor="#EEEEEE"> <td>Family</td> <td>Key</td> <td>Value</td> </tr> <? foreach($array as $value) { if (strncmp($value, '--END COMMAND', 13) == 0) { // look for the end of the output break; // stop showing records at this point } preg_match("/^\/(.*)\/([\w]*)\s*:\s*([\w\.:@]*)/", $value, $temp); // isolate Family, Key and Value into $temp[] array_shift($temp); // shift off the matched portion $querystring = 'mode=form&family='.urlencode($temp[0]).'&key='.urlencode($temp[1]).'&value= '.urlencode($temp[2]); // build some of the URI for this value ?> <tr bgcolor=<? echo("$bgcolor");?>> <td><? echo '<a href="'.$self.'?'.htmlspecialchars($querystring).'">'.$temp[0].'</a>';?></td > <td><? echo($temp[1]); ?></td> <td><? echo($temp[2]); ?></td> </tr> <? $color_state = !$color_state; // flip the color state if ($color_state) { $bgcolor = 'white'; // if true use lightblue; } else { $bgcolor = '#EEEEEE'; // else use wheat } } } //------------------------------------------------------------------------ end ast db show // ------------------------------------------------------------------------- begin ast db form if ($mode == "form") { ?> <P><P><P></P> <FORM ACTION="<? echo "$self"; ?>" METHOD="POST"> <table border="0" width="60%"> <tr> <td width="20%" valign="top"><b>Family</b></td> <td width="80%" valign="top"><INPUT TYPE="text" NAME="family" value="<? echo htmlspecialchars(stripslashes($family));?>" SIZE=40><br><br> </td> </tr> <tr> <td width="20%" valign="top"><b>Key</b></td> <td width="80%" valign="top"><INPUT TYPE="text" NAME="key" value="<? echo htmlspecialchars(stripslashes($key));?>" SIZE=40><br><br> </td> </tr> <tr> <td width="20%" valign="top"><b>Value</b></td> <td width="80%" valign="top"><INPUT TYPE="text" NAME="value" value="<? echo htmlspecialchars(stripslashes($value));?>" SIZE=40><br><br> </td> </tr> <tr> <td width="30%"></td> <td width="80%"><INPUT TYPE="submit" name="verb" VALUE="Submit"></td> </tr> <tr> <td width="30%"></td> <td width="80%"><INPUT TYPE="submit" name="verb" VALUE="DELETE"> <input type="hidden" name="mode" value="put"> </tr> </table> </FORM> <? } // ------------------------------------------------------------------------- end ast db form // ------------------------------------------------------------------------- -- begin ast db put if ($mode == "put") { if ($verb == "Submit") { $socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: php\r\n"); fputs($socket, "Secret: supersecret\r\n\r\n"); fputs($socket, "Action: Command\r\n"); fputs($socket, "Command: database put $family $key $value\r\n\r\n"); fputs($socket, "Action: Logoff\r\n\r\n"); while (!feof($socket)) { $response .= fread($socket, 8192); // read the entire output into $response } fclose($socket); // close the socket if (strpos($response, 'Updated database successfully')) { print("Your data has been INSERTED.\r\n"); } else print("INSERT Error...."); } if ($verb == "DELETE") { $socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: php\r\n"); fputs($socket, "Secret: supersecret\r\n\r\n"); fputs($socket, "Action: Command\r\n"); fputs($socket, "Command: database del $family $key\r\n\r\n"); fputs($socket, "Action: Logoff\r\n\r\n"); while (!feof($socket)) { $response .= fread($socket, 8192); // read the entire output into $response } fclose($socket); // close the socket if (strpos($response, 'Database entry removed')) { print("Your data has been DELETED.\r\n"); } else print("Delete Error...."); } } // ------------------------------------------------------------------------ end ast db put ?> <?php include "footer.php"; ?> </body> </html> _______________________________________________ Astlinux-users mailing list Ast...@li... http://lists.kriscompanies.com/mailman/listinfo/astlinux-users Donations to support AstLinux are graciously accepted via PayPal to pa...@kr.... -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.430 / Virus Database: 268.14.5/533 - Release Date: 13/11/2006 8:56 PM -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.446 / Virus Database: 269.5.5/769 - Release Date: 19/04/2007 5:56 PM |