PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » galerie photo avec php/mysql » 28-07-2010 07:14:38

stophking
Réponses : 1

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 :

la page ajout.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Envoyer une image</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     <style type="text/css">
    label {
      display:block;
      width:150px;
      float:left;
    }
     </style>
   </head>
   <body>
  <h1>Envoyer une image</h1>
  <form enctype="multipart/form-data" action="traitement.php" method="post">
    <p>
      <label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br />
      <label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br />
      <label for="image">Image : </label><input type="file" name="image" id="image" /><br />
      <label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" />
    </p>
  </form>
</body>
</html>
 

la page traitement.php
Code PHP :


<?php
  if(isset($_POST['validation'])) {
   
   //Indique si le fichier a été téléchargé
   if(!is_uploaded_file($_FILES['image']['tmp_name']))
    echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
   else {
    //liste des extensions possibles    
    $extensions = array('/png', '/gif', '/jpg', '/jpeg');
   
    //récupère la chaîne à partir du dernier / pour connaître l'extension
    $extension = strrchr($_FILES['image']['type'], '/');
   
    //vérifie si l'extension est dans notre tableau            
    if(!in_array($extension, $extensions))
      echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    else {        

      //on définit la taille maximale
      define('MAXSIZE', 300000);        
      if($_FILES['image']['size'] > MAXSIZE)
         echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
      else {
        //on se connecte (remplacer les paramètres de connexion)
        $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
        $database = mysql_select_db("tata") or exit (mysql_error());
       
        //récupération des infos saisies
        $nom = mysql_escape_string($_POST['nom']);
        $description = mysql_escape_string($_POST['description']);
       
        //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
        $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
       
        //Il ne reste qu'à insérer tout ça dans notre table.
        mysql_query("INSERT INTO images(nom, description, img, extension) VALUES('".$nom."', '".$description."', '".$image."', '".$_FILES[image][type]."')") or exit (mysql_error());
        mysql_close();
        echo 'L insertion s est bien déroulée !';
       }
      }
    }
  }
?>
 


la page apercu.php

Code PHP :


<?php
    //si nous avons une image
    if(!empty($_GET['id_img'])) {
   
  //connexion à la base de données
        $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
  $database = mysql_select_db("BASE")or exit (mysql_error());
   
  //on sécurise notre donnée
        $idImg = intval($_GET['id_img']);
   
  //la requète qui récupère l'image à partir de l'identifiant
        $apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error());
   
  //si le résultat est différent de 1
        if(mysql_num_rows($apercu) != 1)
    echo 'L image n existe pas !';
  else {
    //on stocke les données dans un tableau
                $reponse = mysql_fetch_assoc($apercu);
    //on indique qu'on affiche une image
                header ("Content-type: ".$reponse['extension']);
                //on affiche l'image en elle même
    echo $reponse['img'];
  }
        mysql_close();
    } else
       echo 'Vous n avez pas sélectionné d image !';
?>
 

et la page final galerie.php

Code PHP :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Ma galerie d'images</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     <style type="text/css">
    body {
      width: 95%;
    }
     
    div {
      width: 22%;
      float: left;
      text-align: center;
      border: 1px solid black;
      margin: 5px;
      padding:  5px;
    }
     
    p {
      text-align: left;
    }
     
    a {
      color: #000000;
      text-decoration: none;
    }
     </style>
   </head>
   <body>
 
  <h1>Ma galerie d'images</h1>
 
  <?php
      $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
      $database = mysql_select_db("images") or exit (mysql_error());
     
      $affichage = mysql_query("SELECT id_img, nom, description FROM images") or exit (mysql_error());
      while($result = mysql_fetch_assoc($affichage)) {
         
    echo '<div>';
    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>';
    echo '<p>Description : '.$result["description"].'</p>';
    echo '</div>';
      }
      mysql_close();
  ?>

</body>
</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

Edit modo : avec la colorisation du code c'est mieux, un wall serait parfait....

Pied de page des forums

Propulsé par FluxBB