フォームを作ってみたはいいけど、CGIでどのようなデータが飛んでくるのか最初はよくわからないことがあります。wireshark なんかで、ダンプしてみるのも手ですが、サーバ側でダンプしてみる方法を考えました。専用の CGIを 作成して、本来の CGI と置き換えることによって、クライアントの画面にダンプデータと言うか、クライアントから POST されたデータがそのまま表示されます。
これ ↓↓↓ がそのコードです。csh で記述しています。
#!/bin/csh -f echo Content-type: text/html echo "" set save = /tmp/CGIdata$$ echo '------------------------- DATA ---------------------------------------' > $save cat >> $save printf "\n\n\n\n" >> $save echo '------------------------- ENV ---------------------------------------' >> $save env >> $save printf "\n\n\n" >> $save echo '------------------------- set ---------------------------------------' >> $save set >> $save printf "\n\n\n" >> $save echo '------------------------------------------------------------------------' >> $save echo '<TITLE>CGI raw data</TITLE>' echo "<HTML><BODY>" echo '<CENTER><H2>CGI raw data</H2></CENTER><PRE>' cat $save rm -rf $dave echo "</PRE></BODY></HTML>"
前半で、クライアントから送られてきたデータと環境変数などをテンポラリファイルに入れています。後半は、HTMLでその中身を送り返しています。ただそれだけなんですが、簡単なCGIのデバッグには有効です。複雑なものは無理ですが。
いかがでしたか。CGI なんてもう古いかもしれませんが、ちょっとしたものに使いたくなるときがありますが、動かずに苦労することがあります。そんな時にお役に立てればと思います。