Le .htaccess est absent.
Si vous ne savez pas de quoi il s\'agit, contactez le responsable du site.
Sinon, veuillez créer un fichier nommé .htaccess à la racine du site et y copier-coller la ligne suivante:
' . $contenu . '
');
// Pour le créer
// laisser commenté, la création risque d'échouer
// $fichier = fopen('.htaccess', 'w');
// fputs($fichier, $contenu);
// fclose($fichier);
// chmod('.htaccess', 0666); // mettre 0644 en production
}
// extensions de php
// nécessité de "imagick" OU de "gd" (on préfère imagick)
// "dom" n'est pas nécessaire pour l'instant
//$extensions = ['imagick', 'gd', 'zip', 'mbstring', 'dom'];
$extensions = ['zip', 'mbstring', 'dom'];
foreach($extensions as $extension)
{
if(!extension_loaded($extension))
{
echo("l'extension " . $extension . ' est manquante
');
}
}
if(!extension_loaded('imagick') && !extension_loaded('gd'))
{
echo("il manque une de ces extensions au choix: imagick (de préférence) ou gd
");
}
// dans le cas de l'utilisation d'une base de données, le fichiers zip devrait contenir un "dump" (un fichier .sql),
// à voir si php est capable d'obtenir ou redonner ce fichier à la BDD
// création des dossiers
// attention: ne fonctionne pas sans une manipulation préalable
// - créer le dossier data à la racine du site
// - lui donner les droits du dossier data pour 777
// droits en octal
$droitsDossiers = 0777;
$droitsFichiers = 0666;
if(!file_exists('data') && !mkdir('data'))
{
$erreur = 'data';
$title = 'Dossier data absent';
require('view/backup.php');
exit();
}
if(!touch('data')) // test autorisation en écriture
{
$erreur = 'data';
$title = 'Écriture non autorisée dans le dossier data';
require('view/backup.php');
exit();
}
if(!file_exists('data/index.php'))
{
createIndexPHP('data/index.php', $droitsFichiers);
}
$listePages = array('menu', 'melaine', 'musique', 'discographie', 'presse', 'livres', 'jaime', 'peinture', 'archives', 'legal');
$sousDossiers = array('html', 'html-maxi-images', 'images', 'images-mini');
foreach ($listePages as $page)
{
if(!file_exists('data/' . $page))
{
mkdir('data/' . $page);
chmod('data/' . $page, $droitsDossiers);
}
if(!file_exists('data/' . $page . '/index.php'))
{
createIndexPHP('data/' . $page . '/index.php', $droitsFichiers);
}
if(!file_exists('data/' . $page . '/positions.json'))
{
// création de fichiers VIDES (gestion par le modèle)
touch('data/' . $page . '/positions.json');
chmod('data/' . $page . '/positions.json', $droitsFichiers);
}
foreach ($sousDossiers as $sousDossier)
{
if(!file_exists('data/' . $page . '/' . $sousDossier))
{
mkdir('data/' . $page . '/' . $sousDossier);
chmod('data/' . $page . '/' . $sousDossier, $droitsDossiers);
}
if(!file_exists('data/' . $page . '/' . $sousDossier . '/index.php'))
{
createIndexPHP('data/' . $page . '/' . $sousDossier . '/index.php', $droitsFichiers);
}
}
// if(!file_exists('data/' . $page . '/multimedia'))
// {
// mkdir('data/' . $page . '/multimedia');
// chmod('data/' . $page . '/multimedia', 0777);
// }
}
// dossier "json" dans discographie
if(!file_exists('data/discographie/json'))
{
mkdir('data/discographie/json');
chmod('data/discographie/json', $droitsDossiers);
}
if(!file_exists('data/discographie/json/index.php'))
{
createIndexPHP('data/discographie/json/index.php', $droitsFichiers);
}
// fichiers temporaires pour upload des grosses archives
if(!file_exists('data/tmp'))
{
mkdir('data/tmp');
chmod('data/tmp', $droitsDossiers);
}
if(!file_exists('data/tmp/index.php'))
{
createIndexPHP('data/tmp/index.php', $droitsFichiers);
}
// créer le melainePHP.zip
if(!file_exists("data/melainePHP.zip"))
{
require('controller/backup.php');
createZipMelainePHP();
}
// mot de passe
if(!file_exists('data/password.txt'))
{
touch('data/password.txt');
chmod('data/password.txt', 0600);
}
existPassword(); // création si fichier vide
}
function createIndexPHP($path, $droitsFichiers)
{
$content = "