ページ 11

Webで使用する際

Posted: 2006年8月22日(火) 20:01
by Mario2
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

Re: Webで使用する際

Posted: 2006年8月22日(火) 21:31
by Toshi
> とりあえずコンパイルした拡張子を".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 のコードでのみ使用されるものの為、不要です。

Re: Webで使用する際

Posted: 2006年8月22日(火) 21:41
by Mario2
> > ・上記のURLでは"echo"と言うのが(独自(?)定義で)使われていますが、"print"でも良いのでしょうか?("echo"がどんな処理してるのか少し気になりますが・・・)
> 良いと思いますが、コードを見る限りでは、
> 恐らく echo は渡された文字列に改行を付加して Print しているようですので、
> Print を使用する際は改行も一緒に出力する必要があります。
と言う事は

コード: 全て選択

Sub echo(static As *Byte)
Print static+Ex"\r\n"
End Sub
なんですかね。(*Byte型で良いのかわかりませんが・・・)

>その他4つの質問の回答
ありがとうございます。大変参考になります。

Toshiさん、お答えいただきありがとうございました。

echo関数の推定

Posted: 2006年8月22日(火) 23:12
by イグトランス
Printは基本的に改行文字も出力するのでechoは単にこれで十分だと思います。
(#consoleを付けてコンパイルする必要があります。#promptではだめです)

コード: 全て選択

Sub echo(message As String) 
    Print message 
End Sub
どうでもよいことですが,その画像のコードでは<head>を使っていないのが気になります。

Posted: 2006年8月23日(水) 01:28
by SimD
便乗質問させていただきます。
Webアプリケーションとして動作させるためには、ノーマル ウィンドウ ベースではなく、
DOSプロンプト ベースとして作成する必要があるのでしょうか。

Posted: 2006年8月23日(水) 01:29
by SimD
便乗質問させていただきます。
Webアプリケーションとして動作させるためには、ノーマル ウィンドウ ベースではなく、
DOSプロンプト ベースとして作成する必要があるのでしょうか。

Posted: 2006年8月23日(水) 01:30
by SimD
二重投稿になってしまいました。すみません。

Posted: 2006年8月26日(土) 09:55
by Mario2
Apacheを使って色々と実験をしてるのですが、分からない事ができたので質問します。

Webからのコマンドライン(cgiで言う"?mode=1&p=2")をexeで受け取ろうと思ってGetCommandLine()を使用して取得しようとしてるのですが、普通の"ActiveBasic"や"Microsoft"とかの半角英数字は通常通り問題ないのですが、CGIみたいに"="がコマンドライン中にあると、コマンドラインが取得できなくなってしまいました。

解決方法とかはあるのでしょうか?再度よろしくお願いします。

>どうでもよいことですが,その画像のコードでは<head>を使っていないのが気になります。
自分も気になってたんですけどね、"<head>"が無いのは。でも、この画像はここ(ABサイト)のものですし・・・

Posted: 2006年8月26日(土) 16:41
by イグトランス
CGIのことはよく知りませんが,調べてみたところ=が含まれている場合は環境変数から読み出すとあります。
http://www.tohoho-web.com/wwwcgi3.htm#CgiParameter[url] ActiveBasicで,環境変数の値を参照するには,GetEnviron ... ableを使います。[/url]

Posted: 2006年8月26日(土) 17:55
by Mario2
そうなんですか。2度も回答していただき、ありがとうございます。
GetEnvironmentVariableってのがあったんですね。また1つ勉強になりました。