Modification de fiche produit

cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011 - 3 mars 2009 à 14:04
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011 - 5 mars 2009 à 10:21
Bonjour à tous,
voila j' ai un petit problème,
Dans le site il y a ce que j' appel une fiche produit avec plusieurs photos.
Tout à été gérer pour l' ajout et la suppression.
mon problème concerne la modification,

Je n' arrive pas à faire en sorte que je puisse changer certaines photos, et du coup aucune modification ne s' opèrent...

Voici le code :

<?php
include('connect.php');

$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']);

   
    if($_FILES['fichier']['name']!='')
                                                {
                                               
                                               
                                               
                                               
                                               

for ($i = 1 ; $i < 6 ; $i++)
{
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
   
    //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;
    }
}mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix','img_photo1'='$chemin1','img_photo2'='$chemin2','img_photo3'='$chemin3','img_photo4'='$chemin4','img_photo5'='$chemin5',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());   
    header('Location: accueil.php?contenu=bonnes_affaires_tmp');

                                                }
                                                else
                                                {                                                    mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());   
                                                    header('Location: accueil.php?contenu=produit_modif_tmp');
                                                }

?>

Si quelqu' un à la moindre idée ...

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre

7 réponses

chasseur2 Messages postés 33 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 10 mai 2009
3 mars 2009 à 14:16
il est nessecaire de chmoder votre repertoir $dossier pour permttre de modifier
essai acev ça


 


 




<?php
include('connect.php');


$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']);


 


   
    if($_FILES['fichier']['name']!='')
                                                {
                                               
                                               
                                               
                                               
                                               


for ($i = 1 ; $i < 6 ; $i++)
{
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
   
    //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);
        $dossier = chmod($dossier,0777);
        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;
    }
}mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix','img_photo1'='$chemin1','img_photo2'='$chemin2','img_photo3'='$chemin3','img_photo4'='$chemin4','img_photo5'='$chemin5',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());   
    header('Location: accueil.php?contenu=bonnes_affaires_tmp');


 


                                                }
                                                else
                                                {                                                    mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());   
                                                    header('Location: accueil.php?contenu=produit_modif_tmp');
                                                }


 


 




?>


 
0
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011
3 mars 2009 à 14:29
Merci de prendre un peu de temps pour regarder,

cela ne change rien, par contre je viens de découvrir que ce qui posait souci était en fait  le if($_FILES['fichier']['name']!='') situé à la ligne 13

car j' ai une erreur : Undefined index: fichier, mais je ne comprend pas pourquoi...

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
0
chasseur2 Messages postés 33 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 10 mai 2009
3 mars 2009 à 14:44
changer la valeur de chmod par 0600
0
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011
3 mars 2009 à 14:54
alors j' ai trouver un début d' erreur,
j' avais oublier $id_produit = $_POST['id_produit'];

Mais malgré cela et les modif du chmod, cela ne fonctionne toujours pas

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011
4 mars 2009 à 12:10
On progresse lentement,
j' avais fait une 2eme erreur bête,
j' avais oublier  enctype='multipart/form-data'> dans le fichier qui transfert les info...

Alors, maintenant je n' ai plus d'erreur, mais toujours pas de modif dans la bdd...

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
0
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011
4 mars 2009 à 16:05
En résumé, avec ce code là je peux effectuer des modifications qui sont effectuées dans la base de données, à la condition que TOUT les champs d' upload soit vide,
Si un seul est rempli cela ne fonction pas et j'ai tout ces messages d' erreurs :

Notice: Undefined index: fichier1 in C:\Program Files\EasyPHP 3.0\www\lescuisinesdemarine\admin\enregistre_detail_modif_bonnes_affaires.php on line 27

Notice: Undefined index: fichier1 in C:\Program Files\EasyPHP 3.0\www\lescuisinesdemarine\admin\enregistre_detail_modif_bonnes_affaires.php on line 29

Notice: Undefined index: fichier1 in C:\Program Files\EasyPHP 3.0\www\lescuisinesdemarine\admin\enregistre_detail_modif_bonnes_affaires.php on line 31

Vous devez uploader un fichier de type png, gif, jpg, jpeg...

Répété 5 fois (autant que de champs d' upload)

Voici le code là où j' en suis

<?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']);

  
    if($_FILES['fichier']['name']!='')
                                                {
                                              
                                              
                                              
                                              
                                              

for ($i = 1 ; $i < 6 ; $i++)
{
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
  
    //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;
    }
}mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix','img_photo1'='$chemin1','img_photo2'='$chemin2','img_photo3'='$chemin3','img_photo4'='$chemin4','img_photo5'='$chemin5',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());  
    header('Location: accueil.php?contenu=bonnes_affaires_tmp');

                                                }
                                                else
                                                {                                                    mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") ;  
                                                    //header('Location: accueil.php?contenu=produit_modif_tmp');
                            echo'gnia';
                                                }

?>

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
0
cs_winnie39 Messages postés 45 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 4 mai 2011
5 mars 2009 à 10:21
Encore du progrès,
Maintenant, je peux faire l' uploade ET enregistrer les modification textuelles, mais pas les image ... et ce à la condition que je retire 'img_photo1'='$chemin1','img_photo2'='$chemin2','img_photo3'='$chemin3','img_photo4'='$chemin4','img_photo5'='$chemin5',  de la requête...

Voici le code actuelle ...

<?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']);

  
   
                                              
                                              
                                              
                                              
                                              

for ($i = 1 ; $i < 6 ; $i++)
{

if($_FILES['fichier'.$i]['name']!='')
                                                {
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
  
    //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;
    }
}}mysql_query("UPDATE produit SET `titre` '$titre',`descriptif` '$descriptif',`prix` = '$prix','img_photo1'='$chemin1','img_photo2'='$chemin2','img_photo3'='$chemin3','img_photo4'='$chemin4','img_photo5'='$chemin5',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());  
 //   header('Location: accueil.php?contenu=bonnes_affaires_tmp');

?>

help please

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
0
Rejoignez-nous