Webで使用する際
Webで使用する際
http://www.activebasic.com/activebasic5 ... cr_web.png
みたいにするにはどうすればいいのでしょうか?
とりあえずコンパイルした拡張子を".exe"→".cgi"にすれば良いと言うのは分かってます。
ちょっと質問の仕方が大雑把なので、聞きたい要点をまとめると
・現在のAB5CP1でも拡張子を変えればCGIとして動作するのでしょうか?
・プログラム内でSubやFunctionやAPIの使用はできるますか?
・上の質問で"できる"のなら、Linux(?)サーバ(要はWinサーバ以外)でも使用できますか?
・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
・最初の出力時に、CGIと同じく"#! /usr/local/bin/perl"とかの記述が必要なのでしょうか?
疑問が溜まっていたので、思い切って5つも質問してしまいました。
答えれる物だけでも良いので、よろしくお願いしますm(_ _)m
みたいにするにはどうすればいいのでしょうか?
とりあえずコンパイルした拡張子を".exe"→".cgi"にすれば良いと言うのは分かってます。
ちょっと質問の仕方が大雑把なので、聞きたい要点をまとめると
・現在のAB5CP1でも拡張子を変えればCGIとして動作するのでしょうか?
・プログラム内でSubやFunctionやAPIの使用はできるますか?
・上の質問で"できる"のなら、Linux(?)サーバ(要はWinサーバ以外)でも使用できますか?
・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
・最初の出力時に、CGIと同じく"#! /usr/local/bin/perl"とかの記述が必要なのでしょうか?
疑問が溜まっていたので、思い切って5つも質問してしまいました。
答えれる物だけでも良いので、よろしくお願いしますm(_ _)m
Re: Webで使用する際
> とりあえずコンパイルした拡張子を".exe"→".cgi"にすれば良いと言うのは分かってます。
> ・現在のAB5CP1でも拡張子を変えればCGIとして動作するのでしょうか?
HTTP サーバーによっては、設定によって .exe などの .cgi 以外の拡張子でも動作させられますので、
実際のところ拡張子は必ずしも .cgi でないといけない、というようなことはありません。
> ・プログラム内でSubやFunctionやAPIの使用はできるますか?
出来ます。Windows のプログラムとして動作しますので、
そのあたりは CGI 以外のプログラムと何ら変わりありません。
> ・上の質問で"できる"のなら、Linux(?)サーバ(要はWinサーバ以外)でも使用できますか?
既述の通り、AB でコンパイルした実行ファイルは Windows でのみ動作しますから、
Windows 上で稼動している HTTP サーバーでのみ動作します。
> ・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
良いと思いますが、コードを見る限りでは、
恐らく echo は渡された文字列に改行を付加して Print しているようですので、
Print を使用する際は改行も一緒に出力する必要があります。
> ・最初の出力時に、CGIと同じく"#! /usr/local/bin/perl"とかの記述が必要なのでしょうか?
その記述は Perl のコードでのみ使用されるものの為、不要です。
> ・現在のAB5CP1でも拡張子を変えればCGIとして動作するのでしょうか?
HTTP サーバーによっては、設定によって .exe などの .cgi 以外の拡張子でも動作させられますので、
実際のところ拡張子は必ずしも .cgi でないといけない、というようなことはありません。
> ・プログラム内でSubやFunctionやAPIの使用はできるますか?
出来ます。Windows のプログラムとして動作しますので、
そのあたりは CGI 以外のプログラムと何ら変わりありません。
> ・上の質問で"できる"のなら、Linux(?)サーバ(要はWinサーバ以外)でも使用できますか?
既述の通り、AB でコンパイルした実行ファイルは Windows でのみ動作しますから、
Windows 上で稼動している HTTP サーバーでのみ動作します。
> ・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
良いと思いますが、コードを見る限りでは、
恐らく echo は渡された文字列に改行を付加して Print しているようですので、
Print を使用する際は改行も一緒に出力する必要があります。
> ・最初の出力時に、CGIと同じく"#! /usr/local/bin/perl"とかの記述が必要なのでしょうか?
その記述は Perl のコードでのみ使用されるものの為、不要です。
Re: Webで使用する際
> > ・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
> 良いと思いますが、コードを見る限りでは、
> 恐らく echo は渡された文字列に改行を付加して Print しているようですので、
> Print を使用する際は改行も一緒に出力する必要があります。
と言う事はなんですかね。(*Byte型で良いのかわかりませんが・・・)
>その他4つの質問の回答
ありがとうございます。大変参考になります。
Toshiさん、お答えいただきありがとうございました。
> 良いと思いますが、コードを見る限りでは、
> 恐らく echo は渡された文字列に改行を付加して Print しているようですので、
> Print を使用する際は改行も一緒に出力する必要があります。
と言う事は
コード: 全て選択
Sub echo(static As *Byte)
Print static+Ex"\r\n"
End Sub
>その他4つの質問の回答
ありがとうございます。大変参考になります。
Toshiさん、お答えいただきありがとうございました。
Apacheを使って色々と実験をしてるのですが、分からない事ができたので質問します。
Webからのコマンドライン(cgiで言う"?mode=1&p=2")をexeで受け取ろうと思ってGetCommandLine()を使用して取得しようとしてるのですが、普通の"ActiveBasic"や"Microsoft"とかの半角英数字は通常通り問題ないのですが、CGIみたいに"="がコマンドライン中にあると、コマンドラインが取得できなくなってしまいました。
解決方法とかはあるのでしょうか?再度よろしくお願いします。
>どうでもよいことですが,その画像のコードでは<head>を使っていないのが気になります。
自分も気になってたんですけどね、"<head>"が無いのは。でも、この画像はここ(ABサイト)のものですし・・・
Webからのコマンドライン(cgiで言う"?mode=1&p=2")をexeで受け取ろうと思ってGetCommandLine()を使用して取得しようとしてるのですが、普通の"ActiveBasic"や"Microsoft"とかの半角英数字は通常通り問題ないのですが、CGIみたいに"="がコマンドライン中にあると、コマンドラインが取得できなくなってしまいました。
解決方法とかはあるのでしょうか?再度よろしくお願いします。
>どうでもよいことですが,その画像のコードでは<head>を使っていないのが気になります。
自分も気になってたんですけどね、"<head>"が無いのは。でも、この画像はここ(ABサイト)のものですし・・・
CGIのことはよく知りませんが,調べてみたところ=が含まれている場合は環境変数から読み出すとあります。
http://www.tohoho-web.com/wwwcgi3.htm#CgiParameter[url] ActiveBasicで,環境変数の値を参照するには,GetEnviron ... ableを使います。[/url]
http://www.tohoho-web.com/wwwcgi3.htm#CgiParameter[url] ActiveBasicで,環境変数の値を参照するには,GetEnviron ... ableを使います。[/url]