Renommer un dossier

Eléphant du PHP | 355 Messages

21 nov. 2005, 23:56

Bonjour à tous :wink:

Je voudrai créer un script qui permette de renommer un dossier.
Se script devra ouvrir une boite de dialogue ou bien un pop up avec une zone de texte ou entrer le nouveau nom du dossier.
Je connais la fonction rename mais je n’arrive qu’à renommer un fichier directement sans ouvrir de pop up il faut mettre le nouveau nom dans le script, le script que je souhaite lui demandera d’entrer un nom.

Quelqu’un pourrait-il m’aider ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2005, 00:03

tu sais quoi ... ?
tu pourrai bien chercher un peu par toi meme... faire des tests et venir avec un code un peu avancé, au lieu de venir et demander qu'on te fournis le tout :wink:

mais voila quelque idée:
"boite de dialogue" => formulaire avec 2 champs text, un pr le dossier a renommer et l'autre pour le nouveau nom.

pas bien compliqué.... on sera la pour t'aider si ton code ne tourne pas rond mais faut que tu y réfléchisse un peu aussi.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 nov. 2005, 00:33

Merci beaucoup Tuc :wink:

Pouriez vous juste me donner le nom de la fonction boite de dialogue ?

Mammouth du PHP | 19672 Messages

22 nov. 2005, 00:40

Une boite de dialogue, c'est du langage client, donc pas du PHP mais du JavaScript à la rigueur. Ce serait alors window.open().

Tu devrais faire un tour sur aidejavascript
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 355 Messages

22 nov. 2005, 00:46

Bonjour Cyrano et merci :wink:

Se java script peut-il fonctionner dans un ficheir.php ?

Mammouth du PHP | 19672 Messages

22 nov. 2005, 00:57

On est mal barrés :-k

Bon petit cours de mise au point, il y a un principe que tu n'as pas encore visualisé et tu vas au devant de désagréments:

Le PHP est exécuté coté serveur, ça, je suis certain que tu le savais (j'espère) : que fait le PHP ? PHP envoie vers le navigateur des données écrites dans un langage que le navigateur peut interpréter: donc, du (X)HTML, de style CSS ou du JavaScript par exemple. Mais jamsi tu ne verras de PHP en affichant la source d'une page dans ton navigateur, même si l'extension de la page est en .php.

Comment intégrer ta commande JavaScript pour ouvrir un pop-up ? Exctement de la même manière que tu intègres du HTML ou des styles CSS dans ton code PHP. DOnc la manière de procéder pour pas te casser la tête est de commencer par te construire une page test en HTML brut avec ton JavaScript pour voir comment ajuster l'ouverture de ton pop-up. Une fois que c'est au point, il te reste à récupérer la partie de code dont tu as besoin pour l'insérer dans la page PHP.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 355 Messages

22 nov. 2005, 01:13

J'ai essayer autre chose, enfaite j'ai un script qui liste les dossiers présent dans le répertoire courant et affiche un lien pour renommer les dossiers:
<?php 
// Désactiver le rapport d'erreurs
error_reporting(0);
// On récupére les variables du site:
require '../variables.php';

$directories = glob($CibleRep."/*",GLOB_ONLYDIR); 
foreach ($directories as $dir) 
{ 
   echo '<a href="', $dir, '" > ', $dir, ' </a>'; 
   echo '<a href="renomme.php?dir=', $dir, '" > Renommer </a>'; 
   echo '<a href="supprim.php?dir='.$dir.'" > Suprimer </a><br>'; 
} 
?>
Ici le lien:
   echo '<a href="renomme.php?dir=', $dir, '" > Renommer </a>';
Ouvre le fichier renomme.php:
<?php 
   // Désactiver le rapport d'erreurs
   error_reporting(0);
   //Test de validation du formulaire 
      if(isset($_POST['submit']) && $_POST['submit'] == "Soumettre la requête"){ 
      //On vérifie si celle là est renseignée 
      if(!isset($_POST['RenommeDoss']) || empty($_POST['RenommeDoss'])){    
         print("<center>La '<b>zone de texte</b>' est vide !</center>"); 
      } else {       
         $texte = $_POST['RenommeDoss']; 
         //Si elle n'est pas vide on écrit dans le fichier texte    
		 $dir=$_GET['dir']; 
         rename('.$dir.', "$texte");    
      } 
   } 
?> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"><p> 
   Entrer le nouveau titre :<br /> 
   <textarea name="RenommeDoss"></textarea> 
   <input type="submit" name="submit" value="Soumettre la requête"> 
</p></form> 
Ce fichier affiche une zone de texte ou l'on peut entrer le nouveau nom, mais le dossier n'est pas renommer.

Voyer vous se qui bug ?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 nov. 2005, 11:13

Ben affiche le contenu de tes variables pour voir ce qui se passe !
<?php
   // Désactiver le rapport d'erreurs<--- NON pas en développement !!!
   //error_reporting(0);
error_reporting(E_ALL);
   //Test de validation du formulaire
      if(isset($_POST['submit']) && $_POST['submit'] == "Soumettre la requête"){
      //On vérifie si celle là est renseignée
      if(!isset($_POST['RenommeDoss']) || empty($_POST['RenommeDoss'])){    
         print("<center>La '<b>zone de texte</b>' est vide !</center>");
      } else {       
         $texte = $_POST['RenommeDoss'];//pas terrible, à quoi cela sert-il de transvaser les variables ?
echo "POST contient :".$_POST['RenommeDoss']."<br />";//affichage de DEBUG
         //Si elle n'est pas vide on écrit dans le fichier texte    
         $dir=$_GET['dir'];//même remarque qu'au dessus
echo "GET contient : ".$_GET['dir']."<br />";//affichage de  DEBUG
         rename('.$dir.', "$texte");    
      }
   }
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"><p>
   Entrer le nouveau titre :<br />
   <textarea name="RenommeDoss"></textarea>
   <input type="submit" name="submit" value="Soumettre la requête">
</p></form>
De plus, tu mets une virgule dans le code qui crée ton lien , au lieu d'un point :)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 355 Messages

22 nov. 2005, 13:32

Bonjour mere-teresa et merci beaucoup :wink:

Je viens donc de tester votre code, il affiche bien une zone de texte, j’ai enter un nouveau nom puis valider mais cela na pas fonctionner.
Voici les erreurs :

Code : Tout sélectionner

POST contient :www Notice: Undefined index: dir in C:\easyPHP\www\renomme.php on line 14 Notice: Undefined index: dir in C:\easyPHP\www \renomme.php on line 15 GET contient : Warning: rename(.$dir.,www): No such file or directory in C:\easyPHP\www \renomme.php on line 16

ViPHP
ViPHP | 2144 Messages

22 nov. 2005, 13:36

Le formulaire étant en method Post, toutes les variables doivent être récuperées par le tableau $_POST['nom_de_la_variable']

Eléphant du PHP | 355 Messages

22 nov. 2005, 15:38

Ben les variables sonr bien récupérer par:

Code : Tout sélectionner

$_POST['RenommeDoss']

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 nov. 2005, 15:39

et $dir ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 355 Messages

22 nov. 2005, 15:42

Ben pour dir il y a ceci:
         $dir=$_GET['dir'];//même remarque qu'au dessus 
echo "GET contient : ".$_GET['dir']."<br />";//affichage de  DEBUG 
         rename('.$dir.', "$texte");

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 nov. 2005, 15:49

Notice: Undefined index: dir in C:\easyPHP\www\renomme.php on line 14

Notice: Undefined index: dir in C:\easyPHP\www \renomme.php on line 15
GET contient :

Warning: rename(.$dir.,www): No such file or directory in C:\easyPHP\www \renomme.php on line 16
Tu ne vois pas un lien ? :shock:

Eléphant du PHP | 355 Messages

22 nov. 2005, 15:58

Vous parler de ceci :
(.$dir.,www)
:?: