2019-12-07 12:08:09 +01:00
< ? php require " debut.inc.php " ; ?>
2019-06-24 19:34:44 +02:00
2019-12-07 12:08:09 +01:00
< ? php
2019-06-24 19:34:44 +02:00
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 );
}
}
2020-01-18 23:03:01 +01:00
?>
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
< main >
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
< section class = " gallerie " >
2019-06-24 19:34:44 +02:00
< ? php if ( preg_match ( " # \ . \ .# " , $_GET [ 'chemin' ])) {
exit ( " Par sécurité, .. ne peut être utilisé dans un chemin " );
} else {
2020-01-18 23:03:01 +01:00
$cheminComplet = " catalogue/ " . $_GET [ 'chemin' ] . " " ;
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
if ( ! file_exists ( $cheminComplet . " /400 " )) {
mkdir ( $cheminComplet . " /400 " );
}
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
if ( ! file_exists ( $cheminComplet . " /800 " )) {
mkdir ( $cheminComplet . " /800 " );
}
if ( ! file_exists ( $cheminComplet . " /comms " )) {
mkdir ( $cheminComplet . " /comms " );
}
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
$listeElements = new DirectoryIterator ( $cheminComplet );
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
$nbElementsAffiches = 0 ;
foreach ( $listeElements as $listeElements ) {
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
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
2019-06-24 19:34:44 +02:00
$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 ++ ;
} } } ?>
2020-01-18 23:03:01 +01:00
</ 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 ;
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
while ( file_exists ( $cheminComplet . " /comms/commentaire " . $i )) {
$i ++ ;
}
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
$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 ++ ;
}
?>
2019-06-24 19:34:44 +02:00
2020-01-18 23:03:01 +01:00
< 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 >
2019-06-24 19:34:44 +02:00
</ main >
2019-12-07 12:08:09 +01:00
< ? php require " fin.inc.php " ; ?>