Le $type $filename n'éxiste pas.
$comment"; exit(); } else { echo "$type $filename trouvé.
"; } } /* * Vérifie si un fichier est modifiable */ function check_writable ($filename, $comment = "", $fatal = FALSE) { chmod($filename, 0666); if (is_writable($filename)) { echo "$filename est modifiable.
"; } else { echo "
$filename n'est pas modifiable.
$comment"; if ($fatal) exit(); } } /** * Vérifie l'existence de plusieurs fichiers */ function check_all_files() { echo "Vérification de l'arborescence depuis " . getcwd() . "
"; checkfile("../application", "Réimportez l'arborescence.
", "dossier"); checkfile("../system", "Réimportez l'arborescence.
", "dossier"); checkfile("../install", "Réimportez l'arborescence.
", "dossier"); // echo "Existence des polices à la racine du serveur: "; // $dir_list = split('/', getcwd()); // array_pop($dir_list); // array_pop($dir_list); // $fonts_dir = join('/', $dir_list) . '/fonts'; // checkfile($fonts_dir, "recopiez celui de application/third_party/pChart
", "dossier"); $fatal = FALSE; check_writable("../application/config/club.php", "Vous ne pourrez pas modifier la configuration du club
" . "Changez les droits sur le serveur
", $fatal); check_writable("../application/config/facturation.php", "Vous ne pourrez pas changer la configuration de la facturation
" . "Changez les droits sur le serveur
", $fatal); check_writable("../assets/images", "Vous ne pourrez pas charger d'images ni générer de diagrammes
" . "Changez les droits sur le serveur
", $fatal); check_writable("../uploads", "Vous ne pourrez pas changer le logo
" . "Changez les droits sur le serveur
", $fatal); check_writable("../uploads/restore", "Vous ne pourrez pas restaurer les sauvegardes
" . "Changez les droits sur le serveur
", $fatal); } /** * Lit les paramètres de base de données depuis un fichier de configuration */ function read_db_parameters ($filename) { $res = array(); $txt = file($filename); foreach ($txt as $line) { foreach (array('hostname', 'username', 'password', 'database') as $field) { if (preg_match("/.*($field)(.*)=\s.(.*)(';)/", $line, $matches)) { $res[$field] = $matches[3]; } } } if (isset($_GET['HOSTNAME'])) $res['hostname'] = $_GET['HOSTNAME']; if (isset($_GET['USERNAME'])) $res['username'] = $_GET['USERNAME']; if (isset($_GET['PASSWORD'])) $res['password'] = $_GET['PASSWORD']; if (isset($_GET['DATABASE'])) $res['database'] = $_GET['DATABASE']; return $res; } echo "

Installation de GVV


"; echo "server user_id=" . get_current_user() . "
"; echo "current directory=" . getcwd() . "
"; echo "

Verification des fichiers sur le serveur

"; /* * Verification de l'import de l'arborescence de GVV * */ echo "

Verification de l'arborescence

"; check_all_files(); /* * Verification de la structure de la base de donn�es */ echo "

Verification de la base de données

"; $configbase = "../application/config/database.php"; $db_params = read_db_parameters ($configbase); $serveur = $db_params['hostname']; $nom = $db_params['username']; $password = $db_params['password']; $base = $db_params['database']; /** * * Affiche un message en cas d'erreur de base de données fatale */ function fatal_db () { global $serveur, $nom, $password, $base, $configbase; $msg = "
"; $msg .= "Connexion à la base de données impossible.
"; $msg .= "vos paramètres:
"; $msg .= "serveur=$serveur
"; $msg .= "nom=$nom
"; $msg .= "mot de passe=$password
"; $msg .= "base=$base

"; $msg .= "modifiez le fichier $configbase ou configurez votre base de données MYSQL
"; $msg .= "
"; $msg .= "Exemple sous Linux:
"; $msg .= "mysql -u root -pmot_de_passe" . "
"; $msg .= "show databases;" . "
"; $msg .= "create database $base;" . "
"; $msg .= "use $base;" . "
"; $msg .= "create user $nom@localhost identified by '$password';" . "
"; $msg .= "grant all on $base.* to $nom@localhost;" . "
"; $msg .= "SHOW GRANTS FOR $nom@localhost;" . "
"; die($msg); } /** * Calcul l'URL du site */ function site_url () { $protocol = strpos(strtolower($_SERVER['REQUEST_SCHEME']),'https') === FALSE ? 'http' : 'https'; $host = $_SERVER['HTTP_HOST']; $script = $_SERVER['SCRIPT_NAME']; $params = $_SERVER['QUERY_STRING']; $currentUrl = $protocol . '://' . $host . $script . '?' . $params; $lst = preg_split ("/\//", $script); // unset($lst[2]); array_pop($lst); array_pop($lst); $script = join ("/", $lst); $url = $protocol . '://' . $host . $script; return $url; } // Verification connexion BDD $db = mysqli_connect($serveur, $nom, $password, $base) or fatal_db(); if (!mysqli_set_charset($db, "utf8")) { printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n
", mysql_error()); } else { printf("Jeu de caractères courant : %s\n
", "utf8"); } //Verification structure BDD $sql = "SHOW TABLES FROM $base"; $req = mysqli_query($db, $sql) or die('erreur sql !
'.$sql.'
'.mysqli_error($db)); echo "La connection à la base de données est correcte.
"; echo '
Detection des Tables:
'; while ($data = mysqli_fetch_row($req)) { echo '
'; echo $data[0]; } function mysql_import($filename, $db) { $file_content = file($filename); $query = ""; foreach($file_content as $sql_line){ if(trim($sql_line) != "" && strpos($sql_line, "--") === false){ $query .= $sql_line; if (substr(rtrim($query), -1) == ';'){ // echo $query . '
'; $result = mysqli_query($db, $query) or die(mysqli_error($db)); $query = ""; } } } } if(mysqli_num_rows($req) < 22){ echo '
Structure inexistante'; echo '
Création des tables de la base de données
'; mysql_import("./gvv_structure.sql", $db); echo '
Initialisation des valeurs par défaut'; mysql_import("./gvv_defaut.sql", $db); echo '
La base de données à été créée'; } else { echo "

Les tables de la base existent déjà, aucune action effectuée.
"; } //Verification utilisateurs $requete1=("SELECT * FROM users"); $resultat = mysqli_query($db, $requete1); echo '

Detection des Utilisateurs:

'; while($data = $resultat->fetch_assoc()) { // on affiche les informations de l'enregistrement en cours echo ' '.$data['username'].'
'; } if(mysqli_num_rows($resultat) < 1){ echo '
Aucun utilisateurs detectés'; echo '
Création d utilisateurs:
'; mysql_import("./initial_users.sql", $db); echo "
Après installation, vous pouvez vous connecter en utilisant testadmin/password ou testuser/password
"; } else { echo "
Les utilisateurs existent déjà, rien à faire.
"; } //Verification sécurité if(mysqli_num_rows($resultat) > 2){ } // Import éventuel de base de test // http://localhost/gvv2/install/?db=dusk_tests.sql if (array_key_exists('db', $_GET)) { echo "
Import de la base " . $_GET['db'] . "
"; mysql_import("./" . $_GET['db'], $db); } mysqli_close($db); echo "le mot de passe de testuser est password.
"; echo "le mot de passe de testadmin est password.
"; echo "N'oubliez pas de les changer
"; echo '
'; $url = site_url(); echo 'vous vouvez maintenant utiliser GVV: ' . $url .''; echo "

Fin de la procédure d'installation
"; ?>