/static/SaveZoneFile.php
https://bitbucket.org/droidzone/dns-manager · PHP · 183 lines · 135 code · 30 blank · 18 comment · 34 complexity · 7efb0ddc9a182f06a24508b3ead5e39b MD5 · raw file
- <?php
- global $DATASAVED, $DATAUNSAVED_ALERT;
- $DATASAVED=true;
- global $DEBUGON;
- //$DEBUGON=false;
- if ($DEBUGON) {
- debug_print_backtrace();
- var_dump($_POST);
- }
- #Saves to disk
-
-
- global $filehandle;
- global $DEBUGMSG;
- global $MAIN_DOMAINNAME,$MAIN_NS,$MAIN_ADMINMAIL,$NS;
- global $A_REC, $A_VAL;
- global $MX_PREF,$MX_VAL;
- global $CN_PREF,$CN_VAL,$CN_NAME;
- global $TXT_VAL, $TXT_PREF;
- global $CONF_FILE,$DOMAIN_SERIAL,$DOMAIN_REFRESH, $DOMAIN_RETRY, $DOMAIN_EXPIRE, $DOMAIN_NEGTTL;
- global $NO_TXT_BANNER;
- //print_r($_POST);
- global $CONF_FILE;
- $CONF_FILE=$_POST['CONF_FILE'];
- $domain=$MAIN_DOMAINNAME=$_POST['MAIN_DOMAINNAME'];
- $att_filename="db.".$domain.".txt";
-
- #Note $file is a handle
- global $TEMP_FILE;
- $filehandle = fopen($TEMP_FILE, 'w');
-
- $MAIN_NS=$_POST['MAIN_NS'];
- $MAIN_ADMINMAIL=$_POST['MAIN_ADMINMAIL'];
- $DOMAIN_SERIAL=$_POST['DOMAIN_SERIAL'];
- //print "<p>Serial is ".$DOMAIN_SERIAL;
- $DOMAIN_REFRESH=$_POST['DOMAIN_REFRESH'];
- $DOMAIN_RETRY=$_POST['DOMAIN_RETRY'];
- $DOMAIN_EXPIRE=$_POST['DOMAIN_EXPIRE'];
- $DOMAIN_NEGTTL=$_POST['DOMAIN_NEGTTL'];
- $DOMAIN_REFRESH=$_POST['DOMAIN_REFRESH'];
- fprint( $domain. "." . tpc() ."IN". tpc() . "SOA". tpc() . $MAIN_NS. tpc() . $MAIN_ADMINMAIL. tpc() . '(');
- fprint( tpc(5).$DOMAIN_SERIAL.tpc(5).'; Serial');
- fprint( tpc(5).$DOMAIN_REFRESH.tpc(5).'; Refresh');
- fprint( tpc(5).$DOMAIN_RETRY.tpc(5).'; Retry');
- fprint( tpc(5).$DOMAIN_EXPIRE.tpc(5).'; Expire');
- fprint( tpc(5).$DOMAIN_NEGTTL.tpc(3).')'.tpc(5).'; Negative Cache TTL');
-
- if (isset($_POST['NS']) )
- {
- $NS=$_POST['NS'];
- foreach ($_POST['NS'] as &$value) {
- if ( $value != "" ) {
- fprint ($domain. ".". tpc(5)."IN".tpc(5).'NS'.tpc(5).$value);
- }
- }
- }
- $i=0;
-
-
-
- if (isset($_POST['MX_PREF']) && isset($_POST['MX_VAL'] ) ) {
- $MX_PREF=$_POST['MX_PREF'];
- $MX_VAL=$_POST['MX_VAL'];
- $i=0;
- $MX_PREF=$_POST['MX_PREF'];
- $MX_VAL=$_POST['MX_VAL'];
- foreach ($_POST['MX_PREF'] as &$value) {
- if ( $MX_PREF[$i] != "" && $MX_VAL[$i] != "") {
- fprint ($domain. ".". tpc(5)."IN".tpc(5).'MX'.tpc(5).$MX_PREF[$i].tpc(5).$MX_VAL[$i]);
- $i++;
- }
-
- }
- }
- $A_REC=$_POST['A_REC'];
- $A_VAL=$_POST['A_VAL'];
- $i=0;
- foreach ($_POST['A_VAL'] as $key => $value) {
- if ( isset($A_VAL[$key]) ) {
- if ( $A_VAL[$key] !== "") {
- //print "<h4>Entered if block</h4>";
- $domain=rtrim($domain, ".");
- if ( $A_REC[$key] !== "") {
- fprint( $A_REC[$key].".".$domain. ".". tpc(5)."IN".tpc(5).'A'.tpc(5).$A_VAL[$key]);
- } else {
- fprint( $domain. ".". tpc(5)."IN".tpc(5).'A'.tpc(5).$A_VAL[$key]);
- }
- }
- }
- }
- if (isset( $_POST['TXT_PREF']) && isset($_POST['TXT_VAL'] )) {
- $TXT_PREF=$_POST['TXT_PREF'];
- $TXT_VAL=$_POST['TXT_VAL'];
- $i=0;
- foreach ($_POST['TXT_VAL'] as &$value) {
- if ( $TXT_PREF[$i] != "" && $TXT_VAL[$i] != "") {
- fprint( $domain. ".". tpc(5).$TXT_PREF[$i]. tpc(5)."IN".tpc(5).'TXT'.tpc(5).$TXT_VAL[$i]);
- $i++;
- }
- }
- }
- if (isset( $_POST['CN_PREF']) && isset($_POST['CN_VAL']) && isset($_POST['CN_NAME'] )) {
- $CN_PREF=$_POST['CN_PREF'];
- $CN_VAL=$_POST['CN_VAL'];
- $CN_NAME=$_POST['CN_NAME'];
- $i=0;
- foreach ($_POST['CN_VAL'] as &$value) {
- if ( $CN_VAL[$i] != "" && $CN_PREF[$i] != "" && $CN_NAME[$i] != "") {
- fprint( $CN_VAL[$i].".".$domain. ".". tpc(5).$CN_PREF[$i]. tpc(5)."IN".tpc(5).'CNAME'.tpc(5).$CN_NAME[$i]);
- $i++;
- }
- }
- }
- $dl_name="db.".$domain.".txt";
- // /root/cpbind dbupdate /tmpfile db.mydomain.com mydomain.com
- $coman='sudo /root/cpbind dbupdate '.$TEMP_FILE." "."db.".$domain.' '.$domain;
- #print "<h4>Command is ".$coman."</h4>";
- $output = shell_exec($coman);
- #print "<h4>Output is ".$output."</h4>";
- $err = strpos($output, "errors");
- #print "<h1>Error val is ".$err."<h1>";
- if ( $err !== false) {
- GenErrorBanner("An error occured!",$output);
- } else {
- GenBanner("Changes saved!",$output);
- }
-
- //ReadAndProcessFile();
- PrintPageFormatted();
- //Write to conf file
- //See if the domain existed previously
-
- $dataw="";
- $dataw .= "zone \"".$domain."\" {\n";
- $dataw .= "\ttype master;\n";
- $dataw .= "\tfile \"".$CONF_FILE."\";\n";
- $dataw .= "\tallow-update { key rndc-key; };\n";
- $dataw .= "};\n";
- $File_to_write = "dummy.conf";
- if (!SearchFile($File_to_write, $CONF_FILE) ) {
- WritetoConfFile($File_to_write, $dataw);
- }
- hpfooter();
- function WritetoConfFile ($filename, $data) {
- #print "<p>About to open</p>";
- $file = fopen($filename, 'a');
- #print "file param is ".$file." which is a ".gettype($file);
- #print "<p>Writing</p>";
- fwrite($file, $data);
- #print "<p>About to close</p>";
- fclose($file);
- }
- function SearchFile($file,$searchfor) {
- //header('Content-Type: text/plain');
- $contents = file_get_contents($file);
- $pattern = preg_quote($searchfor, '/');
- $pattern = "/^.*$pattern.*\$/m";
- if(preg_match_all($pattern, $contents, $matches)){
- return true;
- } else {
- return false;
- }
- }
- ?>