Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 840
Hei, jeg lurer på hvordan man programmerer hjemmeisder i C, trenger man en kompilator eller skal man skrive det i kildekoder som med PHP også tar Webserveren seg av compileringen.

Det hadde vært artig å prøvd å programmert en hjemmeside i C, jeg har jo holdt på en del med C++ og det er jo ikke de store skritene fra C++ til C hvis man ser bort fra at C++ er objektorintert.

Og hva kreves det av server som skal hoste denne hjemmesiden i C.

eksempler på sider som er programmer i c, www.telefonkatalogen.no/index.c
Skjønner ikke jeg... for meg ser det ut som vanlig html
er absolutt ikke sikker, men kan de ikke ha brukt rewrite rule?
Trådstarter
Det er snakk om server scripte programmet, du ser jo ikke forskjellen om siden er bygg opp i php eller html heller. Det er snakk om språket som ligg på serveren.
ओम नमो नारायण
Dodecha's Avatar
DonorCrew
Jeg tror du har misforstått litt, den siden der er ikke skrevet i c, på en server kan man velge hvilke fil-endelser serveren skal håndtere som php, html etc. her har de bare bedt serveren behandle *.c som et webdokument.

Man kan lage programmer som som behandler data fra websider på en webserver og generere output som tilslutt vises til webklienten, da burde du lese på CGI.
Sist endret av Dodecha; 29. mai 2007 kl. 19:44.
For det første kan du konfigurere webservere til å tolke hvilke filendelser som helst som HTML, så selv om jeg kaller filene mine for zomglolwtf.cpp og legger de ut på web kan filene godt være fyllt med html og bli tolket som html-filer

For det andre, en mye brukt løsning for web backend (i alle fall i gamle dager) er CGI (http://en.wikipedia.org/wiki/Common_Gateway_Interface). Websidene folk får se er fortsatt HTML, men all dynamisk funksjonalitet som f.eks databasekall osv gjøres via CGI-Scripts. Disse scriptene kan da f.eks skrives i C eller PERL. Nå om dagen er dog dette teknologi som begynner å gå litt i glemmeboken og markedet domineres av PHP og ASP.NET
Men hvis du virkelig vil være hardcore kan du jo skrive din egen server i C, og dermed også skrive sidene dine i C (Du må huske at det du har skrevet i C må outputte html til de som prøver å se sida di, ellers kommer bare C-scriptet ditt opp eller no )

Isåfall burde du ha mye tid til overs og lese en god del om sockets og HTTP-protokollen.. Lykke til
Trigonoceps occipita
vidarlo's Avatar
Donor
Herregud da. Det er stortsett å skrive en CGI. En _ENKEL_ CGI i bash ser ca. slik ut:

Kode

#!/bin/bash
echo "Content-Type: text/html"
echo #Vi vil ha contenttype og så ei blank linje.
#CGIer må sjølv sende content-type og charset
echo "Hei og hopp"
Så vil følgande bli sendt til browseren

Kode

Content-Type: text/html

Hei og hopp
Du forstår poenget? Well. Det er trivielt å skrive det samme i C, men å hente inn variabler fra brukeren er et pes i C.

CGI kan forøvrig vere et kvart program som holder seg til CGI-standarden, slik som eksempelet mitt, og som kan kjørast av www-serveren. Det vil sei at C må kompilerast til ei binærfil.
m0b
m0b's Avatar
DonorAdministrator
Som nevnt litt tidligere her i tråden. Så lenge du klarer å spytte ut en gyldig content type og litt snacks som sammenfaller meg CGI-standarden kan du stort sett bruke hva du vil.

Nå var spørsmålet ditt direkte rettet mot C, så jeg skriver et lite eksempel.

Filen blaster.c

Kode

#include <stdio.h>

int main( int argc, const char* argv[]  )
{
        printf( "Content-type: text/html\r\n\r\n" );

        printf( "<html><body><h1>Dette er en blaster CGI-side.</h1></body></html>" );

        return 0;
}
Kan kompileres under linux med gcc slik

Kode

gcc  -o blaster.cgi blaster.c
Under Gentoo-linux er det standard et cgi-bin dir for cgi under /var/www/localhost/cgi-bin hvor du kan legge den ferdigkompilerte filen. Bruker du en annen distro eller et annet OS, og forsåvidt en annen webserver må du lese litt i config og dokumentasjon om hvordan du kan lage andre cgi-directories eller finne det som er standard.

http://wilhelmsen.nu/blaster.c
http://wilhelmsen.nu/cgi-bin/blaster.cgi

Ønsker du å lære mer om emnet kan du kjøpe deg en bok. F.eks The Complete CGI Programming Guide fra Skillsoft Press.
Sist endret av m0b; 29. mai 2007 kl. 22:04.