Grabbing HTTP Header

Dan Shafer dan at eclecticity.com
Tue May 6 04:41:03 EDT 2003


I think it's time to conclude that there is something wrong with the Apache configuration or something. A simple script that merely puts a constant runs fine and behaves as expected. But any attempt to use any CGI variables blows up with an internal server error.

It says I can find more info in the server error log but my Linux guru and I have been looking without success for where that log is kept.

Sigh. More reasons my book is needed, but I have to figure this out before I can write about it!

>Well I don't know what to say. It works perfectly here. Try just:
>
>#!mc
>on startUp
>  put $QUERY_STRING into tBuffer
>  put "Content-Type: text/plain" & cr
>  put "Content-Length:" && the length of buffer & cr & cr
>  put tBuffer
>end startUp
>
>Monte
>>
>> Thanks, Monte.
>>
>> I got your post on the Rev list. The engine is in the right place
>> and referenced correctly. A simple CGI that doesn't involve
>> parsing the incoming headers but just puts up a message works just fine.
>>
>> I have set the permissions on the script to 755, so that is right as well.
>>
>> I just can't make the very script that you present below run on
>> my system and I'm completely befuddled as to why. One of the
>> problems is I can't figure out where on OSX there might be a log
>> I can check to see more precisely what's going wrong here.
>>
>> Arrggggh.
>>
>> >
>> >Hi Dan
>> >
>> >I'm not sure if you go my post on the Rev list about this. One thing that
>> >you need to remember is to make sure the first line points to
>> the engine. If
>> >the engine is named mc and it's in the same folder as the cgi
>> then the first
>> >line is: #!mc otherwise it's #!<path to mc><engine name>. It's
>> beter to work
>> >out the full path then you can put CGIs anywhere and you don't need to
>> >change it.
>> >
>> >I've posted the version of echo.cgi that I use for your reference:
>> >
>> >#!mc
>> ># This MetaTalk script loops over all the environment variables
>> ># set by the server when it runs a CGI application printing out
>> ># its name and value.
>> >on startup
>> >  # loop over all of the global variables, getting name and value
>> >  repeat for each item i in the globals
>> >   put i && "=" && value(i)& return after buffer
>> >  end repeat
>> >  # write minimal set of HTTP headers to stdout
>> >  read from stdin until empty
>> >  put it after buffer
>> >  replace cr with "<P>" in buffer
>> >  put "Content-Type: text/plain" & cr
>> >  put "Content-Length:" && the length of buffer & cr & cr
>> >  put buffer
>> >end startup
>> >
>> >The other thing is to make sure the file has permissions of 755 so it can
>> >execute.
>> >
>> >Regards
>> >
>> >Monte
>> >>
>> >>
>> >> This script does not run on my configuration. It gives me the
>> >> same useless internal server error all other CGIs that don't
>> work give me.
>> >>
>> >> I am really stumped here. I hope someone can lead me out of the
>> >> wilderness.
>> >>
>> >> >I though the echo.mt cgi has it?
>> >> >
>> >> >#!/home/mc/mc
>> >> ># This MetaTalk script loops over all the environment variables
>> >> ># set by the server when it runs a CGI application printing out
>> >> ># its name and value.
>> >> >on startup
>> >> ># loop over all of the global variables, getting name and value
>> >> >  repeat for each item i in the globals
>> >> >   put i && "=" && value(i) & return after buffer
>> >> >  end repeat
>> >> >
>> >> >  put "" into tContainer
>> >> >  if $CONTENT_LENGTH > 0 then
>> >> >    put $CONTENT_LENGTH into tLen
>> >> >    put "" into tContainer
>> >> >    put 0 into tContainerSize
>> >> >    repeat
>> >> >      read from stdin until empty
>> >> >      put it after tContainer
>> >> >      add length(it) to tContainerSize
>> >> >      if tContainerSize >= tLen then
>> >> >        exit repeat
>> >> >      end if
>> >> >    end repeat
>> >> >  end if
>> >> >
>> >> >  #!
>> >> >  put "Content-Type: text/plain" & cr
>> >> >  put "Content-Length:" && the length of (buffer &
>> tContainer) & cr & cr
>> >> >  put buffer & tContainer
>> >> >end startup
>> >> >
>> >> >--
>> >> >
>> >> >
>> >> >_______________________________________________
>> >> >metacard mailing list
>> >> >metacard at lists.runrev.com
>> >> >http://lists.runrev.com/mailman/listinfo/metacard
>> >> _______________________________________________
>> >> metacard mailing list
>> >> metacard at lists.runrev.com
>> >> http://lists.runrev.com/mailman/listinfo/metacard
>> >>
>> >
>> >_______________________________________________
>> >metacard mailing list
>> >metacard at lists.runrev.com
>> >http://lists.runrev.com/mailman/listinfo/metacard
>> _______________________________________________
>> metacard mailing list
>> metacard at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/metacard
>>
>
>_______________________________________________
>metacard mailing list
>metacard at lists.runrev.com
>http://lists.runrev.com/mailman/listinfo/metacard



More information about the metacard mailing list