par
gecko_64 » 22 janv. 2006, 19:35
Bonjour, voilà, j'ai essayé de modifier un code que j'ai repris sur le net de facon a ajouter a celui ci un systeme d'indentification par login et mot de pass.
Apres de multiples essais, je n'y suis pas arrivé.
Les lignes modifiées sont la N°10 et la 78.
J'ai rajoute au code de base : and ($_POST['id']=="php")
Il sagit d'un systeme qui permet d'upoader ou d'effacer une image sur un serveur distant.
Le code fonctionnait avant la modification...
et le code complet est celui ci:
<?php
// on défini le répertoire où sont stockées les images de grande taille
$dir = './photos/pics';
// on défini le répertoire où seront stockées les miniatures
$dir_mini = './photos/mini';
// on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels). En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).
$ratio = 150;
// on teste si le formulaire permettant d'uploader un fichier a été soumis
if ((isset($_POST['go'])) and ($_POST['id']=="php")) {
// on teste si le champ permettant de soumettre un fichier est vide ou non
if (empty($_FILES['mon_image']['tmp_name'])) {
// si oui, on affiche un petit message d'erreur
$erreur = 'Aucun fichier envoyé.';
}
else {
// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier (je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
$tableau = @getimagesize($_FILES['mon_image']['tmp_name']);
if ($tableau == FALSE) {
// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre fichier n\'est pas une image.';
}
else {
// on teste le type de notre image : jpeg ou png
if ($tableau[2] == 2 || $tableau[2] == 3) {
// si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload
if (is_file('./photos/pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name'];
else $file_upload = $_FILES['mon_image']['name'];
// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille
copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload);
// il nous reste maintenant à générer la miniature
// si notre image est de type jpeg
if ($tableau[2] == 2) {
// on crée une image à partir de notre grande image à l'aide de la librairie GD
$src = imagecreatefromjpeg($dir.'/'.$file_upload);
// on teste si notre image est de type paysage ou portrait
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
// on copie notre fichier généré dans le répertoire des miniatures
imagejpeg ($im, $dir_mini.'/'.$file_upload);
}
elseif ($tableau[2] == 3) {
$src = imagecreatefrompng($dir.'/'.$file_upload);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
imagepng ($im, $dir_mini.'/'.$file_upload);
}
// on redirige l'administrateur vers l'accueil de la partie admin
header('location: photos_admin2.php');
exit();
}
else {
// si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre image est d\'un format non supporté.';
}
}
}
}
// on teste si le formulaire permettant de supprimer un fichier à été soumis
if (isset($_GET['del']) and ($_POST['id']=="php")) {
if (empty($_GET['del'])) {
// si le paramètre n'est pas renseignée, on affiche un petit message d'erreur
$erreur = 'Aucune image à supprimer';
}
else {
$pic_a_zapper = $_GET['del'];
// si l'image existe ainsi que sa miniature, on les supprime
if (is_file('./photos/mini/'.$pic_a_zapper) && is_file('./photos/pics/'.$pic_a_zapper)) {
unlink('./photos/mini/'.$pic_a_zapper);
unlink('./photos/pics/'.$pic_a_zapper);
}
// si l'image ou la miniature n'existe pas, on affiche un message d'erreur
else {
$erreur = 'Image non reconnue';
}
}
}
?>
<html>
<head>
<title>Ma galerie - Admin</title>
</head>
<body>
Champs Obligatoires pour toute action :<br/><br/>
ID :<input type="text" name="id" /><br/>
Pass :<input type="text" name="pass" /><br/>
<!-- on affiche un formulaire permettant d'uploader une image -->
Ajouter une photo à la galerie :<br /><br />
<form action="photos_admin2.php" method="post" enctype="multipart/form-data">
<input type="file" name="mon_image" /> <input type="submit" name="go" value="Envoyer" />
</form>
<hr />
<!-- on affiche toutes les miniatures munies d'un lien permettant de supprimer les images -->
Supprimer une photo de la galerie (cliquer sur la miniature pour supprimer la photo) :<br /><br />
<?php
// l'étude de cette portion de code a déjà été faite plus haut
$tableau = array();
$dossier = opendir ('./photos/mini/');
while ($fichier = readdir ($dossier)) {
if ($fichier != '.' && $fichier != '..' && $fichier != 'photos_admin2.php') {
$tableau[] = $fichier;
}
}
closedir ($dossier);
$nbcol=4;
$nbpics = count($tableau);
if ($nbpics != 0) {
echo '<table>';
for ($i=0; $i<$nbpics; $i++){
if($i%$nbcol==0) echo '<tr>';
// on affiche un lien sur la photo permettant de la supprimer
echo '<td><a href="photos_admin2.php?del=' , $tableau[$i] , '"><img src="./photos/mini/' , $tableau[$i] , '" alt="Image" /></a></td>';
if($i%$nbcol==($nbcol-1) or $i==($nbpics-1)) echo '</tr>';
}
echo '</table>';
}
else echo 'Aucune image à afficher';
// si un message d'erreur est défini, on l'affiche
if (isset($erreur)) echo '<br />' , $erreur;
?>
</body>
</html>
Merci d'avance

Gecko64
Bonjour, voilà, j'ai essayé de modifier un code que j'ai repris sur le net de facon a ajouter a celui ci un systeme d'indentification par login et mot de pass.
Apres de multiples essais, je n'y suis pas arrivé.
Les lignes modifiées sont la N°10 et la 78.
J'ai rajoute au code de base : and ($_POST['id']=="php")
Il sagit d'un systeme qui permet d'upoader ou d'effacer une image sur un serveur distant.
Le code fonctionnait avant la modification...
et le code complet est celui ci:
[php]<?php
// on défini le répertoire où sont stockées les images de grande taille
$dir = './photos/pics';
// on défini le répertoire où seront stockées les miniatures
$dir_mini = './photos/mini';
// on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels). En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).
$ratio = 150;
// on teste si le formulaire permettant d'uploader un fichier a été soumis
if ((isset($_POST['go'])) and ($_POST['id']=="php")) {
// on teste si le champ permettant de soumettre un fichier est vide ou non
if (empty($_FILES['mon_image']['tmp_name'])) {
// si oui, on affiche un petit message d'erreur
$erreur = 'Aucun fichier envoyé.';
}
else {
// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier (je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
$tableau = @getimagesize($_FILES['mon_image']['tmp_name']);
if ($tableau == FALSE) {
// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre fichier n\'est pas une image.';
}
else {
// on teste le type de notre image : jpeg ou png
if ($tableau[2] == 2 || $tableau[2] == 3) {
// si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload
if (is_file('./photos/pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name'];
else $file_upload = $_FILES['mon_image']['name'];
// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille
copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload);
// il nous reste maintenant à générer la miniature
// si notre image est de type jpeg
if ($tableau[2] == 2) {
// on crée une image à partir de notre grande image à l'aide de la librairie GD
$src = imagecreatefromjpeg($dir.'/'.$file_upload);
// on teste si notre image est de type paysage ou portrait
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
// on copie notre fichier généré dans le répertoire des miniatures
imagejpeg ($im, $dir_mini.'/'.$file_upload);
}
elseif ($tableau[2] == 3) {
$src = imagecreatefrompng($dir.'/'.$file_upload);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
imagepng ($im, $dir_mini.'/'.$file_upload);
}
// on redirige l'administrateur vers l'accueil de la partie admin
header('location: photos_admin2.php');
exit();
}
else {
// si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre image est d\'un format non supporté.';
}
}
}
}
// on teste si le formulaire permettant de supprimer un fichier à été soumis
if (isset($_GET['del']) and ($_POST['id']=="php")) {
if (empty($_GET['del'])) {
// si le paramètre n'est pas renseignée, on affiche un petit message d'erreur
$erreur = 'Aucune image à supprimer';
}
else {
$pic_a_zapper = $_GET['del'];
// si l'image existe ainsi que sa miniature, on les supprime
if (is_file('./photos/mini/'.$pic_a_zapper) && is_file('./photos/pics/'.$pic_a_zapper)) {
unlink('./photos/mini/'.$pic_a_zapper);
unlink('./photos/pics/'.$pic_a_zapper);
}
// si l'image ou la miniature n'existe pas, on affiche un message d'erreur
else {
$erreur = 'Image non reconnue';
}
}
}
?>
<html>
<head>
<title>Ma galerie - Admin</title>
</head>
<body>
Champs Obligatoires pour toute action :<br/><br/>
ID :<input type="text" name="id" /><br/>
Pass :<input type="text" name="pass" /><br/>
<!-- on affiche un formulaire permettant d'uploader une image -->
Ajouter une photo à la galerie :<br /><br />
<form action="photos_admin2.php" method="post" enctype="multipart/form-data">
<input type="file" name="mon_image" /> <input type="submit" name="go" value="Envoyer" />
</form>
<hr />
<!-- on affiche toutes les miniatures munies d'un lien permettant de supprimer les images -->
Supprimer une photo de la galerie (cliquer sur la miniature pour supprimer la photo) :<br /><br />
<?php
// l'étude de cette portion de code a déjà été faite plus haut
$tableau = array();
$dossier = opendir ('./photos/mini/');
while ($fichier = readdir ($dossier)) {
if ($fichier != '.' && $fichier != '..' && $fichier != 'photos_admin2.php') {
$tableau[] = $fichier;
}
}
closedir ($dossier);
$nbcol=4;
$nbpics = count($tableau);
if ($nbpics != 0) {
echo '<table>';
for ($i=0; $i<$nbpics; $i++){
if($i%$nbcol==0) echo '<tr>';
// on affiche un lien sur la photo permettant de la supprimer
echo '<td><a href="photos_admin2.php?del=' , $tableau[$i] , '"><img src="./photos/mini/' , $tableau[$i] , '" alt="Image" /></a></td>';
if($i%$nbcol==($nbcol-1) or $i==($nbpics-1)) echo '</tr>';
}
echo '</table>';
}
else echo 'Aucune image à afficher';
// si un message d'erreur est défini, on l'affiche
if (isset($erreur)) echo '<br />' , $erreur;
?>
</body>
</html>[/php]
Merci d'avance :-)
Gecko64