Problème Upload PHP/MySQL

khalidouche Messages postés 26 Statut Membre -  
khalidouche Messages postés 26 Statut Membre -
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>";
?>
A voir également:

4 réponses

Lamastiko Messages postés 190 Statut Membre 49
 
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
khalidouche Messages postés 26 Statut Membre
 
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
Lamastiko Messages postés 190 Statut Membre 49
 
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
khalidouche Messages postés 26 Statut Membre
 
Merci BCP

Le code est marche mais il ya un probleme

http://im62.gulfup.com/cHYc3h.png
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > khalidouche Messages postés 26 Statut Membre
 
Bonjour
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

.
0
khalidouche Messages postés 26 Statut Membre
 
Merci Bcp
0
Lamastiko Messages postés 190 Statut Membre 49
 
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
khalidouche Messages postés 26 Statut Membre
 
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
Lamastiko Messages postés 190 Statut Membre 49 > khalidouche Messages postés 26 Statut Membre
 
Il suffit de suivre le dernier code ;)
0
khalidouche Messages postés 26 Statut Membre
 
ne fonctionne pas :'(
0
khalidouche Messages postés 26 Statut Membre
 
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