install/index.php
author rejo
Sat, 03 May 2008 21:16:50 +0000
changeset 149 0f9739c8db48
parent 146 0756319df2d0
child 150 59c42a716f95
permissions -rw-r--r--
[feladat @ 255] Fixed a missing variable definition in the installer.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
142
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     1
<?php
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     2
149
0f9739c8db48 [feladat @ 255]
rejo
parents: 146
diff changeset
     3
$local_config_file = "../inc/config.inc.php";
0f9739c8db48 [feladat @ 255]
rejo
parents: 146
diff changeset
     4
142
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     5
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     6
echo "<html>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     7
echo " <head>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     8
echo "  <title>Poweradmin</title>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
     9
echo "  <link rel=stylesheet href=\"../style/example.inc.php\" type=\"text/css\">\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    10
echo " </head>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    11
echo " <body>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    12
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    13
if (!isset($_POST['step']) || !is_numeric($_POST['step'])) {
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    14
	$step = 1;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    15
} else {
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    16
	$step = $_POST['step'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    17
}
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    18
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    19
echo "  <h1>Poweradmin</h1>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    20
echo "  <h2>Installation step " . $step . "</h2>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    21
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    22
switch($step) {
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    23
	case 1:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    24
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    25
		echo "<p>This installer expects you to have a PowerDNS database accessable from this server. This installer also expects you to have never ran Poweradmin before, or that you want to overwrite the Poweradmin part of the database. If you have had Poweradmin running before, any data in the following tables will be destroyed:</p>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    26
		echo "<ul><li>perm_items</li><li>perm_templ</li><li>perm_templ_items</li><li>users</li><li>zones</li></ul>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    27
		echo "<p>This installer will, of course, not touch the data in the PowerDNS tables of the database. However, it is, of course, recommended you create a backup of your database before proceeding.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    28
		echo "<p>Finaly, if you see any errors during the installation process, a problem report would be. You can report problems (and ask for help) on the <a href=\"https://www.poweradmin.org/trac/wiki/Mailinglists\">poweradmin-users</a> mailinglist or you can create <a href=\"https://www.poweradmin.org/trac/newticket\">a ticket</a> in the ticketsystem.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    29
		echo "<p>Do you want to proceed now?</p>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    30
		echo "<form method=\"post\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    31
		echo "<input type=\"hidden\" name=\"step\" value=\"" . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    32
		echo "<input type=\"submit\" name=\"submit\" value=\"Go to step " . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    33
		echo "</form>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    34
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    35
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    36
	case 2:	
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    37
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    38
		echo "<p>To prepare the database for using Poweradmin, the installer needs to modify the PowerDNS database. It'll add a number of tables and it'll fill these tables with some data. If the tables are already present, the installer will drop them first.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    39
		echo "<p>To do all of this, the installer needs to access the database with an account which has sufficient rights. If you trust the installer, you may give it the username and password of the database user root. Otherwise, make sure the user has enough rights, before actually proceeding.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    40
		echo "<form method=\"post\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    41
		echo "<table>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    42
		echo "<tr><td>Username</td><td><input type=\"text\" name=\"user\" value=\"\"></td><td>The username to use to connect to the database, make sure the username has sufficient rights to perform administrative task to the PowerDNS database (e.g. \"root\").</td></tr>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    43
		echo "<tr><td>Password</td><td><input type=\"password\" name=\"pass\" value=\"\"></td><td>The password for this username.</td></tr>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    44
		echo "<tr><td>Hostname</td><td><input type=\"text\" name=\"host\" value=\"\"></td><td>The hostname on which the PowerDNS database resides. Frequently, this will be \"localhost\".</td></tr>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    45
		echo "<tr><td>Database</td><td><input type=\"text\" name=\"name\" value=\"\"></td><td>The name of the PowerDNS database.</td></tr>\n";
146
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    46
		echo "<tr><td>Database type</td><td><select name=\"type\"><option value=\"mysql\">MySQL</option><option value=\"pgsql\">PostgreSQL</option></td><td>The type PowerDNS database.</td></tr>\n";
142
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    47
		echo "</table>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    48
		echo "<input type=\"hidden\" name=\"step\" value=\"" . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    49
		echo "<input type=\"submit\" name=\"submit\" value=\"Go to step " . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    50
		echo "</form>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    51
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    52
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    53
	case 3:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    54
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    55
		echo "<p>Updating database... ";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    56
		include_once("../inc/config-me.inc.php");
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    57
		include_once("database-structure.inc.php");
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    58
		$db_user = $_POST['user'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    59
		$db_pass = $_POST['pass'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    60
		$db_host = $_POST['host'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    61
		$db_name = $_POST['name'];
146
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    62
		$db_type = $_POST['type'];
142
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    63
		require_once("../inc/database.inc.php");
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    64
		$db = dbConnect();
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    65
		$db->loadModule('Manager');
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    66
		$db->loadModule('Extended');
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    67
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    68
		$current_tables = $db->listTables();
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    69
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    70
		foreach ($def_tables as $table) {
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    71
			if (in_array($table['table_name'], $current_tables)) $db->dropTable($table['table_name']);
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    72
			$db->createTable($table['table_name'], $table['fields']);
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    73
		}
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    74
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    75
		$fill_perm_items = $db->prepare('INSERT INTO perm_items VALUES (?, ?, ?)');
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    76
		$db->extended->executeMultiple($fill_perm_items, $def_permissions);
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    77
		$fill_perm_items->free();
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    78
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    79
		foreach ($def_remaining_queries as $query) {
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    80
			$db->query($query);
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    81
		}
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    82
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    83
		echo "done!</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    84
146
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    85
		echo "<p>We have now updated the PowerDNS database to work with Poweradmin. You now want to give limited rights to Poweradmin so it can update the data in the tables. To do this, you should create a new user and give it rights to select, delete, insert and update records in the PowerDNS database. ";
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    86
		if ($db_type=='mysql') {
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    87
			echo "In MySQL should now perform the following command:</p>";
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    88
			echo "<p><tt>GRANT SELECT, INSERT, UPDATE, DELETE<BR>ON powerdns-database.*<br>TO 'poweradmin-user'@'localhost'<br>IDENTIFIED BY 'poweradmin-password';</tt></p>";
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    89
		} elseif ($db_type == 'pgsql') {
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    90
			echo "<p>On PgSQL you would use:</p>";
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    91
			echo "<p><tt>$ createuser poweradmin-user<br>Shall the new role be a superuser? (y/n) n<br>Shall the new user be allowed to create databases? (y/n) n<br>Shall the new user be allowed to create more new users? (y/n) n<br>CREATE USER<br>$ psql powerdns-database<br>psql> GRANT  SELECT, INSERT, DELETE, UPDATE<br>ON powerdns-database<br>TO poweradmin-user;</tt></p>";
0756319df2d0 [feladat @ 252]
peter
parents: 142
diff changeset
    92
		}
142
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    93
		echo "<p>After you have added the new user, proceed with this installation procedure.</p>\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    94
		echo "<form method=\"post\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    95
		echo "<input type=\"hidden\" name=\"host\" value=\"" . $db_host . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    96
		echo "<input type=\"hidden\" name=\"name\" value=\"" . $db_name . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    97
		echo "<input type=\"hidden\" name=\"type\" value=\"" . $db_type . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    98
		echo "<input type=\"hidden\" name=\"step\" value=\"" . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
    99
		echo "<input type=\"submit\" name=\"submit\" value=\"Go to step " . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   100
		echo "</form>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   101
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   102
	
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   103
	case 4:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   104
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   105
		$db_host = $_POST['host'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   106
		$db_name = $_POST['name'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   107
		$db_type = $_POST['type'];
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   108
		echo "<p>Now we will put together the configuration. To do so, I need some details:</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   109
		echo "<form method=\"post\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   110
		echo "<table>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   111
		echo "<tr><td>Username</td><td><input type=\"text\" name=\"db_user\" value=\"\"></td><td>The username as created in the previous step.</td></tr>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   112
		echo "<tr><td>Password</td><td><input type=\"text\" name=\"db_pass\" value=\"\"></td><td>The password for this username.</td></tr>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   113
		echo "<tr><td>Hostmaster</td><td><input type=\"text\" name=\"dns_hostmaster\" value=\"\"></td><td>When creating SOA records and no hostmaster is provided, this value here will be used. Should be in the form \"hostmaster.example.net\".</td></tr>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   114
		echo "<tr><td>Primary nameserver</td><td><input type=\"text\" name=\"dns_ns1\" value=\"\"></td><td>When creating new zones using the template, this value will be used as primary nameserver. Should be like \"ns1.example.net\".</td></tr>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   115
		echo "<tr><td>Secondary nameserver</td><td><input type=\"text\" name=\"dns_ns2\" value=\"\"></td><td>When creating new zones using the template, this value will be used as secondary nameserver. Should be like \"ns2.example.net\".</td></tr>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   116
		echo "</table>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   117
		echo "<input type=\"hidden\" name=\"db_host\" value=\"" . $db_host . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   118
		echo "<input type=\"hidden\" name=\"db_name\" value=\"" . $db_name . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   119
		echo "<input type=\"hidden\" name=\"db_type\" value=\"" . $db_type . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   120
		echo "<input type=\"hidden\" name=\"step\" value=\"" . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   121
		echo "<input type=\"submit\" name=\"submit\" value=\"Go to step " . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   122
		echo "</form>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   123
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   124
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   125
	case 5:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   126
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   127
		echo "<p>The configuration is printed here. You should now create the file " . $local_config_file . " in the Poweradmin root directory yourself. It should contain the following few lines:</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   128
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   129
		echo "<pre>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   130
		echo "\$db_host\t\t= \"" . $_POST['db_host'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   131
			"\$db_user\t\t= \"" . $_POST['db_user'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   132
			"\$db_pass\t\t= \"" . $_POST['db_pass'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   133
			"\$db_name\t\t= \"" . $_POST['db_name'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   134
			"\$db_type\t\t= \"" . $_POST['db_type'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   135
			"\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   136
			"\$dns_hostmaster\t\t= \"" . $_POST['dns_hostmaster'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   137
			"\$dns_ns1\t\t= \"" . $_POST['dns_ns1'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   138
			"\$dns_ns2\t\t= \"" . $_POST['dns_ns2'] . "\";\n" .
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   139
			"\n";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   140
		echo "</pre>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   141
		echo "<form method=\"post\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   142
		echo "<input type=\"hidden\" name=\"step\" value=\"" . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   143
		echo "<input type=\"submit\" name=\"submit\" value=\"Go to step " . $step . "\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   144
		echo "</form>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   145
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   146
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   147
	case 6:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   148
		$step++;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   149
		echo "<p>Now we have finished the configuration, you should remove the directory \"install/\" from the Poweradmin root directory. You will not be able to use the file if it exists. Do it now.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   150
		echo "<p>After you have removed the file, you can login to <a href=\"index.php\">Poweradmin</a> with username \"admin\" and password \"admin\". You are highly encouraged to change these as soon as you are logged in.</p>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   151
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   152
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   153
	default:
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   154
		break;
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   155
}
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   156
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   157
echo "<div class=\"footer\">";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   158
echo "<a href=\"https://www.poweradmin.org/\">a complete(r) <strong>poweradmin</strong></a> - <a href=\"https://www.poweradmin.org/trac/wiki/Credits\">credits</a>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   159
echo "</div></body></html>";
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   160
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   161
?>
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   162
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   163
edd0c3ee3e1d [feladat @ 248]
rejo
parents:
diff changeset
   164