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

リロードしないと見れないのですか?

発言者:イチロー
( Date Thursday, June 20, 1996 12:17:45 )


たびたび質問させていただきます。
guestmsg2.acgiのことなんですが、メッセージを書き込んでいままでのメッセージのページに飛びますが、
書き込んだメッセージはそのページをリロードしないとみれないのですが?
こういうものなのでしょうか?

イチロー さんからのコメント
( Thursday, June 20, 1996 12:48:32 )

MacHTTPと同じ階層に置いたらちゃんとうごきました。

先程まではkeijibanというフォルダにいれて
property thisFldr : "http://202.229.79.17/keijiban/としていました。

フォルダにいれてはいけないのですか?


田中求之 さんからのコメント
( Thursday, June 20, 1996 15:56:04 )

基本的には、guestMsg2.html は、Reload しないと、かきこんだメッセージが
ページに反映されません。

イチロー さんからのコメント
( Thursday, June 20, 1996 17:20:59 )

TEST

イチロー さんからのコメント
( Thursday, June 20, 1996 17:33:25 )

このページで打ち込んだコメントがすぐにページに反映されるのはeasyBBSですか。
それからローカルのマシンでテストした時はすぐ反映されたのですが?....
私の勘違いかもしれません。本当にど素人でご迷惑おかけします。
とりあえず伝言板をつくってました。ありがとうございます。


→  王様の耳はロバの耳

こにし@ほくだい さんからのコメント
( Thursday, June 20, 1996 20:42:43 )

gestMsg2.acgiですが、
たとえば、こんな風に改造すると、メッセージを入力後、
「必ず」入力したメッセージが見れます。
#Tanaka's osax b9が必要です。
------
		--- 記入済みのメッセージリストのページへリダイレクト
		set myData to (DateList with asStr)

		set mydate to (item 1 of myData) & (item 2 of myData) ツ
			& (item 3 of myData) & (item 4 of myData) ツ
			& (item 5 of myData)
		
		return redirect_header & "msg.html?" & mydate & crlf & crlf
------
もしかしたら弊害があるかもしれないですが。


イチロー さんからのコメント
( Friday, June 21, 1996 14:45:23 )

こにし@ほくだいさん、ありがとうございます。
早速ためしてみます。

イチロー さんからのコメント
( Friday, June 21, 1996 16:07:10 )

どうもうまくいきません。以下のスクリプトで良いのでしょうか?

property crlf : (ASCII character 13) & (ASCII character 10)
property LF : (ASCII character 10)

property http_10_header : "HTTP/1.0 200 OK" & crlf & "Server: WebSTAR/1.0 ID/ACGI" & crlf & ツ
	"MIME-Version: 1.0" & crlf & "Content-type: text/html" & crlf & crlf

property redirect_header : "HTTP/1.0 302 Found" & crlf & "Server: WebSTAR/1.0 ID/ACGI" & crlf & ツ
	"MIME-Version: 1.0" & crlf & "Location: "

---- 以下のスクリプトによって、起動時に自分の入っているフォルダーのパスを
---- thiFldr プロパティに収めています

property thisFldr : "http://202.229.72.20/"
on run
	set myPath to path to me
	tell application "Finder"
		set thisFldr to (folder of myPath) as string
	end tell
end run

on idle
	return (60 * 60 * 24)
end idle


---- ここからが CGI 処理の本番

on ヌevent WWWスsdocネ path_args ツ
	given ヌclass kforネ:http_search_args, ヌclass postネ:post_args
	try
		--- post_args のデコード
		set myList to DecodeJArgs post_args
		
		--- 受け取ったメッセージを整理する
		set guestName to item 1 of myList
		set guestMail to item 2 of myList
		set guestHome to item 3 of myList
		set myBody to (item 4 of myList)
		
		--- 名前とメッセージが空白の場合は記入ミスと見なす
		--- メッセージリストのページへリダイレクト
		if guestName = "" or myBody = "" then
			return redirect_header & "msg.html" & crlf & crlf
		end if
		
		
		--- メッセージの改行コードの統一
		set myBody to xReturner myBody
		
		--- メッセージのタグを無効にする
		set myBody to xReplace myBody search "<" replace "<"
		set myBody to xReplace myBody search ">" replace ">"
		
		
		--- メールのタグを埋め込む
		if guestMail is not "" then
			set guestMail to "E-Mail: <a href=\"mailto:" & guestMail & "\">" & guestMail & "</a><br>"
		end if
		
		--- ホームページのタグを埋め込む
		if guestHome is not "" then
			set guestHome to "Home Page: <a href=\"" & guestHome & "\">" & guestHome & "</a><br>"
		end if
		
		--- ページに追加するデータを組み立てる
		set myData to "お名前:<b>" & guestName & "</b><br>" & return ツ
			& "<tt>( " & ((current date) as string) & " )<p>" & return ツ
			& guestMail & return ツ
			& guestHome & return ツ
			& "</tt><p><pre>" & myBody & return ツ
			& "</pre><P><HR><P>" & return
		
		
		set myF to thisFldr & "msg.html"
		appendToFile myData to file myF
		
		--- 記入済みのメッセージリストのページへリダイレクト
		set myData to (DateList with asStr)
		
		set mydate to (item 1 of myData) & (item 2 of myData) ツ
			& (item 3 of myData) & (item 4 of myData)
		
		
		return redirect_header & "msg.html" & mydate & crlf & crlf
		
		
	on error errMsg number errNb
		
		return http_10_header & crlf ツ
			& "<TITLE>Error</TITLE>" & crlf ツ
			& "<h1>Error</h1>" & crlf ツ
			& "<h3>処理中にエラーが生じました</h3><HR><P>" & errMsg
	end try
	
end ヌevent WWWスsdocネ



→  王様の耳はロバの耳

こにし@ほくだい さんからのコメント
( Sunday, June 23, 1996 00:59:52 )

リロードそのものはうまくいってると思いますが……。

もしかして、自分の発言をすぐに表示したいということかしら?

return redirect_header & "msg.html" & mydate & crlf & crlf

あ、「?」が抜けてたのですね。

最後の発言にジャンプしようと思ったら、
「?」を「#」に変えるとできるとは思います。
ただし、将来ずっとできるという保証はないです。