;;;; Mala biblioteczka do CGI w scheme ;;;; Marcin Pilipczuk, 2004 ;;; Historia wersji: ;;; - 03.12.2004 - 0.1.0 ;;; header, headerstd, getqs, wypiszliste, querystring ;; Wypisuje liste stringow (define (wypiszliste lista) (if (null? lista) #t (and (display (car lista)) (wypiszliste (cdr lista)))) ) ;; Funkcja header - wysyla naglowki i konczy je. (define (header typ) (wypiszliste (list "content-type: " typ)) (newline) (newline) ) ;; Funkcja headerstd - standardowy koniec naglowkow (define (headerstd) (header "text/html")) ;; Querystring (define querystring (getenv "QUERY_STRING")) ;; Funkcja getqs - zczytuje z danych zmienna querystring (define (getqs nazwa) ; Znajduje najblizszy znak od pozycji poz. (define (nastznak poz znak) (if (< poz (string-length querystring)) (if (char=? (string-ref querystring poz) znak) poz (nastznak (+ poz 1) znak) ) #f ) ) ; Funkcja rekurencyjna skaczaca po & i szukajaca odpowiedniej nazwy (define (pom poz) (define x (nastznak poz #\=)) (define (przelicz x) (define na (substring querystring poz x)) (define y (nastznak x #\&)) (define z (if y y (string-length querystring))) (if (equal? na nazwa) (substring querystring (+ x 1) z) (pom (+ z 1)) ) ) (if x (przelicz x) #f ) ) (pom 0) )