Jump to content

PHP - Alterar ficheiros


jssb
 Share

Recommended Posts

Antes de mais referir, que não estou a usar nenhuma BD. Os ficheiros e pastar são guardados directamente no PC.

Já tenho tudo a funcionar menos a parte de editar ficheiros. Aparece um lista de ficheiros, o user clica em "editar" e depois atraves de um form html pode editar/alterar o ficheiro.

Em baxio o código que lista os ficheiros:

<?php
$lista_ficheiros = scandir("fh"); //selecciona partição
print("<p>");
foreach ($lista_ficheiros as $ficheiro) {
if (($ficheiro != ".") && ($ficheiro != "..") && (substr($ficheiro, 0, 1) != ".")) {
print($ficheiro . " <a href=\"teste.php\">EDITAR</a><br />");
}
}
print("</p>");
?>

Quando clicamos em editar deveria ir para a pag. teste.php e aparecer um form para a tal alteração do ficheiro que estará na directoria "fh/". Tem que aparecer tipo um textarea com o conteúdo actual do ficheiro e depois altera-lo.

Deixo tambem a informação que tenho dois métodos para criar ficheiros por upload e criação de raiz. Em que o nome dos input "type=text" e "input type="file" sao "nomeficheiro". E as form estão amabas com o método POST.

Não faço a minima que código tenho que colocar na pag teste.php para alterar o ficheiro. Já tentei de tudo! Se alg me quiser e achar que nao deixei info suf posso enviar os ficheiros.

Obrigado.

Link to comment
Share on other sites

Hmm mas parece-me que nesse exemplo, estão a abrir um ficheiro especifico por exemplo: $fh="test.txt";.. no meu carro existe uma lista de ficheiros que esta no dir "fh/" que são listados ao utilizador da seguinte forma:

nome-do-ficheiro1.txt - EDITAR

nome-do-ficheiro1.txt - EDITAR

nome-do-ficheiro1.txt - EDITAR

...

Penso que se torna mais complicado pq temos que abrir a directoria e saber em qual ficheiro o user clicou em EDITAR.

<?php

$fh_dir="fh/";
  if(strcmp(strtolower($_SERVER['REQUEST_METHOD' ]), "post")==0)
  {

      file_put_contents($fh_dir.$_POST['name'], $_POST['content']);
    
      echo "<div>ficheiro actualizado</div>";
  }
  
?>

<br>
<form method="post">
<input type="hidden" name="name" value="<?php echo $_GET['name']; ?>" />
<textarea name="content" cols="40" rows="10">
<?php
    echo file_get_contents($fh_dir.$_GET['name']);
?>
</textarea>
<input type="submit" value="Guardar" />
</form>

isso foi uma das soluçoes que tentei e tenho o seguinte erro:Warning: file_put_contents(fh/) [function.file-put-contents]: failed to open stream: No such file or directory in C:\xampp\htdocs\PW\teste.php on line 9

ficheiro actualizado.

Penso que com esse código é possivel, mas como é um trabalho académico e o professor valoriza código o mais simples e claro possivel gostaria de outra solução. Ou então resolver este.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.