ページ 1 / 1
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つ勉強になりました。