Problème Upload PHP/MySQL

Bonjour,
alors voila, j'ai crée un petit site web php + html avec mysql

la fonction de site est upload des photo mais apres inscription ..!!

apres inscription .... le membre ajout des photos mais le probleme c qu'il vu tous les phots ,, leur photos et les autres photos !!

j'ai utilise mysql
j'ai crie 2 tables une pour users (nom , prenom , email , password) et l'autre po image (nom , taille , lien , mot cles )

c quoi la solution pour regler ca !!

mon code !!

<?php
//On simplifie le nom des variables $_FILES   
$tmp_name=$_FILES['fichier']['tmp_name'];   
$name=$_FILES['fichier']['name'];   
$size=$_FILES['fichier']['size'];   
$type=$_FILES['fichier']['type']; 
$erreur=$_FILES['fichier']['error'];


//on recupere les valeurs du formulaire 
$fichiermp=$_FILES['fichier']['type']; 

//on recupere l'extension du fichier 
$decoup=explode('.',$fichiermp); 
//attention count() enregistre à partir de 0 donc la derniere valeur est enregistré dans le tableau $decoup à count()-1 
$extension=$decoup[(count($decoup)-1)]; 

//on recupere le type mime du fichier, et on enregistre dans un tableau les type mime acceptés 
$file = $_FILES['fichier']['type']; 
$mime_types = array('image/pjpeg','image/gif','image/x-png','image/jpg'); 

//si le mime du fichier n'est pas un mime enregistré on test l'extension 
if (!in_array($file, $mime_types)){ 
if($extension=="jpeg" OR $extension=="gif" OR $extension=="png" OR $extension=="jpg"){ 
//execution de l'upload du fichier sur le serveur 
} 
else{ 
//on dit a l'utilisateur que sont fichier n'est pas une image
echo "<br><b>Le fichier envoyer n'est pas une image JPEG-GIF-PNG ou est trop volumineux !!!!!</b><br><br>";
} }
else{ 
//le type mime du fichier est reconnu, on fait l'upload 
echo "<b>Nom du fichier    : </b>".$name;   
echo "<br><b>Taille du fichier   :  </b>".$size;   
echo "<br><b>Image telecharger avec succes</b><br><br>";
echo'<img src="verify\\', $name ,'" size=100 width=100 alt="Image" />';
$uploadpath="verify\\";   
move_uploaded_file($tmp_name,$uploadpath.$name); 

$cnx = mysql_connect( "localhost", "root", "toor" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "test" ) ;
 

  $nom= $name ;
  $taille = $size ;
  $extension = $type ;
  $lien= "$uploadpath/$name" ;

 
  //création de la requête SQL:
  $sql = "INSERT  INTO info (nom, taille, extension, lien)
            VALUES ( '$nom', '$taille', '$extension', '$lien') " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
  {
    echo"<br><br><b>L'insertion A été Correctement Effectuée Dans La Base De Donnée</b>" ;
  }
  else
  {
    echo"<b>L\'insertion dans la base à échouée</b>" ;
  }
}
echo "<br><br><b>Pour revenir a la page d'aceuil</b> <a href=index.html>Cliquez ici</a>";
?>

4 réponses

  1. Bonsoir,

    Si je comprend bien vous voulez que seul les images uploader par l'utilisateur soit visible.
    Donc si Paul regarde les photos il verra que les sienne et pas celle de Pierre.

    Si oui dans la table users ajouter une entrée appelée id en Primary et Auto-Increment.
    Le contenu de cette entrée sera un chiffre unique pour chaque utilisateur.
    Reprenons l'exemple, Paul aura - par exemple - l'id 1 et Pierre l'id 2.

    Dans la table image ajouté un champs par exemple nommé possesseur. Cette entrée, possesseur, contiendra l'id de l'utilisateur.

    Du-coup pour afficher les images faites une requête avec une condition du type :

    SELECT * FROM image WHERE id='$id'


    La variable id contenant l'id du membre.

    J'espère avoir été claire et avoir répondu à la question ^_^
    2
    1. Dans la table image ajouté un champs par exemple nommé possesseur. Cette entrée, possesseur, contiendra l'id de l'utilisateur.

      comment faire ca SVP !!?
      0
  2. svp cooment le faire pour afficher just les photos de chque user
    processec = id_user !!
    <?php
    
    $cnx = mysql_connect( "localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
     
        $db = mysql_select_db( "uploadimageige36" ) ;
    
    
    
    $req = mysql_query("SELECT * FROM info"); 
    $nbr = mysql_query("SELECT count(*) FROM info"); 
    $n=mysql_fetch_array($nbr);
    
    $arr=array();
    while ($donnees = mysql_fetch_array($req)) 
      {
     $arr[]=$donnees['lien'];
     $arr2[]=$donnees['nom'];
      } 
    
    $nbcol=4;  
    $nbpics = $n[0];  
    echo "<b><center>Cliqué Sur Une Image Pour L'afficher En Taille Réel</center></b><br>";
    if ($nbpics != 0) { 
       echo '<table>'; 
       for ($i=0; $i<$nbpics; $i++){ 
          if($i%$nbcol==0) echo '<tr>'; 
      echo '<td > <a href='.$arr[$i].' target="_blank" ><img src='.$arr[$i].'  height=115 width=235 class="" alt="'.$arr2[$i].'" href='.$arr[$i].'></a></td>';
          if($i%$nbcol==($nbcol-1)) echo '</tr>'; 
    
       } 
       echo '</table>';  
    
    }  
    
    else echo '<b>Aucune image à afficher</b>';
    echo "<br><br><b>Pour revenir a la page d'aceuil</b> <a href=index.html>Cliquez ici</a>";
    
    ?>


    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    Merci d'y penser dans tes prochains messages.
    .
    0
    1. Bon voilà ceci devrait marcher ;)

      <?php
      //On simplifie le nom des variables $_FILES
      $tmp_name=$_FILES['fichier']['tmp_name'];
      $name=$_FILES['fichier']['name'];
      $size=$_FILES['fichier']['size'];
      $type=$_FILES['fichier']['type'];
      $erreur=$_FILES['fichier']['error'];
      
      
      //On récupère les valeurs du formulaire
      $fichiermp=$_FILES['fichier']['type'];
      
      //On récupère l'extension du fichier
      $decoup=explode('.',$fichiermp);
      //attention count() enregistre à partir de 0 donc la dernière valeur est enregistré dans le tableau $decoup à count()-1
      $extension=$decoup[(count($decoup)-1)];
      
      //On récupère le type mime du fichier, et on enregistre dans un tableau les type mime acceptés
      $file = $_FILES['fichier']['type'];
      $mime_types = array('image/pjpeg','image/gif','image/x-png','image/jpg');
      
      //Si le mime du fichier n'est pas un mime enregistré on test l'extension
      if (!in_array($file, $mime_types)){
      if($extension=="jpeg" OR $extension=="gif" OR $extension=="png" OR $extension=="jpg"){
      //Exécution de l'upload du fichier sur le serveur
      }
      else{
      //On dit a l'utilisateur que sont fichier n'est pas une image
      echo "<br/><b>Le fichier envoyer n'est pas une image JPEG-GIF-PNG ou est trop volumineux !</b><br/><br/>";
      } }
      else{
      //Le type mime du fichier est reconnu, on fait l'upload
      echo "<b>Nom du fichier    : </b>".$name;
      echo "<br><b>Taille du fichier   :  </b>".$size;
      echo "<br><b>Image telecharger avec succes</b><br><br>";
      echo'<img src="verify\\', $name ,'" size=100 width=100 alt="Image" />';
      $uploadpath="verify\\";   
      move_uploaded_file($tmp_name,$uploadpath.$name);
      
      //PARTIE A AJOUTER
      //==========
      //Je ne connais que PDO donc j'utilise cette fonction
      
      try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=VotreBDD;charset=utf8', 'ID', 'MDP');
      }
      
      catch (Exception $e)
      {
        die('Erreur : ' . $e->getMessage());
      }
      
      $reponse = $bdd->query('SELECT * FROM users');
      
      while ($donnees = $reponse->fetch())
      {
        $id_user=$donnees['id']
      }
      //==========
      
      $cnx = mysql_connect( "localhost", "root", "toor" ) ;
       
          //Sélection de la base de données:
          $db = mysql_select_db( "test" ) ;
       
      
        $nom= $name ;
        $taille = $size ;
        $extension = $type ;
        $lien= "$uploadpath/$name" ;
        //PARTIE A AJOUTER
        //==========
        $possesseur=$id_user
        //==========
       
        //création de la requête SQL:
        $sql = "INSERT  INTO info (nom, taille, extension, lien)
                  VALUES ( '$nom', '$taille', '$extension', '$lien') " ;
       
        //exécution de la requête SQL:
        $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
       
        //affichage des résultats, pour savoir si l'insertion a marchée:
        if($requete)
        {
          echo"<br><br><b>L'insertion A été Correctement Effectuée Dans La Base De Donnée</b>" ;
        }
        else
        {
          echo"<b>L\'insertion dans la base à échouée</b>" ;
        }
      }
      echo "<br><br><b>Pour revenir a la page d'aceuil</b> <a href=index.html>Cliquez ici</a>";
      ?>
      


      Si ce code ne marche pas je suis désoler :(, je n'e sais comment faire autrement :/
      1
      1. Merci BCP

        Le code est marche mais il ya un probleme

        http://im62.gulfup.com/cHYc3h.png
        0
      2. Modérateur
        @khalidoucheBonjour
        https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

        .
        0
      3. Merci Bcp
        0
    2. Vous pouvez suivre la démarche suivante :

      <?php
      
      // ===== Récupération de l'id dans la table 'users' =====
      try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=VotreBDD;charset=utf8', 'ID', 'MDP');
      }
      
      catch (Exception $e)
      {
        die('Erreur : ' . $e->getMessage());
      }
      
      $reponse = $bdd->query('SELECT * FROM users');
      
      while ($donnees = $reponse->fetch())
      {
        $id=$donnees['id']
      }
      
      // ===== Affichage de la table 'users' =====
      $reponse = $bdd->query("SELECT * FROM image WHERE possesseur='$id'");
      
      while ($donnees = $reponse->fetch())
      {
        // Votre affichage des images
      }
      ?>
      


      Pour mettre l'id de l'utilisateur vous devez l'insérer dans la table grâce à la requête préparée :

      try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=VotreBDD;charset=utf8', 'ID', 'MDP');
      }
      
      catch (Exception $e)
      {
        die('Erreur : ' . $e->getMessage());
      }
      
      $reponse = $bdd->query('SELECT * FROM users');
      
      while ($donnees = $reponse->fetch())
      {
        $id=$donnees['id']
      }
      
      // Votre code ici
      
      $nom= $name ;
      $taille = $size ;
      $extension = $type ;
      $lien= "$uploadpath/$name" ;
      $possesseur=$id
      
      $sql = "INSERT  INTO info (nom, taille, extension, lien, possesseur) VALUES ( '$nom', '$taille', '$extension', '$lien', '$possesseur')";
      


      Bon après je suis pas un pro de PHP mais ce code est, normalement :°, correcte ^^

      « Mieux vaut mourir debout que de vivre à genoux »
      Si vous avez votre réponse merci de mettre votre post en [Résolu] !
      0
      1. Merci Bcp mon frere

        mais just comment ajouter l'id de entite utilisateur dans la entite de processeur!!
        j'ai ajoute id dans la table users et maintenant comment ajoute la valeur de l'id users dans processeur !!
        0
      2. @khalidoucheIl suffit de suivre le dernier code ;)
        0
      3. ne fonctionne pas :'(
        0