annotate install.php @ 89:e37ef9a81737 tip

Merge
author Franck Deroche <franck@defr.org>
date Thu, 13 Dec 2018 00:55:42 +0100
parents e08186e4ed77
children
rev   line source
webmaster@70 1 <?php
webmaster@70 2 require_once "classes.php";
webmaster@70 3 $req = new Requete();
webmaster@70 4 $pB = $req->Get('postBack', 'POST', false);
webmaster@70 5 $canWrite = is_writable('includes');
webmaster@70 6 if(file_exists('includes/config.php'))
webmaster@70 7 {
webmaster@70 8 $tpl = '<p>Un fichier de configuration a déja été crée. Par mesure
webmaster@70 9 de sécurité, il est necessaire de supprimer manuellement ce fichier
webmaster@70 10 avant de pouvoir tenter une nouvelle installation</p>';
webmaster@70 11 }
webmaster@70 12 else if($pB)
webmaster@70 13 {
webmaster@70 14 // 1. Vérification des identifiants MySQL, création des tables
webmaster@70 15 $db_host = $req->Get('db_host');
webmaster@70 16 $db_user = $req->Get('db_user');
webmaster@70 17 $db_pass = $req->Get('db_pass');
webmaster@70 18 $db_db = $req->Get('db_db');
webmaster@70 19 $myDB = new DataAccess($db_host, $db_user, $db_pass, $db_db);
webmaster@70 20 if($myDB->isInError())
webmaster@70 21 {
webmaster@70 22 if($myDB->link === false)
webmaster@70 23 $erreur = "Le triplet (hôte, identifiant, mot de passe) est erroné)";
webmaster@70 24 else
webmaster@70 25 $erreur = "La base de données mentionné n'existe pas";
webmaster@70 26
webmaster@70 27 $tpl = $erreur;
webmaster@70 28 }
webmaster@70 29 else
webmaster@70 30 {
webmaster@70 31 // Requete de créations des 5 tables.
webmaster@70 32 $myDB->Query("CREATE TABLE Brouillons(
webmaster@70 33 id_brouillon INTEGER NOT NULL auto_increment,
webmaster@70 34 Titre VARCHAR(70),
webmaster@70 35 Contenu TEXT,
webmaster@70 36 PRIMARY KEY (id_brouillon)
webmaster@70 37 )");
webmaster@70 38 $myDB->Query("CREATE TABLE `Commentaires` (
webmaster@70 39 `num_comm` int(11) NOT NULL auto_increment,
webmaster@70 40 `MessId` int(11) NOT NULL default '0',
webmaster@70 41 `Auteur` varchar(60) NOT NULL default '',
webmaster@70 42 `Adresse` varchar(150) NOT NULL default '',
webmaster@70 43 `AdresseMail` varchar(60) default NULL,
webmaster@70 44 `Comment` mediumtext NOT NULL,
webmaster@70 45 `DateComment` datetime default '0000-00-00 00:00:00',
webmaster@70 46 `isTrackback` tinyint(4) NOT NULL default '0',
webmaster@70 47 `ip` varchar(25) NOT NULL default '',
webmaster@70 48 `Visible` tinyint(4) NOT NULL default '1',
webmaster@70 49 PRIMARY KEY (`num_comm`),
webmaster@70 50 KEY `Visible` (`Visible`),
webmaster@70 51 KEY `Parent` (`MessId`)
webmaster@70 52 )");
webmaster@70 53 $myDB->Query("CREATE TABLE `Mess` (
webmaster@70 54 `num_mess` int(11) NOT NULL auto_increment,
webmaster@70 55 `Titre` varchar(70) NOT NULL default '',
webmaster@70 56 `DatePost` datetime NOT NULL default '0000-00-00 00:00:00',
webmaster@70 57 `num_version` varchar(30) NOT NULL default '0',
webmaster@70 58 `NbCommentaires` smallint(6) NOT NULL default '0',
webmaster@70 59 `Message` longtext NOT NULL,
webmaster@70 60 `CommentOpen` tinyint(1) NOT NULL default '0',
webmaster@70 61 `Emot` varchar(20) default NULL,
webmaster@70 62 PRIMARY KEY (`num_mess`)
webmaster@70 63 )");
webmaster@70 64 $myDB->Query("CREATE TABLE `Tags` (
webmaster@70 65 `idTag` int(11) NOT NULL auto_increment,
webmaster@70 66 `Tag` varchar(25) NOT NULL default '',
webmaster@70 67 PRIMARY KEY (`idTag`),
webmaster@70 68 KEY `Tag` (`Tag`)
webmaster@70 69 )");
webmaster@70 70 $myDB->Query("CREATE TABLE `Lien_Tags_Posts` (
webmaster@70 71 `idLien` int(11) NOT NULL auto_increment,
webmaster@70 72 `idTag` int(11) NOT NULL default '0',
webmaster@70 73 `idMess` int(11) NOT NULL default '0',
webmaster@70 74 PRIMARY KEY (`idLien`),
webmaster@70 75 KEY `idTag` (`idTag`),
webmaster@70 76 KEY `idMess` (`idMess`)
webmaster@70 77 )");
webmaster@70 78 $tpl = "Yoopii tout bon au niveau de la base de données :-)";
webmaster@70 79
webmaster@70 80 // On va maintenant obtenir quelques renseignements supplémentaires
webmaster@70 81 // pour finaliser le fichier de configuration
webmaster@70 82 $akismet = $req->Get('akismet');
webmaster@70 83 $mail = $req->Get('mail');
webmaster@70 84 $dg = $req->Get('default_gravatar');
webmaster@70 85 $blog_url = $req->Get('blog_url');
webmaster@70 86 $conf =
webmaster@70 87 "<?php
webmaster@70 88 // Connexion à la base de données
webmaster@70 89 define('DB_HOST', '$db_host');
webmaster@70 90 define('DB_USER', '$db_user');
webmaster@70 91 define('DB_PASSWORD', '$db_pass');
webmaster@70 92 define('DB_NAME', '$db_db');
webmaster@70 93
webmaster@70 94 // Informations de contact
webmaster@70 95 define('BLOG_URL', '$blog_url');
webmaster@70 96 define('ADMIN_MAIL', '$mail');
webmaster@70 97
webmaster@70 98 // Image par défaut des auteurs des commentaires
webmaster@70 99 define('BLOG_DEFAULT_GRAVATAR', '$dg');
webmaster@70 100
webmaster@70 101 // Clé d'authentification pour l'utilisation du service Akismet
webmaster@70 102 define('AKISMET_API_KEY', '$akismet');
webmaster@70 103 ?>
webmaster@70 104 ";
webmaster@70 105 }
webmaster@70 106
webmaster@70 107 if(!isset($erreur))
webmaster@70 108 {
webmaster@70 109 if($canWrite)
webmaster@70 110 {
webmaster@70 111 file_put_contents('includes/config.php', $conf);
webmaster@70 112 }
webmaster@70 113 else
webmaster@70 114 {
webmaster@70 115 $tpl = "
webmaster@70 116 <p>Ce script ne peut pas écrire dans votre dossier includes/.
webmaster@70 117 Par conséquent, il vous faudra de vous même y créer un fichier
webmaster@70 118 nommé <strong>config.php</strong> et y copier les lignes
webmaster@70 119 suivantes:</p>
webmaster@70 120 <pre>" . $conf . "</pre>";
webmaster@70 121 }
webmaster@70 122 }
webmaster@70 123
webmaster@70 124 //3. Génération du fichier .htpass
webmaster@70 125 $login = $req->Get('login');
webmaster@70 126 $password = $req->Get('password');
webmaster@70 127 system("htpasswd -cbm .htpass '$login' '$password'");
webmaster@70 128 }
webmaster@70 129 else
webmaster@70 130 {
webmaster@70 131 $url = "http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']);
webmaster@70 132 $tpl = new Template('install_form.xml');
webmaster@70 133 $tpl->setParams(array('#url@value' => $url));
webmaster@70 134 }
webmaster@70 135 header('Content-Type: text/html; charset=utf-8');
webmaster@70 136 ?>
webmaster@70 137 <!DOCTYPE html>
webmaster@70 138 <html>
webmaster@70 139 <head>
webmaster@70 140 <title>Installation</title>
webmaster@70 141 <link rel='stylesheet' type='text/css' href='css/install.css' />
webmaster@70 142 </head>
webmaster@70 143 <body id='Main'>
webmaster@70 144 <h1>Installation de votre weblog</h1>
webmaster@70 145 <?php
webmaster@70 146 echo $tpl;
webmaster@70 147 ?>
webmaster@70 148 </body>
webmaster@70 149 </html>