[ACC-Logo]

Våra publika CGI-script

[ACC Hemsida] [Hjälp] [Information] [Sök] [Index]

[This information is only available in Swedish]


Våra publika CGI-script
Här finns information om de CGI-script som vi tillhandahåller för våra användare.
Logfil
Om du är intresserad att veta vilka som besöker dina websidor kan du använda dig av vårt CGI-script access.cgi.
På de sidor som du önskar kontrollera lägger du in följande rad längst upp i html-filen:
<!--#include virtual="/cgi-bin/scripts/access/access.cgi" -->

Varje gång någon tittar på sidan kommer scriptet att lagra information om vem och ev. från vilken sida de kommit ifrån. Detta kommer inte att synas för den som tittar på sidan.

För att sedan kunna titta på logfilen anropar du show.cgi med följande rad i en html-fil:
<!--#include virtual="/cgi-bin/scripts/access/show.cgi" -->
Detta kommer att visa tabeller med träffarna och antalet träffar per sida som du valt att kontrollera.
Här är ett fullständigt exempel på hur en html-sida som visar träffarna kan se ut:
<Html>
  <Title>
    Accesses to my pages
  </Title>
  <Body BGColor="#CCCCCC">
    <!--#include virtual="/cgi-bin/scripts/access/show.cgi"-->
  </Body>
</Html>
Första gången access.cgi körs kommer du att få epost från wmaster med lite information. Det finns en tillhörande inställningsfil som lagras i ~/public_html/.access/config
Den innehåller information i form av nyckel=värde.
Just nu finns endast nyckeln maxcount som talar om hur hur många träffar som show.cgi ska visa, standard är 100.
Räknare
Se denna sida.
Filnerladdningsräknare

Om du har några filer som du vill ha koll på hur många som laddar ner den så har vi ett script som kan fixa det.

Scriptet lagrar antalet nedladdningar för en viss fil i en fil i katalogen ~/.acc_download/. Filnamnet bestäms av sökvägen till filen som skall laddas ner.

För att använda detta krävs att du först kopierar scriptet (detta pga hur det anropas och vem det ska köras som och lite andra tekniska detaljer) till din public_html:

mkdir -p ~/public_html/cgi-bin/
cp ~wmaster/cgi-scripts/acc_download.cgi ~/public_html/cgi-bin/
Därefter ska man lägga in lite kod där man vill ha själva nerladdningen samt presentationen av hur många som laddats ner..

För att göra en länk som registrerar nedladdningar skapar du en weblänk till acc_download.cgi/[fil] där [fil] är sökvägen till filen som ska laddas ner på ett av följande tre format:

För att inkludera en nedladdningsräknare på en HTML-sida använder du först <!--#set var="PATH_INFO" value="/[fil]" -->, där [fil] är av samma format som ovan, följt av: <!--#include virtual="sökväg/acc_download.cgi"--> Det är mycket viktigt att #set var kommer _före_ #include virtual. För att visa flera räknare på en sida är det bara att repetera. Observera att #set var måste köras före #include virtual för varje fall, då filen läses sekvensiellt.

Exempel:
Ditt användarnamn är nisse. html-filen som innehåller denna kod ligger någonstans i ~/public_html eller en underkatalog. acc_download.cgi ligger i katalogen ~/public_html/cgi-bin Det enda som varierar i de olika fallen är vart filen som ska räknas finns. Det kommer att finnas en länk där man kan ladda ner filen sen stå (Nedladdningar: 7) t.ex om filen laddats ner 7 gånger hittills.

Om filen har adressen http://www.acc.umu.se/~nisse/filer/bilder.zip:

<a href="/~nisse/cgi-bin/acc_download.cgi/filer/bilder.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="/filer/bilder.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)

Om filen har adressen http://www.acc.umu.se/~kalle/filer/bilder.zip:

<a href="/~nisse/cgi-bin/acc_download.cgi/~kalle/filer/bilder.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="/~kalle/filer/bilder.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)

Om filen har adressen http://www.cs.umu.se/~c96aaa/filer/bilder.zip:

<a href="/~nisse/cgi-bin/acc_download.cgi/http://www.cs.umu.se/~c96aaa/filer/bilder.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="http://www.cs.umu.se/~c96aaa/filer/bilder.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)

Om du vill ha länkar och statistik till filerna http://www.acc.umu.se/~nisse/filer/bilder.zip , bilder1.zip och bilder2.zip:

<a href="/~nisse/cgi-bin/acc_download.cgi/filer/bilder.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="/filer/bilder.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)<br>
<a href="/~nisse/cgi-bin/acc_download.cgi/filer/bilder1.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="/filer/bilder1.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)<br>
<a href="/~nisse/cgi-bin/acc_download.cgi/filer/bilder1.zip">bilder.zip</a>
<!--#set var="PATH_INFO" value="/filer/bilder1.zip" -->
(Nedladdningar: <!--#include virtual="/~nisse/cgi-bin/acc_download.cgi"-->)<br>

E-mailformulär

Detta CGI-script används om du vill ge dina hemsidebesökare möjlighet att skicka mail till ditt konto, eller till ett mailalias.

Du börjar med att skapa ett formulär på din hemsida. Formulär låter den som surfar in på din hemsida att skriva in information för att sedan skicka informationen till servern, där informationen kan behandlas av till exempel ett CGI-script.

Exempel: (observera att radnummreringarna inte ska vara med i själva HTML-filen)

  1. <form action="/cgi-bin/scripts/sendmail.cgi" method="post">
  2. Ämne: <input type="text" name="subject"> <br>
  3. Meddelande: <br>
  4. <textarea rows="15" cols="60" name="message"></textarea> <br>
  5. <input type="submit" value="Skicka">
  6. </form>

    Rad 1 och rad 6 begränsar själva formuläret. Rad 1 innehåller även parametrar som berättar var och hur informationen i formuläret ska skickas. i detta fall ska informationen skickas till /cgi-bin/scripts/sendmail.cgi med metoden post.

    Rad 2 skapar ett textfält. Namnet på fältet är väldigt viktigt, eftersom det är vad CGI-scriptet använder sig av för att identifiera just ämnesfältet.

    Rad 4 skapar ett större textfält på fler än en rad. Detta är lämpligt att använda, så användarna av hemsidan kan skicka med radbrytningar i sina brev. Parametrarna rows och cols anger hur många rader och kolumner textfältet ska kunna visa. Experimentera lite för att få fram en bra storlek för just din hemsida.

    Rad 5 skapar en knapp av typen "submit". Det vill säga att när besökarna trycker på denna knapp så skickas informationen i formuläret till det CGI-script vi angivit. Parametern value anger vilken text som ska finnas på knappen.

Genom att infoga exempelscriptet ovan i en HTML-sida får du ett formulär som skickar ett mail till din acc-mail. Det finns dock fler inställningar du kan göra för att få scriptet att bete sig som du vill genom att lägga till parametrar i action-parametern i form-taggen.
append Ponera att du har ett mailalias, stest+webmaster@acc.umu.se, som du vill kunna skicka mail till. Du lägger då till append=webmaster för att mailen som skickas via formuläret ska gå till detta mailalias istället för till stest@acc.umu.se.
backlink Om du lägger in backlink=1 som parameter till CGI-scriptet kommer det generera en länk till sidan du har formuläret på så dina besökare kan ta sig tillbaka när mailet är skickat. Om du till exempel istället vill att besökarna ska få en länk till http://www.acc.umu.se/~stest/ anger du detta istället för 1; backlink=http://www.acc.umu.se/~stest/
backlinktext Här kan du ange texten som ska vara på backlink-länken. Mellanslag byts ut mot +. Ex: backlinktext=Tillbaka+till+sidan
redirect Om du vill att besökarna automatiskt ska skickas till en annan sida när de skickat meddelandet kan du använda dig av redirect. Exempel: redirect=/~stest/
För att ange parametrar till CGI-scriptet lägger man på ett frågetecken (?) efter sökvägen till scriptet, varpå man fyller på med parametrar åtskiljda med ;. Ordningen på parametrarna spelar ingen roll.

Exempel: Vi vill skapa ett formulär som skickar ett mail till stest+web@acc.umu.se, och visar en länk som pekar på vår (stests) hemsida med texten "Hem". Vi måste då byta ut form-taggen i exemplet mot följande form-tagg:
<form action="/cgi-bin/scripts/sendmail.cgi?append=web;backlink=/~stest/;backlinktext=Hem" method="post">

Bildslumpare
Scriptet picture.cgi visar en "slumpvis" utvald bild ur en lista med olika bilder.
Lägg in följande html-kod där du vill ha en slumpad bild.
<!--#include virtual="/cgi-bin/scripts/picture.cgi" -->

Om man vill välja bilder själv så kan man göra det genom att skriva in filnamnen i en vanlig textfil, enligt följande exempel.
Om vi antar att användaren stest har gjort en fil vid namn bilder.txt i sin public_html-katalog så behöver han lägga till följande html-kod innan anropet till picture.cgi:

<!--#set var="PICTURE_FILE" value="/home/s/stest/public_html/bilder.txt" -->

Om du använder en räknare så kommer den att registrera 2 accesser för varje access till sidan, då picture.cgi också räknar accesserna för att kunna välja bild på ett bra sätt.

Isåfall, lägg in följande före anropet till picture.cgi:

<!--#set var="PICTURE_NOCOUNT" value="1" -->
Bildarkiv
Scriptet images.cgi visar alla bilder och kataloger i den katalog som det anropas ifrån.
Lägg in följande html-kod där du vill visa alla bilder/kataloger:
<!--#include virtual="/cgi-bin/scripts/images.cgi" -->

Scriptet klarar av att visa thumbnails ("preview-bilder") och textbeskrivningar. Om man har en bild som heter bilden.jpg, så skall thumbnail-bilden heta bilden.t.jpg och filen innehållande kommentaren heta bilden.desc. Vill man att en generell beskrivning skall visas kan man lägga den i index.desc. Script för att skapa en tumnagel av "lämplig" storlek finns i ~wmaster/public_html/images/archive/scaleimages.pl .

Som standard så är alla texter som scriptet skriver ut på engelska. Detta samt bakgrundsfärgen på rubrikerna går att ändra med följande variabler som sättes innan anropet till cgi-scriptet !

(exempel på svensk text och rosa bakgrundsfärg på rubrikerna):
<!--#set var="IMAGES_DIRTEXT" value="Kataloger" -->
<!--#set var="IMAGES_PICTEXT" value="Bilder" -->
<!--#set var="IMAGES_THUMBTEXT" value="Små bilder" -->
<!--#set var="IMAGES_LARGETEXT" value="Stora bilder" -->
<!--#set var="IMAGES_FLOWTEXT" value="Flödande vy" -->
<!--#set var="IMAGES_LISTTEXT" value="Listvy" -->
<!--#set var="IMAGES_FLOW" value="0" -->
<!--#set var="IMAGES_LARGE" value="0" -->
<!--#set var="IMAGES_HEADBGCOLOR" value="#ff69b4" -->

IMAGES_FLOW bestämmer om bilderna ska "flöda" eller vara i listform. Det är bara i listform som man ser filnamnen och kommentarerna, men man får sämre översikt då. Sätt till 1 för att slå på flödesvyn.

IMAGES_LARGE säger om den ska visa de fullständiga bilderna direkt eller tumnaglarna. Sätt till 1 för att visa fullständiga bilderna direkt.

Detta script är det som ACC använder till sitt bildarkiv. Detta finns under ~wmaster/public_html/images/archive/ om du vill titta hur vi gjort i de filerna.

Mailinglistfrontend
Denna funktion är tänkt att agera som en liten frontend för mailinglistor. Man definerar vilka som finns, vad de heter och en kort beskrivning, sen får användaren upp en lista med de inmatade listorna och får välja om de vill gå med i listan, gå ur eller göra ingenting.

Denna klump av script består av 3 filer, genform.cgi som genererar en tabell med diverse information som kommer delvis från listconfig. Informationen från dessa kommer med användarens hjälp att skickas vidare till list.cgi som kollar vad användaren vill och skickar mail till ställen som behövs.

Filen listconfig (exempelfil finns under ~wmaster/public_html/help/web/list/listconfig) kopieras till katalogen där det är tänkt att läggas. Sedan skall genform.cgi anropas ur er html-fil m.ha följande:

<!--#include virtual="/cgi-bin/scripts/genform.cgi"-->
Som kommer att generera en fin(?) tabell med listorna som är definerade i listconfig. Informationen skickas här vidare till list.cgi som tar hand om att kontrollera så det ser hyffsat bra ut och skicka iväg ett mail för att ta hand om subscribe/unsubscribe.

Exempelfiler för att sätta upp en "listhanterare" finns under ~wmaster/public_html/help/web/list/

Gästbok

Gästböcker är en rätt vanlig komponent på personliga hemsidor. För att få en på din egen hemsida så behöver du följande tre saker:

  1. En sida att skriva in information på.
  2. En sida där du visar andras kommentarer.
  3. Eventuellt en sida där du tackar för deltagandet.

Det går finfint att trycka ihop alla dessa till en enda sida också. Jag har faktiskt valt att utgå ifrån det. Tänk dig att du har nedanstående fil lagrad som guest.html.

  1. <html>
  2. <head>
  3. <title>Guestbook</title>
  4. </head>
  5. <body bgcolor="white">
  6. <!--#include virtual="/cgi-bin/scripts/guest.cgi" -->
  7.  
  8. <form action="guest.html" method="get">
  9. Namn: <input type="text" name="x_Namn"><br>
  10. Email: <input type="text" name="x_Email"><br>
  11. <textarea name="text" rows=10 cols=40></textarea><br>
  12. <input type="submit" value="Skicka">
  13. </form>
  14.  
  15. <!--#include virtual="guest.inc" -->
  16. </body>
  17. </html>

    Studera nu rad 6. Här anropar vi programmet som skapar loggfilen. Loggfilen kommer att få samma namn som den html-fil som innehåller detta anrop, fast med suffixed .html bytt mot .inc.

    Vi går vidare till rad 8. Vid form action anger vi namnet på den html-fil som innehåller det anrop vi nämnt ovan. Vid rad 11 har vi det obligatoriska text-fältet. Storleken kan ändras, men namnet måste vara text. Textfältet är platsen där kommentarerna ska skrivas in.

    Vi hittar två exempel på valfria fält på rad 9 och 10. Valfria fält har ett namn som börjar på "x_" och sedan följs av det namn som ska infogas i loggfilen framför fältets innehåll.

    Den resulterande loggfilen inkluderas nere vid rad 15. Om din loggfil inte kommer att heta guest.inc så är det en bra idé att ändra här.

    Exempelkoden ovan hittar du i katalogen ~wmaster/public_html/help/web/guest

    Dokumentation till denna gästbok finns även som man-sida. Skriv bara "man guest.cgi" så får du hjälp.



[ACC] [Help] [Web]
Denna sida ändrades sist av wmaster den 20/12 - 2014.