Avatar billede train1077 Nybegynder
11. februar 2009 - 21:10 Der er 5 kommentarer

PHP til tekstfil

Alt hvad jeg vil er at lave en form hvor teksten fra formen bliver ført over i et tekst dokument, men jeg kan ikke helt finde ud af at få styr på det, og vil gerne se hvordan det kan gøres.


<?php echo('<?xml version="1.0" encoding="ISO-8859-15"?>'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

<head>
<title>PHP</title>
</head>
 
<body>
  <h1>PHP</h1>
  <br />
    <h2>Skriv en note:</h2>
    <form action="info.txt" method="post">     
      <textarea rows="4" cols="80" name="text" value="text">skriv her</textarea>
      <br />
      <input type="submit" name="submitknap" value="Send">
      <input type="reset" name="fortryd" value="Fortryd">
     
    </form>   
         
  <?php
  $filnavn = "info.txt";
             
  $handle = fopen($filnavn, "a" ) or die("Filen kan ikke  åbnes?");
             

  ?>
</body>
</html>


Vær venlig at smid et eksempel på koden, min virker ikke helt...
Avatar billede jakobdo Ekspert
11. februar 2009 - 21:21 #1
http://dk.php.net/fwrite -> Example #1 A simple fwrite() example
Avatar billede train1077 Nybegynder
11. februar 2009 - 21:35 #2
Der er så ikke noget eksempel på det der inkludere nogen "form", så det hjælper ikke. Jeg kan godt se hvordan fwrite kan skrive noget til en fil, men hvordan får jeg den til at skrive det som man skriver i "form"en ????
Avatar billede jakobdo Ekspert
11. februar 2009 - 21:47 #3
Den skriver data her:

// Write $somecontent to our opened file.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
    }

indholdet er i $somecontent

Så hvis du laver din form:

<?php echo('<?xml version="1.0" encoding="ISO-8859-15"?>'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>PHP</title>
</head>
<body>
    <h1>PHP</h1>
    <br />
    <h2>Skriv en note:</h2>
    <form action="write.php" method="post">
        <textarea rows="4" cols="80" name="text" value="text">skriv her</textarea>
        <br />
        <input type="submit" name="submitknap" value="Send">
        <input type="reset" name="fortryd" value="Fortryd">
    </form> 
</body>
</html>

<?php
//write.php
$filename = 'info.txt';
$somecontent = $_POST['text'];

// Let's make sure the file exists and is writable first.
if(is_writable($filename) && isset($_POST['submitknap'])) {

    // In our example we're opening $filename in append mode.
    // The file pointer is at the bottom of the file hence
    // that's where $somecontent will go when we fwrite() it.
    if (!$handle = fopen($filename, 'a')) {
        echo "Cannot open file ($filename)";
        exit;
    }

    // Write $somecontent to our opened file.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
    }

    echo "Success, wrote ($somecontent) to file ($filename)";

    fclose($handle);

} else {
    echo "The file $filename is not writable";
}
?>
Avatar billede anitavizdk Nybegynder
11. februar 2009 - 22:46 #4
Du kan eventuelt bruge file_put_contents i stedet, der nok er lidt nemmere at benytte hvis man ikke skal lave de store disk operationer.

<?php echo('<?xml version="1.0" encoding="ISO-8859-15"?>'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

<head>
<title>PHP</title>
</head>

<body>
  <h1>PHP</h1>
  <br />
    <h2>Skriv en note:</h2>
    <form action="" method="post">   
      <textarea rows="4" cols="80" name="text" value="text">skriv her</textarea>
      <br />
      <input type="submit" name="submitknap" value="Send">
      <input type="reset" name="fortryd" value="Fortryd">
   
    </form> 
       
  <?php
  $filnavn = "info.txt";
  file_put_contents($filnavn,$_POST['text']);
  ?>
</body>
</html>
Avatar billede olebole Juniormester
11. februar 2009 - 23:12 #5
<ole>

Husk også, at XHTML 1.1 _skal_ sendes med MIME-typen 'application/xhtml+xml' - så du skal bruge header'en:
    header("Content-Type: application/xhtml+xml");

/mvh
</bole>
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