cs_winnie39
Messages postés45Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention 4 mai 2011
-
5 mars 2009 à 13:53
cs_winnie39
Messages postés45Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention 4 mai 2011
-
16 mars 2009 à 17:42
Bonjour à tous,
Voila, a force de recherche et de poste (notamment ici),
j' ai pratiquement terminé le code que je désire.
Voici en quoi il consiste :
Je récupère de ma BDD des informations sur un produits, ainsi que un certain nombre de photo (5) dont le chemin est stocké dans la BDD.
Le script est là pour effectué des modification sur cette fiche.
Tout fonctionne, je peux tout modifier, y compris les photos...
SEULEMENT
si un champs d' upload est vide, le chemin est remplacé par un chemin vide...
comment faire pour récupérer ceux déja présent si l' on ne désire pas modifier une ou plusieurs photo???
Voici mon code tel qu' il est actuellement
<?php
include('connect.php');
$id_produit = $_POST['id_produit'];
$titre = mysql_escape_string($_POST['titre']);
$descriptif = mysql_escape_string($_POST['descriptif']);
$bonne_affaire = mysql_escape_string($_POST['bonne_affaire']);
$prix = mysql_escape_string($_POST['prix']);
$prix_promo = mysql_escape_string($_POST['prix_promo']);
mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());
//Début des vérifications de sécurité...
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...';
}
if(($taille)>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//formatage du nom (suppression des accents, remplacements des espaces par "-")
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier'.$i]['tmp_name'], $dossier . $fichier)) //correct si la fonction renvoie TRUE
{
echo 'Upload effectué avec succès !';
$chemin = 'chemin'.$i;
${$chemin} = $dossier.$fichier;
}
else //sinon, cas où la fonction renvoie FALSE
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
}}
echo $chemin1;
mysql_query("UPDATE produit SET `img_photo1`='$chemin1', `img_photo2`='$chemin2', `img_photo3`='$chemin3', `img_photo4`='$chemin4', `img_photo5`='$chemin5' WHERE id_produit ='$id_produit'") or die (mysql_error());
// header('Location: accueil.php?contenu=bonnes_affaires_tmp');
?>
Si quelqu' un a une idée, je suis preneur
Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
En clair :
recuperer les NOMS des images anciennes contenues dans la
DB (au niveau du formulaire : voir MONFICHIER_FORM.php
) :
<?php echo $val['PHOTO1']; ?>
">
.........
Et au niveau du traitement (dans la boucle) :
if($_FILES['fichier'.$i]['name']!='') {
.... // (traitement de l'image uploadee)
} else {
.... // (on garde le nom de l'ancienne image)
$photo = $_POST['PHOTO'.$i.'avant'];
}
.... // enfin enregistrement dans la BD
Ou mieux :
faire dans la boucle l'enregistrement de la photo uniquement si uploadee :
if($_FILES['fichier'.$i]['name']!='') {
.... // (traitement de l'image uploadee)
.... // enregistrement du NOM de l'image uploadee dans la BD
}
//Début des vérifications de sécurité...
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...';
}
if(($taille)>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//formatage du nom (suppression des accents, remplacements des espaces par "-")
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier'.$i]['tmp_name'], $dossier . $fichier)) //correct si la fonction renvoie TRUE
{
echo 'Upload effectué avec succès !';
$chemin = 'chemin'.$i;
$final = $dossier.$fichier;
}
else //sinon, cas où la fonction renvoie FALSE
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
}
else{
$final = $_POST['PHOTO'.$i.'avant'];
}
echo'
';mysql_query("UPDATE produit SET `img_photo$i`'$final' WHERE id_produit'$id_produit'") or die (mysql_error());
echo $final;
}