Problème Upload PHP/MySQL
khalidouche
Messages postés
26
Statut
Membre
-
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 !!
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:
- Problème Upload PHP/MySQL
- Upload video youtube - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Commun file upload pattern ✓ - Forum Réseaux sociaux
4 réponses
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 :
La variable id contenant l'id du membre.
J'espère avoir été claire et avoir répondu à la question ^_^
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 ^_^
Bon voilà ceci devrait marcher ;)
Si ce code ne marche pas je suis désoler :(, je n'e sais comment faire autrement :/
<?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 :/
Vous pouvez suivre la démarche suivante :
Pour mettre l'id de l'utilisateur vous devez l'insérer dans la table grâce à la requête préparée :
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] !
<?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] !
svp cooment le faire pour afficher just les photos de chque user
processec = id_user !!
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.
.
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.
.
comment faire ca SVP !!?