01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007
-
2 sept. 2005 à 10:56
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007
-
5 sept. 2005 à 18:33
Salut,
J'ai un problème pour afficher la photo d'un membre dans sa fiche. j'arrive à uploader la photo, elle est bien dans le répertoire destination avec son nom d'origine.
Voici un bout de mon code d'affichage
$select = "SELECT * FROM table WHERE pseudo='$pseudo'";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
LeTaz
Messages postés22Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 2 septembre 2005 2 sept. 2005 à 11:04
il faut ke le nom de ta photo soit stoké dans ta BDD sinon on ne peut pa savoir quelle photo est associé a la personne.
du coup tu affiche ta photo comme tu affiche le pseudo...
LeTaz
Messages postés22Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 2 septembre 2005 2 sept. 2005 à 11:33
Je pourrais detailler plus mais je suis au taf et j'ai un manque de temps.... je t'ai donc mis un code a moi qui marche.... a toi de le modifier qq peu.... si y'a un souci previens moi !
Ex formulaire posté dans la meme page :
echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post" enctype="multipart/form-data" name="upload'.$data['Num'].'" id="upload" class="login">';
echo 'Insérez votre photo/document avec le champ ci-dessous
';
echo '';
echo '';
echo '';
echo '';
echo '
';
echo '</form>';
traitement :
if ($modiffoto=="1")
{
$lg = $_POST['lg'];
$ph = $_POST['ph'];
$tmp_file = $_FILES['fichier']['tmp_name']; // nom temporaire du fichier uploadé
$size_file = $_FILES['fichier']['size']; // poids du fichier uploadé
$name_file = $_FILES['fichier']['name']; // nom du fichier uploadé
$type_file = substr(strstr($name_file,'.'),1); // extension du fichier uploadé
$repertoire = 'images/';
$extensions = 'png|PNG|jpg|JPG|jpeg|JPEG|gif|GIF|bmp|BMP|pdf|PDF|doc|DOC|xls|XLS'; // extensions de fichier autorisées
if ($tmp_file=="")// AUTRE CONDITION POSSIBLE !is_uploaded_file($tmp_file)
{ $erreur = ':: ERREUR ttt ::
pour ajouter une photo, vous devez obligatoirement en choisir une avec le bouton parcourir.'; }
else
{
// liste des extensions autorisées et verification
$ext=explode("|", $extensions);
for ($cpt=0; $cpt<(count($ext)); $cpt++)
{
if ($type_file==$ext[$cpt])
{
$auth_file=1;
}
}
for ($v=1; $v<4; $v++)
{
$name_file=(mt_rand(1,1000000));
$name_file=(ceil($name_file));
$name_file=$name_file.".".$type_file;
if (file_exists($destination.$name_file))
{
$v=1;
}
else
{
$v=20;
}
}
// teste autorisation extension
if ($auth_file!=1)//(!isset($auth_file))
{
exit('Type de fichier non autorisé au téléchargement');
}
chmod($repertoire.$name_file, 0755);//777
// OU
chmod($repertoire, 0755);//777
//echo $repertoire.$name_file.'
';
// on copie le fichier dans le dossier de destination
if (!move_uploaded_file($tmp_file, $repertoire.$name_file))
{
exit('Impossible de copier le fichier dans '.$repertoire.'.');
}
$sql = 'SELECT * FROM table WHERE Num="'.$lg.'"'; //num etant le n° auto du membre
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res = mysql_numrows($req);
$data = mysql_fetch_array($req);
if ($depart=="iut") // une condition non necessaire sauf pour moi
{
$data['Photo'.$ph] = "../".$data['Photo'.$ph];
$repertoire_write = str_replace("../", "", $repertoire);
}
else
{
$data['Photo'.$ph] = $data['Photo'.$ph];
$repertoire_write = $repertoire;
}
if ($data['Photo'.$ph]!= "")
{
chmod($data['Photo'.$ph], 0755);
unlink($data['Photo'.$ph]);
}
$sqlph = 'UPDATE '.$depart.' SET Photo'.$ph.'="'.$repertoire_write.$name_file.'" WHERE Num="'.$lg.'"';
mysql_query($sqlph) or die('Erreur SQL !'.$sqlph.'
'.mysql_error());
}
}
LeTaz
Messages postés22Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 2 septembre 2005 2 sept. 2005 à 11:40
Le but c'est au moment d'enregistrer ton image sur le serveur, tu recupere les info du fichier image (au moin le nom) que tu traite et tu fais un requete qui update la ligne de ta BDD correspondant a ton membre...
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 2 sept. 2005 à 12:07
Là je suis complètement perdu. Car je cherche à comprendre. je comprends que vous ayez pas le temps. si quelqu'un d'autre peut m'aider ce sera bien.
j'explique encore mon problème.
L'utilisateur envoie son formulaire remplir avec la photo qui a comme nom toto.jpeg sur son disque dur. Lors de l'envoie le chemin de la photo est sauvegarder dans le champ photo de type blob.Upload -) toto.jpeg se retrouve dans le répertoire de destination. J'arrive pas a afficher la photo de chaque membre. Ou bien dois je créer une autre table pour enrgistrer que les données des photos.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 2 sept. 2005 à 12:19
Hello,
si je reprends ton code, il manque un truc. Tu vas chercher les
resultats de ta requete, ok. Pour le pseudo, tu fais bien
$row['pseudo']. Mais pour la photo, tu fais : echo $photo.
Cette variable n'existe pas...
Je corrige en rouge :
$select = "SELECT pseudo, photo FROM table WHERE pseudo='$pseudo'";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 2 sept. 2005 à 12:35
C'est vrai voici ce que j'ai dans le champ photo [BLOB - 0 Octets]. Ce que je ne comprends pas la photo a été bien uploadée dans mon repertoire destination. pourquoi ce champ est vide et tous les autres sont renseignés.
ma table contient plus de 20 champs. Le champ photo est de typle blob
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 2 sept. 2005 à 12:54
J'ai dans le champ photo de ma table [BLOB - 0 Octets]. pour deux enregistrements effectués. Le répertoire destination contient les deux photos envoyées via le formulaire.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 2 sept. 2005 à 13:30
Oulo...
Ok...2 choses : transformes déjà ton champ photo. passe le du type blob, au type varchar (50) (50 ou plus, comme tu le sens).
Ensuite...là tu as le chemin complet. a ta place, je mettrai le chemin
relatif de ton image. D'ailleurs tu avais l'air de penser, dans ton
script, qu'elle se trouvait dans un répertoire /data/...
ce n'est visiblement pas le cas ?
Bref tu dois retrouver ton chemin relatif, ou complet comme tu préfères : donc par exemple:
01cod10
Messages postés110Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention13 août 2007 2 sept. 2005 à 13:51
Rien n'est enregistré dans le champ photo de ma table par conséquent la photo ne s'affiche pas. Une question est ce une bonne méthode si je fais un autre script qui ouvre le répertoire qui contient les photos et appelé ce script dans le code d'affichage du membre avec sa photo. c'est une idée comme ça. mais en réfléchisant comment allez prendre la bonne photo.