2014-08-28 4 views
0

Je rencontre un problème avec mon code. Fondamentalement, je peux générer et supprimer un sous-répertoire dans un dossier existant. cependant, quand il l'affiche tente d'ouvrir le dossier sans passer par le dossier de son en gros:.Impossible d'ouvrir le sous-répertoire généré par php

Répertoire principal:

generate.php

testCreate.php

testDeleteDir.php

ajouts (dossier)

  • essai (php générer d dossier à travers les fichiers php ci-dessus)

Lorsque j'essaie d'accéder à "test", il ne passe pas par des téléchargements pour y accéder. Comment puis-je réparer cela?

PHP CODE: test.php:

<form action="testCreate.php" method="post"> 
    Enter the name of Folder: <input type="text" name="name"> 
    <input type="submit" value="generate"> 
</form> 
<?php 
    $path = "./uploads"; 

    $dir = opendir($path) or die ("unable to open directory"); 

    while ($file = readdir($dir)){ 
    if($file == "." || $file == ".." || $file == "test.php" || $file == "testCreate.php" || $file == "testDeleteDir.php"){ 
     continue; 
    } 

    echo "<a href='$file'>$file</a><a href='testDeleteDir.php?dir=$file'> Delete</p><br />"; 
    } 

    closedir($dir); 
?> 

testCreate.php:

<?php 
    $dir = $_POST['name']; 

    mkdir("./uploads/" . $dir, 0777); 

    header("location: test.php"); 
?> 

testDeleteDir.php:

<?php 
    $dir = $_GET['dir']; 
    rmdir("./uploads/" . $dir); 
    header("location: test.php"); 
?> 

Toute aide est grandement appréciée! Je vous remercie!

Répondre

0

Vous n'avez pas simplement besoin d'ajouter le chemin d'accès au lien, comme ceci?

echo "<a href='$path$file'>$file</a><a href='testDeleteDir.php?dir=$file'> Delete</p><br />"; 

maintenant il lit à la fois la valeur pour le chemin et le répertoire des fichiers

+0

merci !! désolé, le chemin était déjà composé de la barre oblique supplémentaire, donc je l'ai édité, sinon le lien serait/uploads // newfolder: P merci !! –

+0

Ah désolé, j'ai approuvé la correction. –

0

readdir() ne comprend pas le chemin du répertoire que vous lisez, par exemple

$fd = opendir('/etc'); 
echo readdir($fd); 

faire écho à ., pas /etc/..

Puisque vous lisez seulement les noms de fichiers, mais les lire à partir d'un sous-répertoire, vous devez inclure dans votre subdir que html href s:

echo "<a href='uploads/$file'>$file[...snip...] 
       ^^^^^^^^ 
Questions connexes