install.php

mars 3rd, 2008 by admin Leave a reply »

För den som är intresserad av att bygga ett lite större script som användare själva ska konfigurera, kan det vara lämpligt med en installationsfil som skapar all databasinformation, filer mm. Tänkte dela med mig av en installationsfil som vi (EGKG Data) har utvecklat till en gästbok som jag även senar kommer publicera i denna blogg.

Som sagt, det är en installationsfil till en gästbok, men går väldigt lätt att modifiera till att installera vad som helst. Nu ingår det även HTML och CSS i denna koden för att få struktur och bättre utseende. Anledningen till att css’en är inbakad i samma fil är för att denna fil, efter installationen, ska raderas och då är det onödigt att ha en massa extra text i css filen som inte används.
[php]





Databas: Vänligen ange en korrekt adress”;
$ch[0] = ”0″;
$display_error1 = 1;
}
else{$error_handle[0] = ”Databas: Adress är OK”; $ch[0] = ”1″;}

if(empty($db_name)) {
$error_handle[1] = ”Databas: Vänligen ange ett korrekt databasnamn”;
$ch[1] = ”0″;
$display_error2 = 1;
}
else{$error_handle[1] = ”Databas: Databasnamn är OK”; $ch[1] = ”1″;}

//Kontrollerar användaruppgifterna för administration
if(empty($admin_u)){
$error_handle[2] = ”Användaruppgifter: Vänligen ange ett användarnamn”;
$ch[2] = ”0″;
$display_error3 = 1;
}
else{$error_handle[2] = ”Användaruppgifter: Användaruppgifter: Användarnamn är OK”; $ch[2] = ”1″;}

if(empty($admin_p)){
$error_handle[3] = ”Användaruppgifter: Vänligen ange ett lösenord”;
$ch[3] = ”0″;
$display_error4 = 1;
}
else{$error_handle[3] = ”Användaruppgifter: Lösenord är OK”; $ch[3] = ”1″;}

if(empty($admin_r)){
$error_handle[4] = ”Användaruppgifter: Vänligen upprepa lösenordet”;
$ch[4] = ”0″;
$display_error5 = 1;
}
else{$error_handle[4] = ”Användaruppgifter: Upprepat lösenord är OK”; $ch[4] = ”1″; }

if($admin_r !== $admin_p){
$error_handle[5] = ”Användaruppgifter: Lösenorden matchar inte!”;
$ch[5] = ”0″;
$display_error5 = 1;
$display_error4 = 1;
}
if($admin_r == $admin_p){
$error_handle[5] = ”Användaruppgifter: Lösenorden är OK”;
$ch[5] = ”1″;
}

}
}

?>


Installation – Databasinställningar
Fyll i nedanstående fält med korrekta uppgifter för din databas. Dessa uppgifter är nödvändiga för att vi skall kunna ansluta till databasen och skapa de tabeller som gästboken kommer använda.

/> Adress (ex localhost)
/> Databasnamn
/> Ange önskat användarnamn
/> Ange önskat lösenord (minst 6 tecken)
/> Repetera lösenordet

Se till så att mappen connection har skrivrättigheter

Felmeddelande
‘;}
if($ch[$i] == ”0″){ echo $error_handle[$i]; echo ”
”;}
if($i == 5){ echo ‘

‘;}
}

}
}

if(isset($_POST['install_do'])){
if(!isset($_GET['done'])){
//Om dessa satser stämmer fortsätter installationen
if(!empty($admin_u)){
if(!empty($admin_p)){
if(!empty($admin_r)){
if($admin_r == $admin_p){

//Testar databasanslutningen
$conn = @mysql_connect($db_adress, $db_user, $db_pass) or die(‘

Anslutning mysslyckad
Vänligen kontrollera databasuppgifterna

‘);
$try = @mysql_select_db($db_name, $conn) or die(‘

Anslutning misslyckad
Vänligen kontrollera databasnamnet

‘);

//Table för gästboken
$table_gast = ”CREATE TABLE `$db_name`.`gast` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`namn` VARCHAR( 50 ) NOT NULL ,
`ort` VARCHAR( 50 ) NOT NULL ,
`hemsida` VARCHAR( 50 ) NOT NULL,
`inlagg` VARCHAR( 1000 ) NOT NULL,
`ip` VARCHAR( 20 ) NOT NULL,
`datum` VARCHAR( 30 ) NOT NULL
) ENGINE = MYISAM ”;

//Table för inställningar
$table_settings = ”CREATE TABLE `$db_name`.`settings` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 100 ) NOT NULL ,
`pages` INT( 10 ) NOT NULL ,
`max_page` INT( 10 ) NOT NULL ,
`inlagg` INT( 100 ) NOT NULL
) ENGINE = MYISAM ”;

//Table för ban
$table_ban = ”CREATE TABLE `$db_name`.`ban` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 50 ) NOT NULL
) ENGINE = MYISAM ”;

//Table för administration
$table_sec = ”CREATE TABLE `$db_name`.`sec` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 100 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
`salt` VARCHAR( 50 ) NOT NULL,
`x` int( 5 ) NOT NULL
) ENGINE = MYISAM ”;

//Anropar variablarna som skapar tabellerna
@mysql_query($table_gast) or die(‘

Table problem
Ett problem uppstod när tablen skulle skapas!1

‘);
@mysql_query($table_settings) or die(‘

Table problem
Ett problem uppstod när tablen skulle skapas!1

‘);
@mysql_query($table_sec) or die(‘

Table problem
Ett problem uppstod när tablen skulle skapas!3

‘);
@mysql_query($table_ban) or die(‘

Table problem
Ett problem uppstod när tablen skulle skapas!4

‘);

//Funktion som hashar lösenordet
function hashGen ($admin_p, $x){
$losenord = md5($admin_p);
for($i = 0; $i <= $x; $i++){ $losenord = sha1($losenord); } return $losenord; } //Funktion som returnar ett salt function saltGen ($y, $x){ $salt = md5($y); for($i = 0; $i <= $x; $i++){ $salt = sha1($salt); } return $salt; } //Funktion som returnar det slutgiltgliga lösenordet med salt function passGen ($baked_hash, $baked_salt){ $pass = sha1("$baked_hash"."$baked_salt"); return $pass; } //Skickar lösenordet till funktionen, tar emot när det är hashat $x = mt_rand(10, 99); $y = mt_rand(1000, 9999999); //Anropar tre funktioner som genererar och returnar salt och lösenord $baked_hash = hashGen($admin_p, $x); $baked_salt = saltGen($y, $x); $baked_pass = passGen($baked_hash, $baked_salt); //Skickar användaruppgifter till sec $insert_sec = "INSERT INTO sec (user, pass, salt, x) VALUES ('$admin_u', '$baked_pass', '$baked_salt', '$x')"; @mysql_query($insert_sec) or die('

Table problem
Det gick inte att skicka uppgifter till databasen!

‘);

//Skickar inställningar till settings
$nmn = ”iGäst”;
$pgs = 10;
$lgt = 1000;
$mxs = 3;
$insert_settings = ”INSERT INTO settings (title, pages, max_page, inlagg) VALUES (‘$nmn’, ‘$pgs’, ‘$mxs’, ‘$lgt’)”;
@mysql_query($insert_settings) or die(‘

Table problem
Det gick inte att skicka uppgifter till databasen!

‘);

//Skapar connect.php och fyller i databas inställningar
$myFile = ”connection/connect.php”; //sökväg och filnamn
$fh = fopen(”$myFile”, ‘w’) or die(‘

Fil problem
Det gick inte att skapa filen!
Kontrollera rättigheter.

‘); //skapar filen och öppnar den för att skriva

//innehåll i filen som skapas
$stringData = ‘‘;
fwrite($fh, $stringData); //skriver datan till filen
fclose($fh); //stänger filen

//Byter sida
header(”location:install.php?done”);
}
}
}
}
}
}
if(isset($_GET['done'])){
echo ‘Installationen lyckades

* Radera filen install.php!
* Sätt tillbaka korrekt rättigheter på mappen connection!
* Kontrollpanelen hittas i mappen sec och heter admin.php!

‘;
}
?>




[/php]

Advertisement

Kommentera