Webで使用する際

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

Webで使用する際

#1 投稿記事 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
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

Re: Webで使用する際

#2 投稿記事 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 のコードでのみ使用されるものの為、不要です。
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

Re: Webで使用する際

#3 投稿記事 by Mario2 »

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

コード: 全て選択

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

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

Toshiさん、お答えいただきありがとうございました。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

echo関数の推定

#4 投稿記事 by イグトランス »

Printは基本的に改行文字も出力するのでechoは単にこれで十分だと思います。
(#consoleを付けてコンパイルする必要があります。#promptではだめです)

コード: 全て選択

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

#5 投稿記事 by SimD »

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

#6 投稿記事 by SimD »

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

#7 投稿記事 by SimD »

二重投稿になってしまいました。すみません。
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

#8 投稿記事 by Mario2 »

Apacheを使って色々と実験をしてるのですが、分からない事ができたので質問します。

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

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

>どうでもよいことですが,その画像のコードでは<head>を使っていないのが気になります。
自分も気になってたんですけどね、"<head>"が無いのは。でも、この画像はここ(ABサイト)のものですし・・・
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#9 投稿記事 by イグトランス »

CGIのことはよく知りませんが,調べてみたところ=が含まれている場合は環境変数から読み出すとあります。
http://www.tohoho-web.com/wwwcgi3.htm#CgiParameter[url] ActiveBasicで,環境変数の値を参照するには,GetEnviron ... ableを使います。[/url]
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

#10 投稿記事 by Mario2 »

そうなんですか。2度も回答していただき、ありがとうございます。
GetEnvironmentVariableってのがあったんですね。また1つ勉強になりました。
返信する