Avatar billede puffin Nybegynder
11. april 2005 - 16:38 Der er 7 kommentarer og
1 løsning

Problem med txt fil i php

Hejsa folkens.

Jeg er rimelig ny indenfor php, så jeg er stødt i et problem :)

Jeg har lavet/fundet lidt kode til at kunne ændre i en txt fil vha. php, men det vil ikke som jeg vel.

<?php
    $fil = "text.txt";
    $fd = fopen ($fil, "w");
    $indhold = fread ($fd, filesize ($fil));
    fclose ($fd);
?>
<body>
<form action='<?=$_SERVER['PHP_SELF'];?>' enctype='multipart/form-data' method='POST'>
<textarea id=text style="width: 360px; height: 230px; border: 1px solid #000;"><?php $indhold ?></textarea>
</form>
</body>

Sådan ser et lille uddrag af koden ud, men jeg kan ikke få den til at åbne text.txt filen i <textarea> og når jeg selv skriver noget der og trykker gem reloader den bare siden med gemmer ikke det jeg gerne vil have gemt.

Har læst lidt forskelligt på nettet men er ikke helt klar over hvad jeg gør forkert... er jeg meget på vildspor eller?
Avatar billede puffin Nybegynder
11. april 2005 - 16:39 #1
Rettelse:

<?php
    $fil = "text.txt";
    $fd = fopen ($fil, "w");
    $indhold = fread ($fd, filesize ($fil));
    fclose ($fd);
?>
<body>

<form action='<?=$_SERVER['PHP_SELF'];?>' enctype='multipart/form-data' method='POST'>

<textarea id=text style="width: 360px; height: 230px; border: 1px solid #000;"><?php $indhold ?></textarea>

<input type='submit' value='Gem'>

</form>
</body>

:)
Avatar billede coderdk Praktikant
11. april 2005 - 16:43 #2
<?php
    $fil = "text.txt";
    $indhold = file_get_contents( $fil ) ;
?>
<body>
<form action='<?=$_SERVER['PHP_SELF'];?>' method='POST'>
<textarea id=text style="width: 360px; height: 230px; border: 1px solid #000;"><?php echo $indhold; ?></textarea>
<input type='submit' value='Gem'>
</form>
</body>

Du havde bare glemt "echo" eller "print" - Jeg har skiftet læsningen ud med noget simplere - og din enctype behøver du ikke med mindre du skal uploade filer ;)
Avatar billede dennismp Nybegynder
11. april 2005 - 16:44 #3
Spørgsmålet minder meget om: http://www.eksperten.dk/spm/608459

måske kan du tage udgangspunkt i det script istedet?
Avatar billede puffin Nybegynder
11. april 2005 - 16:46 #4
Ahh, takker.

Vil lige prøve det, men den viser det der allerede står deri og samtidig giver mig mulighed for at rette...

var selv den at læse noget om fopen og fwrite, men det har du da helt undladt.
Avatar billede puffin Nybegynder
11. april 2005 - 21:02 #5
dennismp: Læste lidt om det der, men forstår faktisk ikke det helt store af det. Prøvede at lege lidt med det, men jeg synes ikke at kunne få det til at fungere.

coderdk: Det hjalp i hvert fald en del. Jeg kan nu åbne txt dokumentet i textområdet, men når jeg retter i det og vil gemme det reloader den bare siden med det der stod før, altså den gemmer det ikke.

Prøvede at lege lidt med fopen, fwrite osv... men der lykkedes det mig kun at slette hvad der står i text.txt hver gang jeg trykker gem. :(

Funktionen ser nu således ud:

<?php
  $fil = "text.txt";
  $indhold = file_get_contents( $fil ) ;
?>
       
<form action='<?=$_SERVER['PHP_SELF'];?>' method='POST'>
<tr>
  <td>
    Tekst: <br>
  <textarea id=text style="width: 360px; height: 230px; border: 1px solid #000;"><?php echo $indhold; ?></textarea>
  </td>
</tr>
<tr>
  <td>
    <input type='submit' value='Gem'>
  </td>
</tr>
</form>

Det er dog kun en del af dokumentet... kan fejlen skyldes at jeg har 2 forms i mit dokument, et til at håndtere billedupload/sletning og en til tekst?

Problemet er som sagt at den stadig ikke vil gemme.
Avatar billede coderdk Praktikant
11. april 2005 - 21:08 #6
<?php

  $fil = "text.txt";

  if ( !empty( $_POST['tekst'] ) )
  {
    $fd = fopen ($fil, "w");
    $indhold = fwrite($fd, $_POST['tekst']);
    fclose ($fd);
  }

  $indhold = file_get_contents( $fil ) ;

?>
     
<form action='<?=$_SERVER['PHP_SELF'];?>' method='POST'>
<tr>
  <td>
    Tekst: <br>
  <textarea id=text name="tekst" style="width: 360px; height: 230px; border: 1px solid #000;"><?php echo $indhold; ?></textarea>
  </td>
</tr>
<tr>
  <td>
    <input type='submit' value='Gem'>
  </td>
</tr>
</form>
Avatar billede puffin Nybegynder
11. april 2005 - 21:26 #7
Fantastisk.. nu virker det... takker, og point er givet. :)
Avatar billede coderdk Praktikant
11. april 2005 - 21:28 #8
Så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester