Problème Upload PHP/MySQL

Fermé
khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015 - Modifié par NHenry le 11/06/2015 à 21:16
khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015 - 13 juin 2015 à 12:13
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 153 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 13 mars 2016 49
11 juin 2015 à 22:09
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 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
11 juin 2015 à 22:40
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 153 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 13 mars 2016 49
12 juin 2015 à 18:07
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 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
13 juin 2015 à 11:39
Merci BCP

Le code est marche mais il ya un probleme

http://im62.gulfup.com/cHYc3h.png
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
13 juin 2015 à 11:41
Bonjour
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

.
0
khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
13 juin 2015 à 12:09
Merci Bcp
0
Lamastiko Messages postés 153 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 13 mars 2016 49
Modifié par Lamastiko le 11/06/2015 à 23:05
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 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
11 juin 2015 à 23:03
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 153 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 13 mars 2016 49 > khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
11 juin 2015 à 23:19
Il suffit de suivre le dernier code ;)
0
khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
12 juin 2015 à 04:33
ne fonctionne pas :'(
0
khalidouche Messages postés 26 Date d'inscription jeudi 11 juin 2015 Statut Membre Dernière intervention 16 juin 2015
Modifié par jordane45 le 13/06/2015 à 12:20
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