214 righe
5.8 KiB
PHP
Executable File
214 righe
5.8 KiB
PHP
Executable File
<?php require "debut.inc.php"; ?>
|
|
|
|
|
|
<?php
|
|
|
|
|
|
function creerMiniature($cheminComplet, $adresseImage, $nomImage) {
|
|
if (!file_exists($cheminComplet . "/400/" . $nomImage)) {
|
|
$image = imagecreatefromjpeg($adresseImage);
|
|
$dimensions = getimagesize($adresseImage);
|
|
$nouvHauteur = ((400 * $dimensions[1]) / $dimensions[0]);
|
|
$imageSrt = imagecreatetruecolor(400, $nouvHauteur);
|
|
imagecopyresampled($imageSrt, $image, 0, 0, 0, 0, 400, $nouvHauteur, $dimensions[0], $dimensions[1]);
|
|
imagejpeg($imageSrt, $cheminComplet . "/400/" . $nomImage);
|
|
imagedestroy($imageSrt);
|
|
imagedestroy($image);
|
|
}
|
|
if (!file_exists($cheminComplet . "/800/" . $nomImage)) {
|
|
$image = imagecreatefromjpeg($adresseImage);
|
|
$dimensions = getimagesize($adresseImage);
|
|
$nouvHauteur = ((800 * $dimensions[1]) / $dimensions[0]);
|
|
$imageSrt = imagecreatetruecolor(800, $nouvHauteur);
|
|
imagecopyresampled($imageSrt, $image, 0, 0, 0, 0, 800, $nouvHauteur, $dimensions[0], $dimensions[1]);
|
|
imagejpeg($imageSrt, $cheminComplet . "/800/" . $nomImage);
|
|
imagedestroy($imageSrt);
|
|
imagedestroy($image);
|
|
}
|
|
}
|
|
?>
|
|
|
|
<main>
|
|
|
|
<section class="gallerie">
|
|
|
|
<?php if (preg_match("#\.\.#", $_GET['chemin'])) {
|
|
exit("Par sécurité, .. ne peut être utilisé dans un chemin");
|
|
|
|
} else {
|
|
$cheminComplet = "catalogue/" . $_GET['chemin'] . "";
|
|
|
|
if (!file_exists($cheminComplet . "/400")) {
|
|
mkdir($cheminComplet . "/400");
|
|
}
|
|
|
|
if (!file_exists($cheminComplet . "/800")) {
|
|
mkdir($cheminComplet . "/800");
|
|
}
|
|
|
|
if (!file_exists($cheminComplet . "/comms")) {
|
|
mkdir($cheminComplet . "/comms");
|
|
}
|
|
|
|
$listeElements = new DirectoryIterator($cheminComplet);
|
|
|
|
$nbElementsAffiches = 0;
|
|
foreach($listeElements as $listeElements) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((!$listeElements->isDot()) AND ($listeElements->getFilename() !== "400") AND ($listeElements->getFilename() !== "800") AND ($listeElements->getFilename() !== "comms")) { // Ignore les éléments "." et ".." ainsi que les dossiers d'images redimensionnées
|
|
|
|
$adresseImage = $cheminComplet . "/" . $listeElements->getFilename();
|
|
|
|
if (is_dir($adresseImage)) { ?>
|
|
|
|
<div class="element dossier">
|
|
<a href="index.php?chemin=<?php if (!empty($_GET['chemin'])) {
|
|
echo $_GET['chemin'] . "/" . $listeElements->getFilename();
|
|
} else {
|
|
echo $listeElements->getFilename();
|
|
}
|
|
|
|
|
|
?>">
|
|
<img src="<?php echo $cheminComplet . "/" . $listeElements->getFilename() . "/400/index.jpg"; ?>">
|
|
<div class="nomElementDossier"><?php echo $listeElements->getFilename(); ?></div>
|
|
</a>
|
|
</div>
|
|
|
|
<?php
|
|
} else if (is_file($adresseImage)) {
|
|
creerMiniature($cheminComplet, $adresseImage, $listeElements->getFilename())
|
|
?>
|
|
<div class="element image<?php
|
|
$dimensions = getimagesize($adresseImage);
|
|
|
|
if ($dimensions[0] > $dimensions[1]) {
|
|
echo " paysage";
|
|
} else {
|
|
echo " portrait";
|
|
}
|
|
|
|
|
|
?>">
|
|
<a href="<?php echo $cheminComplet . "/" . $listeElements->getFilename(); ?>" data-title="Image créée par Cécile Chevallier et diffusée sous CC BY-SA 4.0." data-lightbox="<?php echo $listeElements->getFilename(); ?>">
|
|
<img src="<?php
|
|
|
|
if ($dimensions[0] > $dimensions[1]) {
|
|
echo $cheminComplet . "/800/" . $listeElements->getFilename();
|
|
} else {
|
|
echo $cheminComplet . "/400/" . $listeElements->getFilename();
|
|
}
|
|
?>" alt=""/>
|
|
|
|
</a>
|
|
</div>
|
|
<?php
|
|
} else {
|
|
echo $cheminComplet . $listeElements->getFilename();
|
|
echo "ERREUR PHP : L'élément n'est ni un fichier ni un dossier !";
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
<?php
|
|
$nbElementsAffiches++;
|
|
|
|
|
|
} } } ?>
|
|
|
|
|
|
</section>
|
|
|
|
<section id="zoneCommentaires">
|
|
|
|
<?php
|
|
if (isset($_POST['commentaire']) AND isset($_POST['pseudo'])) {
|
|
if ((strlen($_POST['commentaire']) <= 1000) AND (strlen($_POST['pseudo']) <= 100)) {
|
|
if (strtolower($_POST['captcha']) == "huit" OR $_POST['captcha'] == 8) {
|
|
|
|
$i = 0;
|
|
|
|
while (file_exists($cheminComplet . "/comms/commentaire" . $i)) {
|
|
$i++;
|
|
}
|
|
|
|
$fichier = htmlspecialchars($_POST['pseudo']) . "\n" . htmlspecialchars($_POST['commentaire']);
|
|
file_put_contents($cheminComplet . "/comms/commentaire" . $i, $fichier);
|
|
} else {
|
|
echo "Erreur : Captcha invalide !";
|
|
}
|
|
|
|
} else {
|
|
echo "ERREUR : Le message fait plus de 1 000 caractères ou le pseudo fait plus de 100 caractères !";
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<?php
|
|
|
|
$j = 0;
|
|
|
|
while (file_exists($cheminComplet . "/comms/commentaire" . $j)) { ?>
|
|
|
|
<div class="commentaire">
|
|
|
|
<?php
|
|
|
|
$lignesCommentaire = file($cheminComplet . "/comms/commentaire" . $j);
|
|
foreach($lignesCommentaire as $ln => $ligneCommentaire) {
|
|
|
|
echo "<span class='ln" . $ln . "'>" . $ligneCommentaire . "</span>";
|
|
?>
|
|
|
|
<br>
|
|
|
|
<?php
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</div>
|
|
<?php
|
|
$j++;
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<form method="POST" action="index.php?chemin=<?= $_GET['chemin'] ?>">
|
|
<br>
|
|
<label for="pseudo">Votre pseudo :</label>
|
|
<br>
|
|
<input id="pseudo" required="" type="text" title="100 caractères maximum" maxlength="100" name="pseudo" placeholder="Pseudo" />
|
|
<br>
|
|
<label for="commentaire">Votre commentaire :</label>
|
|
<br>
|
|
<textarea id="commentaire" required="" title="1 000 caractères maximum" maxlength="1000" name="commentaire" style="width:85%;" placeholder="Votre message" rows="6"></textarea>
|
|
<br>
|
|
<label for="captcha">Combien font cinq et trois ?</label>
|
|
<br>
|
|
<input id="captcha" required="" type="text" name="captcha" />
|
|
<br>
|
|
<input type="submit" value="Publier" />
|
|
</form>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
</main>
|
|
|
|
<?php require "fin.inc.php"; ?>
|