inc/toolkit.inc.php
changeset 1 58094faf794d
child 3 64525a2eb098
equal deleted inserted replaced
0:2cd8c1649ba9 1:58094faf794d
       
     1 <?
       
     2 session_start();
       
     3 // +--------------------------------------------------------------------+
       
     4 // | PowerAdmin                                                         |
       
     5 // +--------------------------------------------------------------------+
       
     6 // | Copyright (c) 1997-2002 The PowerAdmin Team                        |
       
     7 // +--------------------------------------------------------------------+
       
     8 // | This source file is subject to the license carried by the overal   |
       
     9 // | program PowerAdmin as found on http://poweradmin.sf.net            |
       
    10 // | The PowerAdmin program falls under the QPL License:                |
       
    11 // | http://www.trolltech.com/developer/licensing/qpl.html              |
       
    12 // +--------------------------------------------------------------------+
       
    13 // | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>       |
       
    14 // |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>                      |
       
    15 // +--------------------------------------------------------------------+
       
    16 
       
    17 // Filename: toolkit.inc.php
       
    18 // Startdate: 26-10-2002
       
    19 // Description: general functions needed on a large variety of locations.
       
    20 // Kills the db.inc.php.
       
    21 // If you include this file you include the whole 'backend'
       
    22 //
       
    23 // $Id: toolkit.inc.php,v 1.13 2003/02/24 01:46:31 azurazu Exp $
       
    24 //
       
    25 
       
    26 /*************
       
    27  * Constants  *
       
    28   *************/
       
    29 
       
    30 define(ROWAMOUNT, 500);
       
    31 
       
    32 if (isset($_GET["start"])) {
       
    33    define(ROWSTART, (($_GET["start"] - 1) * ROWAMOUNT));
       
    34    } else {
       
    35    define(ROWSTART, 0);
       
    36 }
       
    37 
       
    38 if (isset($_GET["letter"])) {
       
    39    define(LETTERSTART, $_GET["letter"]);
       
    40    $_SESSION["letter"] = $_GET["letter"];
       
    41 } elseif(isset($_SESSION["letter"])) {
       
    42    define(LETTERSTART, $_SESSION["letter"]);
       
    43 } else {
       
    44    define(LETTERSTART, "a");
       
    45 }
       
    46 
       
    47 if(!@include_once("config.inc.php"))
       
    48 {
       
    49 	error("You have to create a config.inc.php!");
       
    50 }
       
    51 
       
    52 if(is_file( dirname(__FILE__) . '/../install.php'))
       
    53 {
       
    54 	error("You have to remove install.php before this program will run");
       
    55 }
       
    56 
       
    57 if(is_file( dirname(__FILE__) . '/../migrator.php'))
       
    58 {
       
    59         error("You have to remove migrator.php before this program will run");
       
    60 }
       
    61 
       
    62 /* Database connection */
       
    63 
       
    64 require_once("database.inc.php");
       
    65 // Generates $db variable to access database.
       
    66 
       
    67 /*************
       
    68  * Includes  *
       
    69  *************/
       
    70 
       
    71 require_once("error.inc.php");
       
    72 require_once("auth.inc.php");
       
    73 require_once("users.inc.php");
       
    74 require_once("dns.inc.php");
       
    75 require_once("record.inc.php");
       
    76 
       
    77 
       
    78 /*************
       
    79  * Functions *
       
    80  *************/
       
    81 
       
    82 /*
       
    83  * Display the page option: [1] [2] .. [n]
       
    84  */
       
    85 
       
    86 function show_pages($amount,$rowamount,$id='')
       
    87 {
       
    88    if ($amount > $rowamount) {
       
    89       if (!isset($_GET["start"])) $_GET["start"]=1;
       
    90       echo "<br /><br />Show page ";
       
    91       for ($i=1;$i<=ceil($amount / $rowamount);$i++) {
       
    92          if ($_GET["start"] == $i) {
       
    93             echo "[ <b>".$i."</b> ] ";
       
    94          } else {
       
    95             echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?start=".$i;
       
    96 	    if ($id!='') echo "&id=".$id;
       
    97 	    echo "\">".$i."</a> ] ";
       
    98          }
       
    99       }
       
   100       echo "</small>";
       
   101    }
       
   102 }
       
   103 
       
   104 /*
       
   105  * Display the alphabetic option: [0-9] [a] [b] .. [z]
       
   106  */
       
   107 
       
   108 function show_letters($letterstart,$doms)
       
   109 {
       
   110    foreach ($doms as $dom) {
       
   111       if (is_numeric($dom["name"][0])) {
       
   112          $letter_taken["0"] = 1;
       
   113       } else {
       
   114          $letter_taken[$dom["name"][0]] = 1;
       
   115       }
       
   116    }
       
   117 
       
   118    echo "Show domains beginning with: <br />";
       
   119    if ($letterstart == 1) {
       
   120       echo "[ <b>0-9</b> ] ";
       
   121    } elseif ($letter_taken["0"] != 1) {
       
   122       echo "[ 0-9 ] ";
       
   123    } else {
       
   124       echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=1\">0-9</a> ] ";
       
   125    }
       
   126    
       
   127    foreach (range('a','z') as $letter) {
       
   128       if ($letterstart === $letter) {
       
   129          echo "[ <b>".$letter."</b> ] ";
       
   130       } elseif ($letter_taken[$letter] != 1) {
       
   131          echo "[ <span style=\"color:#999\">".$letter."</span> ] ";
       
   132       } else {
       
   133           echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=".$letter."\">".$letter."</a> ] ";
       
   134       }
       
   135    }
       
   136 }
       
   137 
       
   138 /*
       
   139  * Print a nice useraimed error.
       
   140  */
       
   141 function error($msg)
       
   142 {
       
   143 	// General function for printing critical errors.
       
   144 	if ($msg)
       
   145 	{
       
   146 		include_once("header.inc.php");
       
   147 	?>
       
   148 	<P><TABLE CLASS="error"><TR><TD CLASS="error"><H2>Oops! An error occured!</H2>
       
   149 	<BR>
       
   150 	<FONT STYLE="font-weight: Bold"><?= nl2br($msg) ?><BR><BR><a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT><BR></TD></TR></TABLE></P>
       
   151 	<?
       
   152 		include_once("footer.inc.php");
       
   153 		die();
       
   154 	}
       
   155 	else
       
   156 	{
       
   157 		include_once("footer.inc.php");
       
   158 		die("No error specified!");
       
   159 	}
       
   160 }
       
   161 
       
   162 /*
       
   163  * Something has been done nicely, display a message and a back button.
       
   164  */
       
   165 function message($msg)
       
   166 {
       
   167     include_once("header.inc.php");
       
   168     ?>
       
   169     <P><TABLE CLASS="messagetable"><TR><TD CLASS="message"><H2>Success!</H2>
       
   170     <BR>
       
   171 	<FONT STYLE="font-weight: Bold">
       
   172 	<P>
       
   173 	<?
       
   174     if($msg)
       
   175     {
       
   176         echo nl2br($msg);
       
   177     }
       
   178     else
       
   179     {
       
   180         echo "Successful!";
       
   181     }
       
   182     ?>
       
   183     </P>
       
   184     <BR>
       
   185     <P>
       
   186     <a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT>
       
   187     </P>
       
   188     </TD></TR></TABLE></P>
       
   189     <?
       
   190     include_once("footer.inc.php");
       
   191 }
       
   192 
       
   193 
       
   194 /*
       
   195  * Reroute a user to a cleanpage of (if passed) arg
       
   196  */
       
   197 
       
   198 function clean_page($arg='')
       
   199 {
       
   200 	if (!$arg)
       
   201 	{
       
   202 		header("Location: ".$_SERVER["PHP_SELF"]."?time=".time());
       
   203 		exit;
       
   204 	}
       
   205 	else
       
   206 	{
       
   207 		if (preg_match('!\?!si', $arg))
       
   208 		{
       
   209 			$add = "&time=";
       
   210 		}
       
   211 		else
       
   212 		{
       
   213 			$add = "?time=";
       
   214 		}
       
   215 		header("Location: $arg$add".time());
       
   216 		exit;
       
   217 	}
       
   218 }
       
   219 
       
   220 function level($l)
       
   221 {
       
   222 	if ($_SESSION["level"] >= $l)
       
   223 	{
       
   224 		return 1;
       
   225 	}
       
   226 	else
       
   227 	{
       
   228 		return 0;
       
   229 	}
       
   230 }
       
   231 
       
   232 function xs($zoneid)
       
   233 {
       
   234 	global $db;
       
   235 	if (is_numeric($zoneid) && is_numeric($_SESSION["level"]))
       
   236 	{
       
   237 		$result = $db->query("SELECT id FROM zones WHERE owner=".$_SESSION["userid"]." AND domain_id=$zoneid");
       
   238 		$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");
       
   239 
       
   240                 if ($result->numRows() == 1 || $_SESSION["level"] >= 5)
       
   241                 {
       
   242 			$_SESSION[$zoneid."_ispartial"] = 0;
       
   243 			return true;
       
   244 		}
       
   245 		elseif ($result_extra->numRows() == 1)
       
   246 		{
       
   247 			$_SESSION[$zoneid."_ispartial"] = 1;
       
   248 			return true;
       
   249 		}
       
   250 		else
       
   251 		{
       
   252 			return false;
       
   253 		}
       
   254 	}
       
   255 	else
       
   256 	{
       
   257         	return false;
       
   258         }
       
   259 }
       
   260 
       
   261 function get_status($res)
       
   262 {
       
   263 	if ($res == '0')
       
   264 	{
       
   265 		return "<FONT CLASS=\"inactive\">Inactive</FONT>";
       
   266 	}
       
   267 	elseif ($res == '1')
       
   268 	{
       
   269 		return "<FONT CLASS=\"active\">Active</FONT>";
       
   270 	}
       
   271 }
       
   272 
       
   273 function parse_template_value($val, $domain, $webip, $mailip)
       
   274 {
       
   275 	$val = str_replace('##DOMAIN##', $domain, $val);
       
   276 	$val = str_replace('##WEBIP##', $webip, $val);
       
   277 	$val = str_replace('##MAILIP##', $mailip, $val);
       
   278 	return $val;
       
   279 }
       
   280 
       
   281 
       
   282 /*
       
   283  * Validates an email address.
       
   284  * Checks if there is something before the at '@' sign and its followed by a domain and a tld of minimum 2
       
   285  * and maximum of 4 characters.
       
   286  */
       
   287 function is_valid_email($email)
       
   288 {
       
   289 	if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.([a-z]{2,6}$)", $email))
       
   290 	{
       
   291 		return false;
       
   292 	}
       
   293 	return true;
       
   294 }
       
   295 ?>