Mitthögskolan CGI JavaScript HTML Excel Hem

Hem
Excel
HTML
JavaScript
CGI
Kursdeltagare
Kurswebb
 

CGI

Examination:

"Gör en valfri applikation i PHP. Den ska använda sig av formulär med formulärkomponenterna textfält, radioknappar, kryssrutor, rullningslista. Den ska använda sig av filhantering d.v.s. spara på fil och läsa från fil. Exempel på en applikation skulle kunna vara en enkätundersökning där inmatningarna lagras på fil och där en sammanställning görs genom att man läser innehållet från filen och skriver ut den på skärmen."

Kort beskrivning

Formuläret i JavaScript-uppgiften är källan till informationen för denna uppgift. Formuläret (form.html) använder sidan results.php som action. När formuläret således fyllts i på ett tillfredsställande sätt så skickas formulärdatan till scriptet nedan för att dels visa upp uppgifterna som skickats, dels spara informationen i en fil. För att komma åt uppgifterna i filen har jag skapat ett separat dokument, fileread.php och den php-koden återfinns längre ner på sidan.

Jag har byggt och provkört PHP-lösningen lokalt på en Apache-webserver med PHP4, men det verkar inte funka att köra PHP vare sig på studentportalen eller www.tnv.mh.se så hur det skall gå att redovisa detta vet jag inte.

PHP-koden i results.php

Det första scriptet skriver ut innehållet i formulärfälten för att ge användaren återkoppling.

<?PHP
// shows the previously entered form data to the user. 
   echo "Namn: ".$fornamn." ".$efternamn."<br>"
   echo "Epost: ".$epost."<br>";
   echo "Gata: ".$gata."<br>";
   echo "Postadress: ".$postnr." ".$ort."<br>";
   echo "Kurs: ".$kursval."<br>";
   echo "Datum: ".$kursdatum."<br>";
   echo "Beställd litteratur:".$littweb." ".$littexcel."<br>";
   echo "&Ouml;vrigt: ".$textfield."<br>";
?>

Det andra scriptet öpnar en fil i "append"-läge, alltså för att lägga till innehåll, och skriver in fälten tab-separerade, och avslutar skrivningen med en ny rad innan filen stängs. Om filen inte går att öppna visas istället ett felmeddelande.

<?PHP
// opens a file handle to the file data.txt for 
// appending contents
   $skrivfil = fopen("data.txt","a");
// if an error occurs, print an error message and exit
   if(!$skrivfil){
         print("Kunde inte öppna filen för skrivning");
         exit;
   }
// write output to the file. Each field 
// is separated with a tab-character "\t”
   fputs($skrivfil,"$fornamn\t");   
   fputs($skrivfil,"$efternamn\t");
   fputs($skrivfil,"$epost\t");
   fputs($skrivfil,"$gata\t");
   fputs($skrivfil,"$postnr\t");
   fputs($skrivfil,"$ort\t");
   fputs($skrivfil,"$kursval\t");
   fputs($skrivfil,"$kursdatum\t");
   fputs($skrivfil,"$littweb\t");
   fputs($skrivfil,"$littexcel\t");
   fputs($skrivfil,"$textfield\n");
// closes the file data.txt
   fclose($skrivfil);
?>

PHP-koden i fileread.php

Detta script läser in innehållet i filen till en variabel. Innehållet i variabeln skrivs sedan ut till en HTML-tabell genom två nästlade for-loopar. Den första loopen läser in en rad och delar upp de enskilda fälten till en vektor. Den andra loopen skriver ut fälten från vektorn till en rad i en tabell.

<?PHP
// opens the file data.txt and reads each line of the file
// into an array called $readfile
$readfile = file("data.txt"); // this loop reads all elements of the array and prints
// each field of the tab-delimited file to an HTML-table
for($i=0; $i<=count($readfile)-1; $i++){
$fields = split("\t",$readfile[$i]);
print("<tr>");
for($j=0; $j<=count($fields)-1;$j++){
print("<td>$fields[$j]</td>");
} //end for $j
print("</tr>");
} //end for $i
?>

 

 

   

© Marcus Sundgren, epost: marcus.sundgren@mh.se.
Senast ändrad Thursday, 30 October, 2003