Page 1 sur 1

Soucis Unlink

Posté : 05 nov. 2011, 11:26
par TRUNCKS
Bonjour à vous,

J'ai un petit soucis avec ce bout de code:
if (file_exists("../$chemin_originale") && ("../$chemin_mini")){
	unlink("../$chemin_originale");
	unlink("../$chemin_mini");
else{
J'ai fait ça pour quand, dans mon formulaire de modification, si jamais il n'y a rien dans chemin_originale et chemin_mini, il n'y est pas d'erreur.
Mon soucis c'est que j'ai un:

Warning: unlink(../) [function.unlink]: Permission denied in C:\wamp\www\admin\upload\modifier2.php on line 101
Warning: unlink(../) [function.unlink]: Permission denied in C:\wamp\www\admin\upload\modifier2.php on line 102

Alors que tout marche bien si j'ai uniquement:
	unlink("../$chemin_originale");
	unlink("../$chemin_mini");
Seulement, bien sûr, si jamais il n'y a rien, ben j'ai un message d'erreur.

Re: Soucis Unlink

Posté : 05 nov. 2011, 11:40
par moogli
salut,

première chose, ton test if aura toujours la partie de droite égale à "true".
Pourquoi ?
simplement parce que php étant super sympa il va "transformer" (on dit en mauvais français caster) la chaine de caractère en booléen et si cette chaine de caractère c'est pas '0' le résultat va être "vrai" (true) et ceci quelque soir la chaine de caractère.

donc la soit t'a oublié le file_existe en recopiant soit tu l'a oublié tout court et c'est une faute.

d'ailleurs un test ne fonctionnant qu'avec de booléen on ne devrait jamais faire des truc du genre if($variable) cela n'a pas de sens si la variable n'est pas un booléen et un test clair telle que if ($variable === true) est quand même plus clair.

ensuite utiliser des variables dans les " nécessite un peux d'attention car php peux avoir du mal a savoir si tu veux $variable, $variable_truc ou afficher $variable suivis de '_truc' lorsque tu fait echo "$variable_truc";
dans ton cas tu peux très bien faire
<?php
if (file_exists('../'.$chemin_originale) && file_exists('../'.$chemin_mini)){
         unlink('../'.$chemin_originale);
         unlink('../'.$chemin_mini");
else{
}
?>
quand au reste le fait de faire le unlink dans le if ou en dehors ça ne change rien, le message d'erreur indique un problème de permission (l'utilisation exécutant php n'a pas le droit de supprimer le fichier choisis.

@+

Re: Soucis Unlink

Posté : 05 nov. 2011, 12:15
par TRUNCKS
Merci pour la réponse, j'ai fait une autre erreur,

J'ai fermé le }
if (file_exists('../'.$chemin_originale) && file_exists('../'.$chemin_mini)){
         unlink('../'.$chemin_originale);
         unlink('../'.$chemin_mini);
	}
	else{
Du coup, s'il y a une image, il l'a vire mais il arrête le script.

Il y a moyen, à la place du else, de continuer le script, quoi qu'il arrive ?

Re: Soucis Unlink

Posté : 06 nov. 2011, 13:18
par Ryle
Le else ne sert qu'a proposer une alternative si jamais la condition du if() n'est pas respectée, mais il est totalement facultatif. Et de la même façon que tu peux mettre du code après un if/else, tu peux tout aussi bien continuer ton script après un if() sans passer par un else :)

Code : Tout sélectionner

.. début du code .. if (condition) { .. traitement du if .. } .. suite du code, que le if ait été exécuté ou non
..