IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Des précisions sur "unlink" [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Des précisions sur "unlink"
    Salut !

    Actuellement en stage et travaillant sur le code PHP du backoffice d'un produit commercial, on m'a demandé de corriger un bug plutôt ennuyeux. Posons le cadre.

    C'est sur la page où l'utilisateur peut rentrer ou modifier ses produits que le problème se trouve. Lors d'une modification (seulement une modification, pas un ajout), si l'utilisateur modifie la description du produit puis supprime l'image, le texte modifié sera perdu.

    Exemple :

    Produit A

    Description : "Une paire de lunettes de soleil."
    Image : "lunettes.jpg"


    Pour modifier le produit, je change d'abord la description en :

    Description : "Une paire de lunettes de soleil noire."

    Puis je clique sur l'image pour la supprimer. La page est rechargée, l'image a été unlinkée et le texte est redevenu :

    Description : "Une paire de lunettes de soleil."


    En regardant le code, qui n'est donc pas de moi, j'ai pu isoler plus ou moins le problème. Je soupçonne cette partie là d'être à l'origine du problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	if ( isset ($_GET['suppr']) && $_GET['suppr']=="ok"){
    		$img_ptte=$_GET['img_ptte'];
    		$img=$_GET['img'];
    		$zoom=$_GET['zoom'];
    		if (is_file($img)){
    			unlink($img);
    		}
    		if (is_file($img_ptte)){
    			unlink($img_ptte);
    		}
    		if (is_file($zoom)){
    			unlink($zoom);
    		}
    En gros, j'aimerais savoir si le problème ne viendrait pas d'unlink qui pourrait recharger la page à l'identique en supprimant l'image et ainsi en supprimant les nouvelles données du champ description avant que celles-ci n'aient pu être envoyées.

    Si le problème ne vient pas d'unlink, avez-vous une idée de ce que cela peut être ?

    Merci d'avance !

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    si le problème ne viendrait pas d'unlink qui pourrait recharger la page à l'identique en supprimant l'image et ainsi en supprimant les nouvelles données du champ description avant que celles-ci n'aient pu être envoyées.
    Peut être que c'est la logique même du programme (de la politique de celui qui l'a programmé), c'est à dire que l'action de supprimer le fichier ne fait QUE supprimer le fichier, sans plus.
    Et pour modifier le texte d'un produit serait une autre action.
    Faut voir.

    Ce n'est peut être pas un bug en soit, c'est juste séparé,non ?

    si l'utilisateur modifie la description du produit puis supprime l'image, le texte modifié sera perdu.
    Est ce juste de la saisie quand tu parle de modification ou est ce une action (un submit) ?


    Comme ça, et vite dit, et bien si l'action de supprimer le fichier doit aussi modifier la fiche du produit, alors peut être faudrait supprimer le bouton "supprimer fichier", mettre une case à cochée dans la partie (formulaire) modification.
    Coté traitement, vérifier que c'est coché pour effectuer l'opération.
    M'enfin, c'est vraiment au feeling.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse.

    Concernant la politique du programme, l'objectif est bien de conserver les modifications du champ description au moment où l'on supprime l'image. En ce sens, c'est bien un défaut de conception.

    Concernant les modifications, je parle uniquement de la saisie. Concrètement, l'utilisateur va rajouter du texte dans le champ description puis va cliquer sur l'image pour la supprimer (la suppression se fait via un clic sur l'image et non via un bouton). A ce moment là, tout le texte modifié/ajouté au champ description est perdu et l'on revient à la description initiale du chargement de la page.

    Ce que je voudrais, c'est que les informations du champ description soient update dans la BDD avant que l'unlink ne se fasse et donc qu'elles soient conservées.

    Edit :

    Quelques précisions ! Le problème vient du fait que lors du clic sur l'image, la page est directement rechargée avec de nouveaux paramètres via un href.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=left><a href=modif.php?lien=article&suppr=ok&img=$photo&id=$id&zoom=$zoom>";
    J'ai donc procédé à un update automatique du champ description dans la BDD lors du chargement de la page. C'est un patch à l'arrache, je le concède, mais ça a le mérite de pas changer toute l'architecture du code.

    Problème "résolu" du coup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Flash Pascal] Des précisions sur ce qu'on peut faire
    Par petitprince dans le forum Flash Pascal
    Réponses: 5
    Dernier message: 22/03/2010, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo