diff options
| author | polo <ordipolo@gmx.fr> | 2024-02-09 15:56:55 +0100 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2024-02-09 15:56:55 +0100 |
| commit | 949737cf5fc2a21b36c4a269a437d0dc2e965441 (patch) | |
| tree | 5a6962408f833e6e2b04519fed544193e41e6360 /photoskaty | |
| download | lelionetlecolibri-949737cf5fc2a21b36c4a269a437d0dc2e965441.tar.gz lelionetlecolibri-949737cf5fc2a21b36c4a269a437d0dc2e965441.tar.bz2 lelionetlecolibri-949737cf5fc2a21b36c4a269a437d0dc2e965441.zip | |
Diffstat (limited to 'photoskaty')
| -rw-r--r-- | photoskaty/katy.jpg | bin | 0 -> 37520 bytes | |||
| -rw-r--r-- | photoskaty/listephoto.php | 110 | ||||
| -rw-r--r-- | photoskaty/photo.txt | 1 | ||||
| -rw-r--r-- | photoskaty/photomodif.php | 53 | ||||
| -rw-r--r-- | photoskaty/photoupload.php | 90 |
5 files changed, 254 insertions, 0 deletions
diff --git a/photoskaty/katy.jpg b/photoskaty/katy.jpg new file mode 100644 index 0000000..97bbcca --- /dev/null +++ b/photoskaty/katy.jpg | |||
| Binary files differ | |||
diff --git a/photoskaty/listephoto.php b/photoskaty/listephoto.php new file mode 100644 index 0000000..64cec01 --- /dev/null +++ b/photoskaty/listephoto.php | |||
| @@ -0,0 +1,110 @@ | |||
| 1 | <?php | ||
| 2 | // PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1 | ||
| 3 | |||
| 4 | session_start(); | ||
| 5 | if (isset ($_SESSION["mdpvalide"])) | ||
| 6 | { | ||
| 7 | if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1 | ||
| 8 | {} // dans ce cas on fait rien et on laisse php lire la suite | ||
| 9 | else | ||
| 10 | { | ||
| 11 | header('Location: ../connexion.php'); | ||
| 12 | exit (); | ||
| 13 | // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page | ||
| 14 | } | ||
| 15 | } | ||
| 16 | else | ||
| 17 | { | ||
| 18 | header('Location: ../connexion.php'); | ||
| 19 | exit (); | ||
| 20 | } | ||
| 21 | ?> | ||
| 22 | |||
| 23 | <!DOCTYPE html> | ||
| 24 | <html lang="fr" > | ||
| 25 | <head> | ||
| 26 | <meta charset="utf-8" /> | ||
| 27 | <title>photos de katy</title> | ||
| 28 | <link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" /> | ||
| 29 | <link rel="stylesheet" href="../blog.css" /> | ||
| 30 | <meta name="viewport" content="width=device-width" /> | ||
| 31 | <style> | ||
| 32 | section | ||
| 33 | { | ||
| 34 | border: 2px #FFBD8D solid; | ||
| 35 | margin: 10px 0px; | ||
| 36 | padding: 10px; | ||
| 37 | } | ||
| 38 | @media all and (min-width: 980px) | ||
| 39 | { | ||
| 40 | section | ||
| 41 | { | ||
| 42 | width: 960px; | ||
| 43 | } | ||
| 44 | } | ||
| 45 | section img | ||
| 46 | { | ||
| 47 | width: 170px; | ||
| 48 | padding: 0px 10px; | ||
| 49 | } | ||
| 50 | #listephoto | ||
| 51 | { | ||
| 52 | display: flex; | ||
| 53 | flex-wrap: wrap; | ||
| 54 | } | ||
| 55 | </style> | ||
| 56 | </head> | ||
| 57 | |||
| 58 | <body> | ||
| 59 | <div id="bloc_page"> | ||
| 60 | |||
| 61 | <header> | ||
| 62 | <h1><img class="sakura" src="../sakura.png" alt="sakura" />photos de katy<img class="sakura" src="../sakura.png" alt="sakura" /></h1> | ||
| 63 | </header> | ||
| 64 | |||
| 65 | <li id="admin" > | ||
| 66 | <p><a href="../administration.php" >retour page précédente</a></p> | ||
| 67 | </li> | ||
| 68 | |||
| 69 | <!-- connexion à la base de données --> | ||
| 70 | <?php include("../connexionbase.php"); ?> | ||
| 71 | |||
| 72 | <section> | ||
| 73 | <p>Choisir une photo parmi celles déjà sur le serveur:</p> | ||
| 74 | |||
| 75 | <div id="listephoto" > | ||
| 76 | <?php | ||
| 77 | // afficher la table des noms des photos | ||
| 78 | $réponse = $base->query('SELECT * FROM photoskaty'); | ||
| 79 | while ($données = $réponse->fetch()) | ||
| 80 | { | ||
| 81 | echo('<div><a href="photomodif.php?id=' . $données['id'] . '" ><img src="' . $données['nomphoto'] . '" alt="photo" /></a>'); | ||
| 82 | echo('<a href="photomodif.php?id=' . $données['id'] . '" ><p>' . $données['nomphoto'] . '</p></a></div>'); | ||
| 83 | } | ||
| 84 | |||
| 85 | $réponse->closeCursor(); | ||
| 86 | ?> | ||
| 87 | </div> | ||
| 88 | |||
| 89 | </section> | ||
| 90 | |||
| 91 | <section> | ||
| 92 | <!-- formulaire upload nouvelle photo --> | ||
| 93 | <form method="post" action="photoupload.php" enctype="multipart/form-data" > | ||
| 94 | <p>Télécharger une nouvelle photo depuis mon PC / tablette / téléphone.</p> | ||
| 95 | <input type="file" name="photo" id="photo" /> | ||
| 96 | <!-- on crée la variable $_FILES["photo"], taille max de 2 MO sinon la photo est refusée par le serveur --> | ||
| 97 | <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> | ||
| 98 | <input type="submit" value="Télécharger le fichier" /> | ||
| 99 | </form> | ||
| 100 | |||
| 101 | <p>Attention: taille maximale de 2 MO !</p> | ||
| 102 | </section> | ||
| 103 | |||
| 104 | <li id="admin" > | ||
| 105 | <p><i>Ne pas oublier de cliquer sur "déconnexion" quand on a fini !</i></p> | ||
| 106 | <p><a href="../logout.php" >déconnexion</a></p> | ||
| 107 | </li> | ||
| 108 | |||
| 109 | </body> | ||
| 110 | </html> | ||
diff --git a/photoskaty/photo.txt b/photoskaty/photo.txt new file mode 100644 index 0000000..ad4280d --- /dev/null +++ b/photoskaty/photo.txt | |||
| @@ -0,0 +1 @@ | |||
| katy.jpg \ No newline at end of file | |||
diff --git a/photoskaty/photomodif.php b/photoskaty/photomodif.php new file mode 100644 index 0000000..07b4e80 --- /dev/null +++ b/photoskaty/photomodif.php | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | <?php | ||
| 2 | // PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1 | ||
| 3 | |||
| 4 | session_start(); | ||
| 5 | if (isset ($_SESSION["mdpvalide"])) | ||
| 6 | { | ||
| 7 | if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1 | ||
| 8 | {} // dans ce cas on fait rien et on laisse php lire la suite | ||
| 9 | else | ||
| 10 | { | ||
| 11 | header('Location: ../connexion.php'); | ||
| 12 | exit (); | ||
| 13 | // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page | ||
| 14 | } | ||
| 15 | } | ||
| 16 | else | ||
| 17 | { | ||
| 18 | header('Location: ../connexion.php'); | ||
| 19 | exit (); | ||
| 20 | } | ||
| 21 | |||
| 22 | |||
| 23 | // connexion à la base de données | ||
| 24 | include("../connexionbase.php"); | ||
| 25 | |||
| 26 | |||
| 27 | // modifier la photo sélectionnée | ||
| 28 | if (isset ($_GET['id'])) | ||
| 29 | { | ||
| 30 | // choix de la ligne en fonction de son id | ||
| 31 | $requête = $base->prepare('SELECT * FROM photoskaty WHERE id = :numero'); | ||
| 32 | $requête->execute(array('numero' => $_GET['id'])); | ||
| 33 | |||
| 34 | while ($données = $requête->fetch()) | ||
| 35 | { | ||
| 36 | $nom = $données['nomphoto']; | ||
| 37 | } | ||
| 38 | |||
| 39 | $requête->closeCursor(); | ||
| 40 | |||
| 41 | $fichier = fopen('photo.txt','r+'); | ||
| 42 | ftruncate($fichier,0); // évite les problèmes quand on change pour un titre plus court | ||
| 43 | fputs($fichier, $nom); | ||
| 44 | fseek($fichier, 0); | ||
| 45 | fclose($fichier); | ||
| 46 | |||
| 47 | header('Location: ../administration.php?modifphoto=4'); | ||
| 48 | exit (); | ||
| 49 | } | ||
| 50 | else | ||
| 51 | {} | ||
| 52 | |||
| 53 | ?> | ||
diff --git a/photoskaty/photoupload.php b/photoskaty/photoupload.php new file mode 100644 index 0000000..c3a2079 --- /dev/null +++ b/photoskaty/photoupload.php | |||
| @@ -0,0 +1,90 @@ | |||
| 1 | <?php | ||
| 2 | // PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1 | ||
| 3 | |||
| 4 | session_start(); | ||
| 5 | if (isset ($_SESSION["mdpvalide"])) | ||
| 6 | { | ||
| 7 | if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1 | ||
| 8 | {} // dans ce cas on fait rien et on laisse php lire la suite | ||
| 9 | else | ||
| 10 | { | ||
| 11 | header('Location: ../connexion.php'); | ||
| 12 | exit (); | ||
| 13 | // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page | ||
| 14 | } | ||
| 15 | } | ||
| 16 | else | ||
| 17 | { | ||
| 18 | header('Location: ../connexion.php'); | ||
| 19 | exit (); | ||
| 20 | } | ||
| 21 | |||
| 22 | |||
| 23 | // connexion à la base de données | ||
| 24 | include("../connexionbase.php"); | ||
| 25 | |||
| 26 | |||
| 27 | // test de l'envoi du fichier au serveur | ||
| 28 | // erreur = 1 si la taille du fichier dépasse de 2 MO, limite modifiable à la ligne upload_max_filesize du fichier php.ini | ||
| 29 | if (isset ($_FILES['photo']) AND $_FILES['photo']['error'] == 0) | ||
| 30 | { | ||
| 31 | // vérification de l'extension | ||
| 32 | $infophoto = pathinfo ($_FILES['photo']['name']); // pathinfo renvoie un tableau, qui contient notamment l'extension du fichier | ||
| 33 | $extautorisées = array ('jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF'); | ||
| 34 | if (in_array ($infophoto['extension'], $extautorisées)) // on compare l'extension dans le tableau avec les extensions qu'on a choisi | ||
| 35 | { | ||
| 36 | // on récupère la variable $nom | ||
| 37 | $nom = basename ($_FILES['photo']['name']); | ||
| 38 | |||
| 39 | // vérification et formatage du nom du fichier | ||
| 40 | // supprimer les accents, problème: la méthode avec la fonction strstr marche mal avec l'UTF-8, | ||
| 41 | // on préfèrera celle-ci qui utilise str_replace et qui marche mieux (mais pas avec les majuscules accentuées): | ||
| 42 | $nom = str_replace( | ||
| 43 | array('à','â','ä','á','ã','å','î','ï','ì','í','ô','ö','ò','ó','õ','ø','ù','û','ü','ú','é','è','ê','ë','ç','ÿ','ñ'), | ||
| 44 | array('a','a','a','a','a','a','i','i','i','i','o','o','o','o','o','o','u','u','u','u','e','e','e','e','c','y','n'), | ||
| 45 | $nom); | ||
| 46 | $nom = mb_strtolower($nom, 'UTF-8'); | ||
| 47 | // ce qui n'est pas une lettre ou un chiffre est remplacé par un tiret, y compris les espaces | ||
| 48 | $nom = preg_replace('/([^.a-z0-9]+)/i', '-', $nom); | ||
| 49 | |||
| 50 | // enfin on enregistre le fichier | ||
| 51 | if (move_uploaded_file ($_FILES['photo']['tmp_name'], '/var/www/lelionetlecolibri.ordipolo.fr/photospolo/' . $nom)) | ||
| 52 | // on doit pouvoir écrire dans le dossier d'arrivée (mettre le chemin absolu) et dans /tmp | ||
| 53 | // pour permettre à PHP l'écriture et la traversée du dossier, taper: sudo chmod 733 /var/www/dossier/qu'on/veut | ||
| 54 | { | ||
| 55 | // envoi du nom de la photo dans la base de données | ||
| 56 | echo $nom; | ||
| 57 | $requête = $base->prepare('INSERT INTO photospolo (nomphoto) VALUES (:nom)'); | ||
| 58 | $requête->execute(array('nom' => $nom)); | ||
| 59 | |||
| 60 | $requête->closeCursor(); | ||
| 61 | |||
| 62 | // changer le nom de la photo sélectionnée dans le fichier photo.txt | ||
| 63 | $fichier = fopen('photo.txt','r+'); | ||
| 64 | ftruncate($fichier,0); // évite les problèmes quand on change pour un nom plus court | ||
| 65 | fputs($fichier, $nom); | ||
| 66 | fseek($fichier, 0); | ||
| 67 | fclose($fichier); | ||
| 68 | |||
| 69 | header('Location: ../administration.php?modifphoto=4'); // succès, move_uploaded_file renvoie la valeur TRUE | ||
| 70 | exit (); | ||
| 71 | } | ||
| 72 | else // echec à l'enregistrement, la fonction renvoie FALSE | ||
| 73 | { | ||
| 74 | header('Location: ../administration.php?modifphoto=3'); | ||
| 75 | exit (); | ||
| 76 | } | ||
| 77 | } | ||
| 78 | else // mauvais format | ||
| 79 | { | ||
| 80 | header('Location: ../administration.php?modifphoto=2'); | ||
| 81 | exit (); | ||
| 82 | } | ||
| 83 | } | ||
| 84 | else // mauvaise taille | ||
| 85 | { | ||
| 86 | header('Location: ../administration.php?modifphoto=1'); | ||
| 87 | exit (); | ||
| 88 | } | ||
| 89 | |||
| 90 | ?> | ||
