/proj/valid/check.cgi

#!/bin/bash
# check.cgi - Validate Referer
# Author: Sean B. Palmer, inamidst.com
# Source: http://inamidst.com/proj/valid/source

DOCTYPE='XHTML 1.0 Strict'
URI=${HTTP_REFERER:-'-'}

function serve() { 
   echo Content-Type: image/png
   echo && cat $1
}

case $URI in 
   http://$SERVER_NAME/*) :;;
   *) serve logo.png; exit;;
esac

QUERY="?
   uri = ${URI//;/%3B};
   doctype = ${DOCTYPE// /+};
   output = xml
"

curl -Is http://validator.w3.org/check$(tr -d " \n" <<<$QUERY) | \
   grep -q 'X-W3C-Validator-Status: Valid'

STATUS=${?/1/in}valid
STATUS=${STATUS#0}

echo X-Validation-Status: $STATUS
serve $STATUS.png

# [EOF]