Je vois que tout le monde est en train de préparer le nouvel an, ca va pas être facile pour résoudre mon problême hihihi.
Treve de palisanterie, j' avance à grand pas (evidemment une fosi que j' ai posé mon soucis).
La fonction move_uploaded_file était à mon avis mal placée, la voici dans la condition, ca fonctionne dorénavant à un détail prés.
Tout le formulaire fonctionne trés bien, mais ce que je voudrai c'est que le formulaire ne mette a jour que ce que l' utilisateur à modifié.
voici le schéma:
je fais un SELECT sur tous les points de l' utilisateur de la session dont le pseudo est ****
ensuite je pose mon traitement de formulaire:
if(isset($_FILES['photo'])&&!empty($_FILES['photo']))
{
$photo = $_FILES['photo'];
$dossier = '/home/graffx/www/images/profil/';
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$taille_maxi = 50000;
$photo = time()."_".$_FILES['photo']['name'];
$taille = filesize($_FILES['photo']['tmp_name']);
$extension = strrchr($_FILES['photo']['name'], '.');
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 5000Ko';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$photo = strtr($photo,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo)or die(mysql_error()); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
}
}
else
{
$photo = $mesinfos['photo'];
}
Donc je récapitule ce que je voudrai:
l' utilisateur change une info de son profil, par exemple son avatar.
quand on valide, si les données des autres champs sont identiques a ceux de la base de données, on ne les modifie pas.
probleme qui arrive, le dernier:
quand je valide un changement, par exemple le site web ou le metier de mon profil, l'avatar est remplacé par la fonction time().
c'est a dire que si j' avais dans la base de données la photo 65465465465_test.jpg, elle sera remplace par 68746354654_
Hé oui, donc voila, je suis définitivement bloqué sachant que j' ai testé comme vous pouvez le voir la fonction empty ou isset sur $_FILES['photo']
Merci d'avance :s
Je vois que tout le monde est en train de préparer le nouvel an, ca va pas être facile pour résoudre mon problême hihihi.
Treve de palisanterie, j' avance à grand pas (evidemment une fosi que j' ai posé mon soucis).
La fonction move_uploaded_file était à mon avis mal placée, la voici dans la condition, ca fonctionne dorénavant à un détail prés.
Tout le formulaire fonctionne trés bien, mais ce que je voudrai c'est que le formulaire ne mette a jour que ce que l' utilisateur à modifié.
voici le schéma:
je fais un SELECT sur tous les points de l' utilisateur de la session dont le pseudo est ****
ensuite je pose mon traitement de formulaire:
[php]if(isset($_FILES['photo'])&&!empty($_FILES['photo']))
{
$photo = $_FILES['photo'];
$dossier = '/home/graffx/www/images/profil/';
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$taille_maxi = 50000;
$photo = time()."_".$_FILES['photo']['name'];
$taille = filesize($_FILES['photo']['tmp_name']);
$extension = strrchr($_FILES['photo']['name'], '.');
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 5000Ko';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$photo = strtr($photo,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo)or die(mysql_error()); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
}
}
else
{
$photo = $mesinfos['photo'];
}[/php]
Donc je récapitule ce que je voudrai:
l' utilisateur change une info de son profil, par exemple son avatar.
quand on valide, si les données des autres champs sont identiques a ceux de la base de données, on ne les modifie pas.
probleme qui arrive, le dernier:
quand je valide un changement, par exemple le site web ou le metier de mon profil, l'avatar est remplacé par la fonction time().
c'est a dire que si j' avais dans la base de données la photo 65465465465_test.jpg, elle sera remplace par 68746354654_
Hé oui, donc voila, je suis définitivement bloqué sachant que j' ai testé comme vous pouvez le voir la fonction empty ou isset sur $_FILES['photo']
Merci d'avance :s