<?php require("tools.php"); require("usertypes.php"); $dbh=db_open(); if (isset($_POST["mode"]) and $_POST["mode"]=="finish") { if (isset($_POST["adminpass1"]) and isset($_POST["adminpass2"]) and $_POST["adminpass1"]!=$_POST["adminpass2"]) { header("Location: setup.php"); exit; } } function create_country_list() { global $dbh; $countries = split("\n", $_POST["countries"]); foreach ($countries as $country) { $query = "INSERT INTO country (name) VALUES ('{$country}')"; db_exec($dbh, $query); } } function has_countries() { global $dbh; $result=db_query($dbh, "SELECT id FROM country"); return (db_num_rows($result)!=0); } function country_selbox($varname, $default=0) { global $dbh; $result=db_query($dbh, "SELECT * FROM country ORDER BY name"); printf("<SELECT name=\"%s\">", $varname); while ($row=db_fetch_array($result)) { printf("<OPTION value=\"%d\"%s>%s</OPTION>", $row["id"], ($row["id"]==$default) ? " selected" : "", $row["name"]); } print("</SELECT>"); } function client_selbox($varname, $default=0) { global $dbh; $result=db_query($dbh, "SELECT cl.id, cl.firstname, cl.lastname, ". "cl.town, co.name FROM client cl, country co ". "WHERE cl.country=co.id ORDER BY cl.firstname, ". "cl.lastname"); printf("<SELECT name=\"%s\">", $varname); while ($row=db_fetch_array($result)) { printf("<OPTION value=\"%d\"%s>%s %s (%s, %s)</OPTION>", $row["id"], ($row["id"]==$default) ? " selected" : "", $row["firstname"], $row["lastname"], $row["town"], $row["name"]); } print("</SELECT>"); } function enter_personal_data() { global $dbh; $query = sprintf("INSERT INTO client (firstname, lastname, ". "address1, country, town, zipcode, state, ". "active) VALUES ('%s', '%s', '%s', %d, '%s', ". "'%05d', '%s', true)", $_POST["firstname"], $_POST["lastname"], $_POST["address"], $_POST["country"], $_POST["town"], $_POST["zipcode"], $_POST["state"]); db_exec($dbh, $query); } function has_personal_data() { global $dbh; $result=db_query($dbh, "SELECT id FROM client"); return (db_num_rows($result)!=0); } function setup_admin_account() { global $dbh; $query = sprintf("INSERT INTO sysuser (name, type, home, shell, ". "password, client, toupdate, md5pass, sysuid) ". "VALUES ('%s', %d, '/root', true, '%s', ". "%d, false, '%s', 0)", $_POST["adminuser"], cUSRADMIN, $_POST["adminpass1"], $_POST["clientid"], md5($_POST["adminpass1"])); db_exec($dbh, $query); } function has_admin_account() { global $dbh; $query=sprintf("SELECT id FROM sysuser WHERE type=%d", cUSRADMIN); $result=db_query($dbh, $query); return (db_num_rows($result)!=0); } include("commonhead.php"); if (!isset($_POST["mode"])) { $mode = "step1"; } else { $mode = $_POST["mode"]; } switch ($mode) : case "step1": ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> <input type="hidden" name="mode" value="step2"> <? if (!has_countries()) : ?> <table> <tr><td><?php echo _("Initial country list (each line one country)"); ?></td><td><textarea name="countries"></textarea></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="submit" value="<?php echo _("generate country list"); ?>"></td></tr> </table> <?php else: echo _("You already have countries in your database"); ?> <br/><input type="submit" name="submit" value="<?php echo _("Skip to step 2"); ?>"> <?php endif; ?> </form> <?php break; case "step2": if (!has_countries()) create_country_list(); ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> <input type="hidden" name="mode" value="step3"> <? if (!has_personal_data()) :?> <table> <tr><td><?php echo _("First name"); ?></td><td><input type="text" name="firstname"></td></tr> <tr><td><?php echo _("Last name"); ?></td><td><input type="text" name="lastname"></td></tr> <tr><td><?php echo _("Address"); ?></td><td><input type="text" name="address"></td></tr> <tr><td><?php echo _("ZIP Code"); ?></td><td><input type="text" name="zipcode"></td></tr> <tr><td><?php echo _("City/Town/Village"); ?></td><td><input type="text" name="town"></td></tr> <tr><td><?php echo _("State"); ?></td><td><input type="text" name="state"></td></tr> <tr><td><?php echo _("Country"); ?></td><td><?php country_selbox("country"); ?></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="submit" value="<?php echo _("Submit personal data"); ?>"></td></tr> </table> <? else: echo _("You already have personal data in your database"); ?> <br/><input type="submit" name="submit" value="<?php echo _("Skip to step 3"); ?>"> <?php endif; ?> </form> <?php break; case "step3": if (!has_personal_data()) enter_personal_data(); ?> <form action="<? echo $PHP_SELF; ?>" method="post"> <input type="hidden" name="mode" value="finish"> <?php if (!has_admin_account()): ?> <table> <tr><td><?php echo _("Administrator client account"); ?></td><td><?php client_selbox("clientid"); ?></td></tr> <tr><td><?php echo _("Administrator username"); ?></td><td><input type="text" name="adminuser"></td></tr> <tr><td><?php echo _("Administrator password"); ?></td><td><input type="password" name="adminpass1"></td></tr> <tr><td><?php echo _("Administrator password (repeat)"); ?></td><td><input type="password" name="adminpass2"></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="submit" value="<?php echo _("Submit administrator data"); ?>"></td></tr> </table> <?php else: echo _("You already have an admin user in your database"); ?> <br/><input type="submit" name="submit" value="<?php echo _("finish"); ?>"> <?php endif; ?> </form> <?php break; case "finish": if (!has_admin_account()) setup_admin_account(); print(_("Congratulations, you are done with the initial setup!")); printf(_("You may now log in at the \"<a href=\"%s\">Start page</a>\"."), "start.php"); break; default: ?> You are trying to trick me. I don't like this <?php endswitch; ?> </body> </html>