[feladat @ 62]
Bugfix. In list_zones.php with no domains created, get_domains will
return -1, count() will not be 0, as all_doms contains one element.
Similar problem in existed in list_supermasters.php.
<?session_start();/************* * Constants * *************/define(ROWAMOUNT,500);if(isset($_GET["start"])){define(ROWSTART,(($_GET["start"]-1)*ROWAMOUNT));}else{define(ROWSTART,0);}if(isset($_GET["letter"])){define(LETTERSTART,$_GET["letter"]);$_SESSION["letter"]=$_GET["letter"];}elseif(isset($_SESSION["letter"])){define(LETTERSTART,$_SESSION["letter"]);}else{define(LETTERSTART,"a");}if(!@include_once("config.inc.php")){error(_('You have to create a config.inc.php!'));}if(is_file(dirname(__FILE__).'/../install.php')){error(_('You have to remove install.php before this program will run'));}if(is_file(dirname(__FILE__).'/../migrator.php')){error(_('You have to remove migrator.php before this program will run'));}/* Database connection */require_once("database.inc.php");// Generates $db variable to access database.// Array of the available zone types$server_types=array("MASTER","SLAVE","NATIVE");/************* * Includes * *************/require_once("error.inc.php");require_once("auth.inc.php");require_once("i18n.inc.php");require_once("users.inc.php");require_once("dns.inc.php");require_once("record.inc.php");/************* * Functions * *************//* * Display the page option: [1] [2] .. [n] */functionshow_pages($amount,$rowamount,$id=''){if($amount>$rowamount){if(!isset($_GET["start"]))$_GET["start"]=1;echo_('Show page')."<br>";for($i=1;$i<=ceil($amount/$rowamount);$i++){if($_GET["start"]==$i){echo"[ <b>".$i."</b> ] ";}else{echo"[ <a href=\"".$_SERVER["PHP_SELF"]."?start=".$i;if($id!='')echo"&id=".$id;echo"\">".$i."</a> ] ";}}}}/* * Display the alphabetic option: [0-9] [a] [b] .. [z] */functionshow_letters($letterstart,$doms){foreach($domsas$dom){if(is_numeric($dom["name"][0])){$letter_taken["0"]=1;}else{$letter_taken[$dom["name"][0]]=1;}}echo_('Show zones beginning with:')."<br>";if($letterstart==1){echo"[ <b>0-9</b> ] ";}elseif($letter_taken["0"]!=1){echo"[ 0-9 ] ";}else{echo"[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=1\">0-9</a> ] ";}foreach(range('a','z')as$letter){if($letterstart===$letter){echo"[ <span class=\"lettertaken\">".$letter."</span> ] ";}elseif($letter_taken[$letter]!=1){echo"[ <span class=\"letternotavailble\">".$letter."</span> ] ";}else{echo"[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=".$letter."\">".$letter."</a> ] ";}}}/* * Print a nice useraimed error. */functionerror($msg){// General function for printing critical errors.if($msg){include_once("header.inc.php");?> <p><?echo_('Oops! An error occured!');?></p> <p><?echonl2br($msg)?></p><?include_once("footer.inc.php");die();}else{include_once("footer.inc.php");die("No error specified!");}}/* * Something has been done nicely, display a message and a back button. */functionmessage($msg){include_once("header.inc.php");?> <P><TABLE CLASS="messagetable"><TR><TD CLASS="message"><H2><?echo_('Success!');?></H2> <BR> <FONT STYLE="font-weight: Bold"> <P><?if($msg){echonl2br($msg);}else{echo_('Successful!');}?> </P> <BR> <P> <a href="javascript:history.go(-1)"><< <?echo_('back');?></a></FONT> </P> </TD></TR></TABLE></P><?include_once("footer.inc.php");}/* * Reroute a user to a cleanpage of (if passed) arg */functionclean_page($arg=''){if(!$arg){header("Location: ".$_SERVER["PHP_SELF"]."?time=".time());exit;}else{if(preg_match('!\?!si',$arg)){$add="&time=";}else{$add="?time=";}header("Location: $arg$add".time());exit;}}functionlevel($l){if($_SESSION["level"]>=$l){return1;}else{return0;}}functionxs($zoneid){global$db;if(is_numeric($zoneid)&&is_numeric($_SESSION["level"])){$result=$db->query("SELECT id FROM zones WHERE owner=".$_SESSION["userid"]." AND domain_id=$zoneid");$result_extra=$db->query("SELECT record_owners.id FROM record_owners,records WHERE record_owners.user_id=".$_SESSION["userid"]." AND records.domain_id = $zoneid AND records.id = record_owners.record_id LIMIT 1");if($result->numRows()==1||$_SESSION["level"]>=5){$_SESSION[$zoneid."_ispartial"]=0;returntrue;}elseif($result_extra->numRows()==1){$_SESSION[$zoneid."_ispartial"]=1;returntrue;}else{returnfalse;}}else{returnfalse;}}functionget_status($res){if($res=='0'){return"<FONT CLASS=\"inactive\">"._('Inactive')."</FONT>";}elseif($res=='1'){return"<FONT CLASS=\"active\">"._('Active')."</FONT>";}}functionparse_template_value($val,$domain,$webip,$mailip){$val=str_replace('##DOMAIN##',$domain,$val);$val=str_replace('##WEBIP##',$webip,$val);$val=str_replace('##MAILIP##',$mailip,$val);return$val;}/* * Validates an email address. * Checks if there is something before the at '@' sign and its followed by a domain and a tld of minimum 2 * and maximum of 4 characters. */functionis_valid_email($email){if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.([a-z]{2,6}$)",$email)){returnfalse;}returntrue;}?>