Modification de fiche produit

Signaler
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011
-
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011
-
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

Messages postés
33
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
10 mai 2009

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');
                                                }


 


 




?>


 
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011

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
Messages postés
33
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
10 mai 2009

changer la valeur de chmod par 0600
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011

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
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011

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
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011

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
Messages postés
45
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
4 mai 2011

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