Avatar billede timealert Nybegynder
08. marts 2003 - 16:31 Der er 14 kommentarer og
1 løsning

Skrive i txt-fil?

Jeg søger en script-kode som, når jeg udfylder nogle <form>'s, skal gemme det i en txt-fil og vise det på andre sider.

Jeg er ny i PHP så beskrivelse om hvad den gør er at foretrække.

Man skal udfylde disse <form>: http://www.centric.dk/itc/forside.htm
(log ind med bruger=skriv pass=fly)

Den skal så finde infomationerne fra og vise dem på første side. (Lige nu kan man godt skrive, men den gemmer det ikke)

Jeg håber i forstod hgvad jeg mener...

/timealert
Avatar billede rzj Nybegynder
08. marts 2003 - 17:00 #1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>E-post katalog</title>
</head>
<body>
<!--HER SKAL DINE FORMS I HTML IND-->
DINE FORMS
<!--HER SKAL DER IKKE VÆRE MERE HTML-->
<?php
function putInFile(){
               
      //$_POST VARS er VARS DER FREMKOMMER NÅR FORM BLIVER SENDT
      //['index'] skal svare til name-attributten i dine input-felter
     
      //Kommaseperere data
                $infile = "$_POST['rute'], $_POST['fra'], $_POST['plnAnk'], $_POST['fvtAnk']";
               
      //Åben en fil  og placer pointer i slutningen
      //Dvs at der skal tilføes data til filen hvergang formen sendes
      //Hvis filen skal overskrive hver gang skal a erstattes med w
                $file = fopen("data.txt", "a");
                //Kom indhold i filen
      //\n betyder at der skal laves et linieskift efter hvert datasæt
      fputs($file, $infile."\n");
                //Luk filen igen
      fclose($file);
               
      //Vis at data er registreret
                echo "<h2>Registration submitted succesfully</h2>";

}
function view_all(){
    // Læs filens indhold ind i string file_contents
    $filename = 'data.txt'; 
    $fp = fopen($filename, 'r');
    $file_contents = fread($fp, filesize($filename)); 
    fclose($fp);

    // Del indholdet af file_contents op i array og kom hver linie på hver sin plads.
    $lines = explode ( "\n", $file_contents ); 

    //Gennemgå hver plads i arrayet med var line
    foreach ( $lines as $line ) { 
   
    //Få fat i de forkellige data, der jo er kommaseperede               
        list( $rute, $fra, $plnAnk, $fvtAnk ) = explode(', ', $line);
                               
        if($rute != "" || $fra != "" || $plnAnk != "" || $fvtAnk != "" ){
        //Fjern overskydende whitespace
      $rute = trim($rute);
            $fra = trim($fra);
            $plnAnk = trim($plnAnk);
            $fvtAnk = trim($fvtAnk);
     
      //Pak data ind i tabel og kom i array
            $data[] .= "<tr valign=\"top\"><td>$name</td>
            <td>$email</td>
            <td>$url</td>
            <td>$icq</td></tr>";
        }
    }
    //Hvis der er noget i arrayet så skriv indholdet af $data ud...                           
    if(count($data) > 0){
        sort ($data);
        reset($data);                               
        echo '<table border="0" width="450"><tr><th>Navn</th>
    <th>Email</th>
        <th>Url</th>
        <th>Icq</th>';
   
        for($i=0;$i<count($data);$i++){
                                        echo $data[$i];
        }
        echo "</table>";
                               
    } else {
    echo 'No data en file";
    }                       
                                   
                                   
}
//Kald altid funktion der viser indhold
//Ved du ville have dette på side for sig selv, men det kan du 'lege' med selv
view_all();

//Kald name-attributten i din submit knap for action
if(isset($_POST['action'])){
putInFile($name, $email, $url, $icq);
}
?>
</body>
</html>
Avatar billede rzj Nybegynder
08. marts 2003 - 17:02 #2
Mere pædagogisk tror jeg ikke det skal blive. Hvis du virkeligt går på IT-Højskolen (og du sikkert følger kurset Webprogrammering eller Databaseunderstøttet Webpublicering), så burde du vel også lave lidt selv :-)
Jvf. dit <title> element på: http://www.centric.dk/itc/forside.htm

/raz
Avatar billede rzj Nybegynder
08. marts 2003 - 17:03 #3
en sidste ting. Du skal lave en fil data.txt uden indhold og den skal være CHMOD 777 (alle rettigheder) for at du kan skrive til den...
Avatar billede rzj Nybegynder
08. marts 2003 - 17:08 #4
Rettelse:
//Kald name-attributten i din submit knap for action
if(isset($_POST['action'])){
putInFile();
}
Avatar billede ztyxx Nybegynder
08. marts 2003 - 17:09 #5
kunne du ikke bruge den løsning du fik i http://www.eksperten.dk/spm/325717
Avatar billede timealert Nybegynder
08. marts 2003 - 17:58 #6
Hvem har sagt jeg går på IT-højskolen?? Jeg går på HTX og har IT på C-niveau og PHP starter man først med på B- eller A-niveau. :) Tak for hjælpen.

->ztyxx jeg skylder dig stadig point for http://www.eksperten.dk/spm/325717.
-Jeg kunne ikke lige finde ud af det derfor oprettede jeg dette spørgsmål. :)
Avatar billede rzj Nybegynder
08. marts 2003 - 18:05 #7
timealert>> Jamen undskyld fornærmelsen. Det er nu engang bare sådan at IT-Højskolen forkortes ITC (IT University of Copenhagen), så det var egentligt bare mere et kvalificeret gæt...
Jeg takker for point.
Avatar billede ztyxx Nybegynder
08. marts 2003 - 18:09 #8
timealert> det er ligemeget med point, hjælper ikke for det jeg kan få for det, men fordi jeg måske kan :-)
Avatar billede timealert Nybegynder
09. marts 2003 - 10:22 #9
rzj -> Jeg er ikke på nogen måde fornærmet :)

Den brokker sig lidt over scriptet:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\websider\resadmin\centric.dk\centric.dk\www\blaabog\brugere\test.php on line 42

linie 42 svarer ca. til:
//Komma-seperere data
$infile = "$_POST['rute'], $_POST['fra'], $_POST['P_Ank'], $_POST['F_Ank']";

Jeg håber du kan hjælpe mig... :)
Avatar billede tbg Nybegynder
09. marts 2003 - 11:43 #10
hmm lige en kommentar, jeg har også IT på C-niveau på HTX, og PHP indgår i vores pensum. :)
Avatar billede timealert Nybegynder
09. marts 2003 - 12:21 #11
så har i en bedre lærer end os :)
Kan du så hjælpe mig?? (Kommentar: timealert 09/03-2003 10:22:51)
Avatar billede tbg Nybegynder
09. marts 2003 - 17:22 #12
nej desværre ikke, har kun leget med at gemme data i en database.. Og nah, vores lærer går in for selvhjælp, han aner ikke en fis om PHP :)
Avatar billede ztyxx Nybegynder
09. marts 2003 - 22:58 #13
problemet er at en funktion ikke er lukket med en }, denne

function view_all(){
    // Læs filens indhold ind i string file_contents
    $filename = 'data.txt';
    $fp = fopen($filename, 'r');
    $file_contents = fread($fp, filesize($filename));
    fclose($fp);

mangler en } sådan

function view_all(){
    // Læs filens indhold ind i string file_contents
    $filename = 'data.txt';
    $fp = fopen($filename, 'r');
    $file_contents = fread($fp, filesize($filename));
    fclose($fp);
}
Avatar billede rzj Nybegynder
10. marts 2003 - 09:00 #14
for at være 100% sikker, så gør sådan:
linie 42 svarer ca. til:
//Komma-seperere data
$infile = $_POST['rute'].', '.$_POST['fra'].', '.$_POST['P_Ank'].', '.$_POST['F_Ank'];

Jeg har fjernet gåseøjne omkring strengen...
/raz
Avatar billede timealert Nybegynder
10. marts 2003 - 14:00 #15
Fejlmeddelse:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in D:\websider\resadmin\centric.dk\centric.dk\www\blaabog\brugere\test.php on line 108

(jeg har fjernet en "}" i linie 57 som den ikke kunne lide)
Scriptet ser sådan ud:
<html>
<head>
<title>ITC eksamensopgave</title>
<link rel="stylesheet" type="text/css" href="style/scrollbar.css">
<link rel="stylesheet" type="text/css" href="style/text.css">
<link rel="stylesheet" type="text/css" href="style/baggrund.css">
<link rel="stylesheet" type="text/css" href="style/input.css">
</head>
<body>
<form method="POST" action="info.php" target="info">
<table border="0" width="275" cellspacing="0" cellpadding="0">
  <tr>
    <td width="135" height="30">Rute:</td>
    <td width="140" height="30"><input type="text" name="rute" size="25" maxlength="10" tabindex="1" class="box"></td>
  </tr>
  <tr>
    <td width="135" height="30">Fra:</td>
    <td width="140" height="30"><input type="text" name="fra" size="25" maxlength="10" tabindex="2" class="box"></td>
  </tr>
  <tr>
    <td width="135" height="30">Planlagt ankomst:</td>
    <td width="140" height="30"><input type="text" name="P_Ank" size="25" maxlength="10" tabindex="3" class="box"></td>
  </tr>
  <tr>
    <td width="135" height="30">Forventet ankomst:</td>
    <td width="140" height="30"><input type="text" name="F_Ank" size="25" maxlength="10" tabindex="4" class="box"></td>
  </tr>
  <tr>
    <td width="275" colspan="2" height="30">
      <div align="right"><input type="submit" value="        Skriv        " class="box" tabindex="5">
    </td>
  </tr>
</table>
</form>
<?php
function putInFile(){
               
      //$_POST VARS er VARIABLER DER FREMKOMMER NÅR FORM BLIVER SENDT
      //['index'] skal svare til name-attributten i dine input-felter
     
      //Komma-seperere data
                $infile = $_POST['rute'].', '.$_POST['fra'].', '.$_POST['P_Ank'].', '.$_POST['F_Ank'];
               
      //Åben en fil  og placer pointer i slutningen
      //Dvs at der skal tilføes data til filen hvergang formen sendes
      //Hvis filen skal overskrive hver gang skal a erstattes med w
                $file = fopen("data.txt", "a");
                //Kom indhold i filen
      //\n betyder at der skal laves et linieskift efter hvert datasæt
      fputs($file, $infile."\n");
                //Luk filen igen
      fclose($file);
}               
      //Vis at data er registreret
                echo "<h2>Registration submitted succesfully</h2>";

function view_all(){
    // Læs filens indhold ind i string file_contents
    $filename = 'data.txt'; 
    $fp = fopen($filename, 'r');
    $file_contents = fread($fp, filesize($filename)); 
    fclose($fp);

    // Del indholdet af file_contents op i array og kom hver linie på hver sin plads.
    $lines = explode ( "\n", $file_contents ); 

    //Gennemgå hver plads i arrayet med var line
    foreach ( $lines as $line ) { 
   
    //Få fat i de forkellige data, der jo er kommaseperede               
        list( $rute, $fra, $plnAnk, $fvtAnk ) = explode(', ', $line);
                               
        if($rute != "" || $fra != "" || $plnAnk != "" || $fvtAnk != "" ){
        //Fjern overskydende whitespace
      $rute = trim($rute);
            $fra = trim($fra);
            $plnAnk = trim($plnAnk);
            $fvtAnk = trim($fvtAnk);
     
      //Pak data ind i tabel og kom i array
            $data[] .= "<tr valign=\"top\"><td>$name</td>
            <td>$email</td>
            <td>$url</td>
            <td>$icq</td></tr>";
        }
    }
    //Hvis der er noget i arrayet så skriv indholdet af $data ud...                           
    if(count($data) > 0){
        sort ($data);
        reset($data);                               
        echo '<table border="0" width="450"><tr><th>Navn</th>
    <th>Email</th>
        <th>Url</th>
        <th>Icq</th>';
   
        for($i=0;$i<count($data);$i++){
                                        echo $data[$i];
        }
        echo "</table>";
                               
    } else {
    echo 'No data en file";
    }                       
                                   
                                   
}
//Kald altid funktion der viser indhold
//Ved du ville have dette på side for sig selv, men det kan du 'lege' med selv
view_all();

//Kald name-attributten i din submit knap for action
if(isset($_POST['action'])){
putInFile();
}
?>
</body>
</html>
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