Bilgi Keşfi
/ Knowledge Discovery >> Bilgi Keşfi >> teknoloji >> bilgisayar >> bilgisayar programı >>

Nasıl CGI Scripting Works

pe: text /html \\ n \\ n " ); printf (" < html > \\ n "); printf (" < body > \\ n "); printf (" < h1 > Merhaba Benim Web sunucusunda, ben dosya simplest.c içine bu programı girmiş ve daha sonra diyerek derlenmiş:
 gcc -o simplest.c simplest.cgi 

​​(Bkz C Programlama C programlarının derlenmesi ile ilgili detaylar için çalışır.)

cgi-bin dizinine simplest.cgi yerleştirerek, idam edilebilir. ! Merhaba " Gördüğünüz gibi, betik yapar tüm bu diyor sayfası, " oluşturmak olduğunu; (; Content-type ": text /html \\ n \\ n ");

 printf: 

hat " Content-type: beklenmedik sadece bir parçasıdır diyor çizgidir text /html \\ n \\ n " herhangi bir CGI betiği tarafından tarayıcınıza gönderilen ilk şey olmalıdır metnin özel bir parçasıdır. Sürece bunu unutmayın, her şey iyi olacak. Eğer unutursanız, tarayıcı komut çıkışını reddeder.

PERL aynı şeyi yapabilirsiniz. Bir dosya adında simplest.pl içine bu PERL kodu yazın:

 #! /usr /bin /perlprint " Content-type: text /html \\ n \\ n "; baskı " < html > < body > < h1 > Merhaba Dünya "; baskı " < /h1 > < /body > < /html > \\ n "; 

cgi-bin dosyayı dizine yerleştirin. UNIX makinede, o da yazın yardımcı olabilir:
chmod 755 simplest.pl

 Bu komut çalıştırılabilir olduğunu UNIX söyler. 

Sadece CGI komut dosyası arkasındaki temel fikir gördük. Gerçekten bu kadar basit! Bir program çalıştırır ve onun çıkış
komut adı verilen tarayıcıya gönderilir. Stdout'a gönderilen normal çıkış tarayıcıya gönderilen alır ne

CGI komut dosyası bütün mesele, ancak, dinamik içerik oluşturmak için -. Betik çalıştırır her zaman, çıkış farklı olmalıdır. Çıktı komut dosyasını çalıştırmak her zaman aynı ise Sonuçta, o zaman da statik bir sayfa kullanabilirsiniz. Aşağıdaki C programı çok basit dinamik içeriği gösterir:

 #include < stdio.h > int incrementcount () {FILE * f; int i; f = fopen (" ", count.txt " r + "); (! f) {uyku (1) ise; f = fopen (" ", count.txt " r + "); (! f) -1 dönerseniz; } Fscanf (f "% d +;, &Sons, i); i ++; fseek (f, 0, SEEK_SET); fprintf (f "% d + 

Page [1] [2] [3] [4] [5] [6] [7] [8] [9]