' Gambas module file EXPORT PRIVATE $cCache AS NEW Collection PRIVATE $cVal AS Collection PRIVATE $aDay AS String[] PRIVATE $aMonth AS String[] PUBLIC SUB FormatDate(dDate AS Date) AS String dDate -= Frac(Date(Now)) ' Go to GMT IF NOT $aDay THEN $aDay = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] $aMonth = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] ENDIF RETURN $aDay[WeekDay(dDate)] & ", " & Format(Day(dDate), "00") & " " & $aMonth[Month(dDate) - 1] & " " & Year(dDate) & " " & Format(Time(dDate), "hh:nn:ss") & " GMT" END PUBLIC FUNCTION _get(sVar AS String) AS String DIM sVal AS String sVal = $cCache[sVar] IF NOT sVal THEN sVal = Application.Env[sVar] $cCache[sVar] = sVal ENDIF RETURN sVal END PUBLIC SUB _put(sVal AS String, sVar AS String) $cCache[sVar] = sVal END PUBLIC SUB Encode(URL AS String) AS String DIM iInd AS Integer DIM sRes AS String DIM sCar AS String FOR iInd = 1 TO Len(URL) sCar = Mid$(URL, iInd, 1) IF sCar = " " THEN sCar = "+" ELSE IF IsLetter(sCar) OR IF IsDigit(sCar) OR IF InStr("*-._", sCar) THEN ELSE sCar = "%" & Hex$(Asc(sCar), 2) ENDIF sRes &= sCar NEXT RETURN sRes END PUBLIC SUB Decode(URL AS String) AS String DIM iInd AS Integer DIM sRes AS String DIM sCar AS String FOR iInd = 1 TO Len(URL) sCar = Mid$(URL, iInd, 1) IF sCar = "%" THEN TRY sCar = Chr$(Val("&H" & Mid$(URL, iInd + 1, 2))) IF NOT ERROR THEN iInd += 2 ELSE IF sCar = "+" THEN sCar = " " ENDIF sRes &= sCar NEXT RETURN sRes END PUBLIC SUB _init() DIM sRoot AS String 'DIM sLang AS String 'sLang = Trim(Split(_get("HTTP_ACCEPT_LANGUAGE"), ",")[0]) 'IF System.Charset = "UTF-8" THEN sLang &= ".UTF-8" 'System.Language = sLang File.In.EndOfLine = gb.Windows File.Out.EndOfLine = gb.Windows sRoot = CGI["SCRIPT_NAME"] IF Right(sRoot) = "/" THEN sRoot = Left$(sRoot, -1) IF NOT sRoot THEN sRoot = "/" CGI["SCRIPT_NAME"] = sRoot END PUBLIC SUB Error(Text AS String) OUTPUT TO DEFAULT Response.Begin PRINT "

"; ("Error in CGI script"); "

" PRINT "
"; Text; "
" Response.End QUIT END