Suppression d'un dossier chez Fr*e

  • Auteur de la discussion Auteur de la discussion yep
  • Date de début Date de début
WRInaute discret
voilà mon problème est tout simple,
je souhaite supprimer un dossier chez l'hébergeur fr*e, mais avec ce script, je n'y arrive pas


function clr_dir($dir)
{
// ouvre le dossier ou fichier
if(@ ! $opendir = opendir($dir)){ return false; }

// tant qu'on peut le lire
while(false !== ($readdir = readdir($opendir)))
{
if($readdir !== '..' && $readdir !== '.')
{
$readdir = trim($readdir);
chmod($dir.'/'.$readdir, 0777);

// si c'est un fichier
if(is_file($dir.'/'.$readdir))
{
if(@ ! unlink($dir.'/'.$readdir)) { return false; }
// si c'est un dossier
}
elseif(is_dir($dir.'/'.$readdir))
{
// La fonction se rapelle pour supprimer les sous-répertoires
if(! clr_dir($dir.'/'.$readdir)) { return false; }
}
// fin if
}
// fin while
}

// fermeture du dossier ouvert
closedir($opendir);
// si la suppression du dossier
if(@ ! rmdir($dir)) { return false;}
return true;
}

// appel de la fonction
clr_dir($chemin_de_mon_dossier);

Quelqu'un voit-il l'erreur ? Merci d'avance
 
WRInaute discret
Je suis pas sur que cette fonction soit autorisée chez free.
Le unlink oui, mais le rmdir ?? Faut regarder le phpinfo

Et les !== sont normaux ce sont des différents en testant également la cohérence du type de variable
 
WRInaute occasionnel
Et si tu enlevais les arobases temporairement, juste histoire d'avoir un peu d'infos sur les erreurs rencontrées ?
 
WRInaute discret
arobases enlevés temporairement, aucune erreur retournée :p
il me dit que l'élément a bien été supprimé alors que c'est faux, mais cela vient du safe_mode='on' dans le phpinfo();

peut-on le modifier ?
 
WRInaute discret
M'étonnerait très fort !

Déjà quand tu es en hébergement payant mutualisé, tu ne peux pas faire ce genre de choses, alors chez free !
Et comme les fonctions pour changer les variables d'environnement sont aussi désactivées...
 
WRInaute impliqué
Voila ce que je lis pour du PHP 4
9.7.4 Opérateurs de comparaison
[Notes en ligne]

Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de comparer deux valeurs.
Exemple Nom Résultat
$a == $b Egal Vrai si $a est égal à $b.
$a === $b Identique Vrai si $a est égal à $b et qu'ils sont de même type (PHP 4 seulement). @tab
$a != $b Différent Vrai si $a est différent de $b.
$a < $b Plus petit que Vrai si $a est plus petit strictement que $b.
$a > $b Plus grand Vrai si $a est plus grand strictement que $b.
$a <= $b Inférieur ou égal Vrai si $a est plus petit ou égal à $b.
$a >= $b Supérieur ou égal Vrai si $a est plus grand ou égal à $b.
Un autre opérateur conditionnel est l'opérateur ternaire (": ?"), qui fonctionne comme en langage C.

<?php
(expr1) ? (expr2) : (expr3);
?>

Cette expression renvoie la valeur de l'expression expr2 si l'expression expr1 est vraie, et l'expression expr3 si l'expression expr1 est fausse.

Je ne vois pas de different "!==" encore ...
 
WRInaute occasionnel
Doc PHP4:
Operator Precedence
Associativity Operators
(...)
non-associative == != === !==
(...)

Plus loin:
Table 15-4. Comparison Operators
Example Name Result
(...)
$a !== $b Not identical TRUE if $a is not equal to $b, or they are not of the same type. (introduced in PHP 4)
(...)
 
WRInaute impliqué
Apres quelque essai, cela vient de la fonction rmdir

Excusez moi de mon ignorance avec ce different, ma doc le precisez pas , faudrait que je la mette a jour un de ces quatres matins ;)
Au moin, j'aurais appris deux choses :
- un nouveau different qui verifie aussi si c'est de meme type
- on ne peut supprimer un repertoire chez free via la fonction rmdir
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut