galerie photo avec php/mysql

Répondre
stophking
stophking
Déconnecté
stoph
bonjour :
je suis entrain de créer une galerie photo avec php/mysql et j'aimeria bien que vous me corriger le code si il ya des fautes, et une chose que je veus bien si si possible c'est comment fiare un lien au-dessus des images se lien permettre de supprimer l'image de la base de données.

voila les codes de chaque page :

ajout.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3. <head>
  4. <title>Envoyer une image</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.    <style type="text/css">
  7.       label {
  8.          display:block;
  9.          width:150px;
  10.          float:left;
  11.       }
  12.     </style>
  13. </head>
  14. <body>
  15.    <h1>Envoyer une image</h1>
  16.    <form enctype="multipart/form-data" action="traitement.php" method="post">
  17.       <p>
  18.          <label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br />
  19.          <label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br />
  20.          <label for="image">Image : </label><input type="file" name="image" id="image" /><br />
  21.          <label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" />
  22.       </p>
  23.    </form>
  24. </body>
  25. </html> 




traitement.php
  1. <?php
  2. if(isset($_POST['validation'])) { 
  3.    
  4.    //Indique si le fichier a été téléchargé
  5.    if(!is_uploaded_file($_FILES['image']['tmp_name'])) 
  6.       echo 'Un problème est survenu durant l opération. Veuillez réessayer !'; 
  7.    else { 
  8.       //liste des extensions possibles
  9.       $extensions = array('/png', '/gif', '/jpg', '/jpeg'); 
  10.       
  11.       //récupère la chaîne à partir du dernier / pour connaître l'extension
  12.       $extension = strrchr($_FILES['image']['type'], '/'); 
  13.       
  14.       //vérifie si l'extension est dans notre tableau
  15.       if(!in_array($extension, $extensions)) 
  16.          echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.'; 
  17.       else { 
  18.  
  19.          //on définit la taille maximale
  20.          define('MAXSIZE', 300000); 
  21.          if($_FILES['image']['size'] > MAXSIZE) 
  22.          echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets'; 
  23.          else { 
  24.             //on se connecte (remplacer les paramètres de connexion)
  25.             $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
  26.             $database = mysql_select_db("tata") or exit (mysql_error()); 
  27.             
  28.             //récupération des infos saisies
  29.             $nom = mysql_escape_string($_POST['nom']); 
  30.             $description = mysql_escape_string($_POST['description']); 
  31.             
  32.             //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
  33.             $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name'])); 
  34.             
  35.             //Il ne reste qu'à insérer tout ça dans notre table.
  36.             mysql_query("INSERT INTO images(nom, description, img, extension) VALUES('".$nom."', '".$description."', '".$image."', '".$_FILES[image][type]."')") or exit (mysql_error()); 
  37.             mysql_close(); 
  38.             echo 'L insertion s est bien déroulée !'; 
  39.          } 
  40.       } 
  41.    }  
  42. }  
  43. ?> 




apercu.php
  1. <?php
  2. //si nous avons une image
  3. if(!empty($_GET['id_img'])) { 
  4.       
  5.    //connexion à la base de données
  6. $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
  7.    $database = mysql_select_db("BASE")or exit (mysql_error()); 
  8.       
  9.    //on sécurise notre donnée
  10. $idImg = intval($_GET['id_img']); 
  11.       
  12.    //la requète qui récupère l'image à partir de l'identifiant
  13. $apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error()); 
  14.       
  15.    //si le résultat est différent de 1
  16. if(mysql_num_rows($apercu) != 1) 
  17.       echo 'L image n existe pas !'; 
  18.    else { 
  19.       //on stocke les données dans un tableau
  20. $reponse = mysql_fetch_assoc($apercu); 
  21.       //on indique qu'on affiche une image
  22. header ("Content-type: ".$reponse['extension']);  
  23. //on affiche l'image en elle même
  24.       echo $reponse['img']; 
  25.    }  
  26. mysql_close();  
  27. } else  
  28. echo 'Vous n avez pas sélectionné d image !';  
  29. ?> 




galerie.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3. <head>
  4. <title>Ma galerie d'images</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.    <style type="text/css">
  7.       body {
  8.          width: 95%;
  9.       }
  10.          
  11.       div {
  12.          width: 22%;
  13.          float: left;
  14.          text-align: center;
  15.          border: 1px solid black;
  16.          margin: 5px;
  17.          padding: 5px;
  18.       }
  19.          
  20.       p {
  21.          text-align: left;
  22.       }
  23.          
  24.       a {
  25.          color: #000000;
  26.          text-decoration: none;
  27.       }
  28.     </style>
  29. </head>
  30. <body>
  31.    
  32.    <h1>Ma galerie d'images</h1>
  33.    
  34.    <?php
  35.    $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
  36.    $database = mysql_select_db("images") or exit (mysql_error()); 
  37.    
  38.    $affichage = mysql_query("SELECT id_img, nom, description FROM images") or exit (mysql_error()); 
  39.    while($result = mysql_fetch_assoc($affichage)) { 
  40.    
  41.       echo '<div>'; 
  42.       echo '<a href="apercu.php?id_img='.$result[id_img].'"><img src="apercu.php?id_img='.$result[id_img].'" alt="'.$result[nom].'" title="'.$result[nom].'" /></a>'; 
  43.       echo '<p>Description : '.$result["description"].'</p>'; 
  44.       echo '</div>'; 
  45.    } 
  46.    mysql_close(); 
  47.    ?>
  48.  
  49. </body>
  50. </html> 




et voila la base "images" que j'ai créer :

CREATE TABLE `images` (
`id_img` INT NOT NULL AUTO_INCREMENT,
`nom` VARCHAR(50) NOT NULL,
`description` text NOT NULL,
`img` BLOB NOT NULL,
`extension` VARCHAR(25) NOT NULL,
PRIMARY KEY (`id_img`)
)

J 'attend une reponse et un aide
merci beaucoup
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Tu aurais pu lire les conditions d'utilisation des forums et utiliser le BB-Code avant de paster tout ton code :S
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique