_ 1.1 Säker filhantering Uppgiften belyser säker filhantering. __ Uppgift Gör en räknare som visar totala antalet besök av sidan. Värdet på antalet träffar ska lagras i en fil på serversidan och detta värde ska visas med mime-typen §text/plain§. Eftersom program på webbserversidan kan anropas av många webbklienter samtidigt så måste man göra programmet så att man undviker krockar i filhanteringen. __ Exempel Ett [exempel, 05_ass/ip2/1/1.1/php/example.php]. __ Tips För att få mime-typen §text/plain§ så kan man använda funktionen §header§, exempelvis: § § Denna rad informerar webbservern om typen på det som programmet levererar. Webbservern sänder det vidare (i HTTP-huvudet) till klienten (webbläsaren) så att den vet hur den ska tolka informationen som kommer. Skriver man enbart: § § så ser det ut som §text/plain§ men om man i Firefox tittar under §Tools/Page info§ så ser man att typen blir §text/html§. Använd funktionen §flock§ för att undvika krockar. Man bör använda §UTF-8§ som teckenkodning. I den här uppgiften ska inte HTML användas utan enbart serversideskod men vi tar redan här upp att man inte ska använda olika teckenkodningar på serversidan och klientsidan, se följande exempel: 1. Ingen blandning fungerar, här serversideskod (tex PHP) i §ISO-8859-1§ och klientsidesdokument (tex HTML) i §ISO-8859-1§: [http://people.dsv.su.se/~pierre/i/05_ass/ip2/1/1.1/img/example_1.png, Exempel 1] 2. Blandning fungerar inte, här serversideskod (tex PHP) i §ISO-8859-1§ och klientsidesdokument (tex HTML) i §UTF-8§: [http://people.dsv.su.se/~pierre/i/05_ass/ip2/1/1.1/img/example_2.png, Exempel 2] 3. Blandning fungerar inte, här serversideskod (tex PHP) i §UTF-8§ och klientsidesdokument (tex HTML) i §ISO-8859-1§: [http://people.dsv.su.se/~pierre/i/05_ass/ip2/1/1.1/img/example_3.png, Exempel 3] 4. Ingen blandning fungerar, här serversideskod (tex PHP) i §UTF-8§ och klientsidesdokument (tex HTML) i §UTF-8§: [http://people.dsv.su.se/~pierre/i/05_ass/ip2/1/1.1/img/example_4.png, Exempel 4] I en del äldre serversides-program är äldre teckenkodningar default, i Perl med CGI-modulen används tex §ISO-8859-1§ och då måste man explicit ange att man ska använda §UTF-8§: § #!/usr/local/bin/perl use CGI qw(-utf8); print header('text/plain;charset=UTF-8'); § I HTML-koden anges som vanligt teckenkoden med: § § Notera att man även måste spara dokumenten i en editor som sparar som §UTF-8§. Har man en webbplats med olika typer av text-filer (§txt§, §html§, §css§, §js§, §cgi§, §pl§, §php§, §xml§, §java§ osv) samt att dessa har olika teckenkodning så kan man använda [UTF-8 konvertering, https://people.dsv.su.se/~pierre/i/i.cgi?href=aa_public/utf8/main.txt] för att omvandla alla typer av text-filer med alla typer av teckenkod till UTF-8. __ Hjälp ~ 05_ass/help/01.txt > [Klicka här för hjälp, helper.dsv@gmail.com, Webbutv II: 1.1 Säker filhantering: http://people.dsv.su.se/~pierre/i/i.cgi?href=05_ass/ip2/1.1.txt] ½===system_tutoring_message===½ < ~ 05_ass/help/02.txt