このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

初心者的な質問ですが

発言者:中村
( Date Monday, March 18, 1996 16:27:00 )


リンクボタンじゃなくCGIで、ページへジャンプしたいのですが
下のように記述した場合、同階層ではジャンプするのですが、
一つ上の階層となると、上手く飛びません。
誰か、ご存じの方がおられましたら、是非、教えて下さい。

___________________________
		set myNum to http_search_args
		if myNum = "jump=assis_a" then
			set theReturn to redirect_head & "*" --& crlf
		end if
___________________________

田中求之 さんからのコメント
( Monday, March 18, 1996 18:47:40 )

>一つ上の階層となると、上手く飛びません。
>誰か、ご存じの方がおられましたら、是非、教えて下さい。

Redirect での URL では、相対パスも受け付けるようですので、

   return redirect_head & "../upperPage.html" & crlf & crlf

というように、頭に "../" を付けてみてください。

できれば、移りたい先を、絶対パスで記述する方が良いと思いますが…

ショージ@ハートランド さんからのコメント
( Monday, March 18, 1996 18:53:55 )

こんにちわ。

ちょっと気になったのですが *(アスタリスク)の場所にはどんな文字列が
入る様になっているのでしょうか?ちゃんとしたURLが入るのか、それとも
ファイル名だけが入るのか・・・。

URLが入っているのなら動作がおかしいような気がしますが、ファイル名が
入っているのであれば、相対パスの指定はきちんと出来ているのでしょうか?
一つ上のファイルであれば "../foo.html" としてやる必要があると思いま
す。初歩的なミスですが、僕は時々忘れていますので、確認してみる必要が
あると思います。

ショージ
show@heartland.co.jp

ショージ@ハートランド さんからのコメント
( Monday, March 18, 1996 18:56:00 )

ありゃりゃ、僕がメッセージを書いたら、田中先生のまでくっついてきた。
って同時に書いていたわけですね。

うまくハモっていたので良かったです(^_^;)。あやうく、間違ってさらし者
になるところだった(冷や汗)

ショージ
show@heartland.co.jp

田中求之 さんからのコメント
( Tuesday, March 19, 1996 01:44:12 )

全然話題には関係ないことですが (^_^;;

>ありゃりゃ、僕がメッセージを書いたら、田中先生のまでくっついてきた。
>って同時に書いていたわけですね。

これをタイミング良くやれば、チャットができます。WebSTAR 2.0 のチャットも
原理的には、似たようなもんです(言い切ってしまっていいのだろうか?)

Send Partial を組み合わせて、つねにページの最新データが流れるように
しておき、入力欄は Frame で独立させれば、チャットシステムは可能ですね。
(と、デモを見ていて思った)

もっとも、速度的に PlugIn でなければ辛いでしょうが…


というわけで(笑)、一つ上の階層を指定する場合は、頭に "../" を付ける
わけです。>中村さん

ショージ@ハートランド さんからのコメント
( Tuesday, March 19, 1996 09:09:11 )

>もっとも、速度的に PlugIn でなければ辛いでしょうが…

早くPlug-inが出て欲しいですよね。チャットシステムは面白そうです。
だけど、そこに誰がいるかっていうのを判断するのもなかなか難しそうな
気もしますが、あれはどうやっているんでしょう?

というわけで(笑)、一つ上の階層を指定する場合は、頭に "../" を付ける
わけです。>中村さん

ショージ
show@heartland.co.jp

中村 さんからのコメント
( Tuesday, March 19, 1996 14:36:36 )

盛り上がっているところに恐縮ですが、はやり、
絶対パスで記述しても
”Error!
The file you requested was not available.”
と出るのはなぜなのでしょう。さっぱり解らなくなってきました。
誰か助けて。

ちなみに、CGIとFORMを書いておきますので、どうかお願いします。
---------------------------------------------------------------------------------
property crlf : (ASCII character 13) & (ASCII character 10)
property http_10_header : "HTTP/1.0 200 OK" & crlf & "Server: MacHTTP" & crlf & ツ
	"MIME-Version: 1.0" & crlf & "Content-type: text/html" & crlf & crlf
property redirect_head : "HTTP/1.0 302 Found" & crlf & "Location: "
--
--
on ヌevent WWWスsdocネ path_args ツ
	given ヌclass kforネ:http_search_args, ヌclass postネ:post_args, ヌclass methネ:method, ヌclass addrネ:client_address, ヌclass userネ:username, ヌclass passネ:password, ヌclass frmuネ:from_user, ヌclass svnmネ:server_name, ヌclass svptネ:server_port, ヌclass scnmネ:script_name, ヌclass ctypネ:content_type
	
	try
		set myNum to http_search_args
		if myNum = "jump=0" then
			set theReturn to redirect_head & "http://www.****.or.jp/info/about.nclk" & crlf
		else if myNum = "jump=1" then
		else
			set theReturn to redirect_head & "http://www.****.or.jp/assistance.html"
		end if
	on error msg number num
		set theReturn to http_10_header & "ERROR: " & msg
	end try
	return theReturn
	
end ヌevent WWWスsdocネ
---------------------------------------------------------------------------------

form

---------------------------------------------------------------------------------
<!--Pull Down Menu-->
<FORM METHOD="GET" ACTION="./acgi/assis.acgi">
<A NAME="info"><HR SIZE="5" WIDTH="90%"></A>
<SELECT NAME="jump">
<OPTION VALUE="0" SELECTED>ご案内 !!
<OPTION VALUE="1">サービス
</SELECT>
<INPUT VALUE="Go...!" TYPE=submit>
</FORM>
---------------------------------------------------------------------------------


ショージ@ハートランド さんからのコメント
( Tuesday, March 19, 1996 17:37:41 )

>              else if myNum = "jump=1" then
>                else
>                        set theReturn to redirect_head & "http://www.****.or.jp/assistance.html"
>                end if
>        on error msg number num

検証させていただきました。上から2行目の「else」が不必要なんでは
ないでしょうか?これをとったスクリプトで実行したところ、うちの実
験サーバではうまくいきましたよ。

しかし、これで出てくるエラーはCGIのエラーとなるわけで、ファイルが
見つからないと言うことではないような気もしますが・・・。なにせ
リダイレクトの先が指定出来ていないのですから。

とりあえず、先の「else」を削除してみて下さい。それとも私の読み違い
であれば他の先生方、お願いします(^_^;)。

ショージ
show@heartland.co.jp

田中求之 さんからのコメント
( Saturday, March 23, 1996 22:45:58 )

>上から2行目の「else」が不必要

さっと見たところ、これ以外におかしいと思われるところはありませんが、念のため
redirect するさいには、

 set theReturn to redirect_head & "http:...." & crlf & crlf

という具合に、リダイレクトする URL の後に crlf を2つぶら下げておいて
ください。最後に空白行を入れるというのが、正しいヘッダーの書式のはずです
ので。

私が気が付いたのはこの程度なんですが...

ショージ@ハートランド さんからのコメント
( Monday, March 25, 1996 08:30:46 )

この件については解決したようですよ(メールで頂きました)。

質問をされた方は解決したらこちらにその旨書いていただく方が良いかも
しれません。割りと気にしてみていますから。

ショージ
show@heartland.co.jp