==ASP== Part 3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/07/28 23:07ID:33/XGu54【過去スレ】
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0244234
04/02/06 03:05ID:k/1f7yuZパフォーマンスはあんまり考えない方向で。
改良点とかあったらきぼんです。
要basp21(ここではMatchしか使ってないけど)
↓以下次号
0245234
04/02/06 03:06ID:???Option Explicit
Function IncludeRecursive(ByVal strTemplateFile, ByRef dReplaceDictionary, ByRef fso)
Dim f, strLine, strOut, key, bobj, strVar, strReplaceFile
Set f = fso.OpenTextFile(Server.Mappath(strTemplateFile), 1)
set bobj = Application("bobj") 'global.asaでSet Application("bobj") = Server.CreateObject("basp21")やってます
Do While Not f.AtEndOfStream
strLine = f.ReadLine
Do While InStr(strLine, "$") > 0
strVar = bobj.Match("/(\$[^$]+\$)/k", strLine)
If strVar <> "0" Then
If InStr(strVar, ".file$") = 0 Then '$ファイル.file$ 形式なら
strLine = Replace(strLine, strVar, dReplaceDictionary(strVar))
Else
If dReplaceDictionary.Exists(strVar) Then ' $ファイル.file$が未定義ならファイル.tplを読む(おせっかい)
strReplaceFile = dReplaceDictionary(strVar)
Else
strReplaceFile = bobj.Match("/^\$(.+?)\.file\$$/k", strVar) & ".tpl"
End If
strLine = Replace(strLine, strVar, IncludeRecursive(strReplaceFile, dReplaceDictionary, fso))
End If
End If
Loop
strOut = strOut & strLine & vbCrLf
Loop
f.Close
Set f = Nothing
Set bobj = Nothing
IncludeRecursive = strOut
End Function
0246234
04/02/06 03:07ID:???Dim fso, strOut
Set fso = Server.CreateObject("Scripting.FileSystemObject") '再帰でFSOを何度もCreateObjectしないように(意味ある?)
strOut = IncludeRecursive(strTemplateFile, dReplaceDictionary, fso)
Set fso = Nothing
dReplaceDictionary.RemoveAll '使用済み辞書の消去(なんとなく)
Response.Write strOut
End Function
Function ReturnTemplate(ByVal strTemplateFile, ByRef dReplaceDictionary) '戻り値を返すもの ループ処理用とか
Dim fso, strOut
Set fso = Server.CreateObject("Scripting.FileSystemObject")
strOut = IncludeRecursive(strTemplateFile, dReplaceDictionary, fso)
Set fso = Nothing
dReplaceDictionary.RemoveAll
ReturnTemplate = strOut
End Function
こんなラッパーみたいなものいらないような気はするけどなんとなく。
2種類なくても<%= %>で戻り値表示すればいいんだけどなんとなく。
0247234
04/02/06 03:10ID:???Dictionaryオブジェクトに $変数$ ってキーをセット、IncludeTemplateを呼ぶ。
$変数$ はそのまま置換、$変数.file$ ならばファイル内容で置換。
置換ファイルのなかの変数も展開される。
以下サンプル
-- page.asp --
<!-- #include file="func.inc" -->
<%
Dim dReplace
Set dReplace = CreateObject("Scripting.Dictionary")
With dReplace
.Add "$title$", "ページタイトル"
.Add "$header.file$", "header.tpl"
.Add "$msg$", "本文いろいろ<br>長文でも自由に"
.Add "$footer.file$", "footer.tpl"
End With
Call IncludeTemplate("template.tpl", dReplace)
Set dReplace = Nothing
%>
0248234
04/02/06 03:10ID:???<body>
$header.file$
<h1>$title$</h1>
<p>$msg$</p>
$footer.file$
-- header.tpl --
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<title>$title$</title>
</html>
-- footer.tpl --
<p>けつに添える決まり文句</p>
</body>
</html>
0249234
04/02/06 03:15ID:???サンプルその2。分岐、ループはこんなかんじでむりやり。
-- table.tpl -- おおもとのテンプレート
$header.file$
<body>
<h1>$headline$</h1>
$content.file$
$footer.file$
-- table_1.tpl -- $content.file$の中身(レコードなかったとき)
<p><img src="hoge.gif">レコードはありません。</p>
-- table_2.tpl -- $content.file$の中身(レコードあったとき)
<table>
<tr>
<th>項目1</th>
<th>項目2</th>
<th>項目3</th>
</tr>
$table_3.loop$
</table>
-- table_3.tpl -- ループ部分
<tr>
<td>$field1$です</td>
<td><a href="hoge.asp?id=$field2$">$field2$</td>
<td>「$field3$」</td>
</tr>
0250234
04/02/06 03:16ID:???<!-- #include file="func.inc" -->
<%
strSql = "SELECT * FROM テーブル"
Set rs = Db.Execute(strSql)
If rs.EOF Then 'SQL投げてなにも返ってこなければ
With dReplace
.Add "$content.file$", "table_1.tpl" 'なにもないよメッセージ
End With
Else 'レコード返ってくれば
Do While Not rs.EOF
With dReplace
.Add "$field1$", Server.HTMLEncode(rs("field1"))
.Add "$field2$", Server.HTMLEncode(rs("field1"))
.Add "$field3$", Server.HTMLEncode(rs("field1"))
End With
strLoop = strLoop & ReturnTemplate("table_3.tpl", dReplace)
rs.MoveNext
Loop
dReplace.Add "$content.file$", "table_2.tpl" 'テーブルあった場合
dReplace.Add "$table_3.loop$", strLoop 'ループ結果を入れる
End If
With dReplace
.Add "$title$", "テーブル一覧"
.Add "$header.file$", "header.tpl"
.Add "$headline$", "テーブル表示サンプル"
.Add "$footer.file$", "footer.tpl"
End With
Call IncludeTemplate("mail_top.tpl", dReplace)
0251234
04/02/06 03:21ID:???SubとFunctionの使い分けしないクセとかもあって失礼。
初心者なのでなんとなく作ってみましたが、こういうのは誰かがもっとマシなの
どっかで作ってるんでしょうね。
0252nobodyさん
04/02/06 03:35ID:???table_3.tplで閉じ</a>がないとか、
なんとなく書いたサンプルなんで変なツッコミどころが多い……
table.aspのDb開いたりするあたりはなんとなく省略。
0253nobodyさん
04/02/09 11:37ID:FDyP722P0254nobodyさん
04/02/11 01:35ID:???見所があるなら(゚Å゚)ホウとか。
どうしようもないんなら(´゚c_,゚` ) プッとか。
アドバイス出来ることがあるなら細かく書いてあげるとか。
ASPを利用してる技術者の皆さんにが推敲してあげれば
便利で汎用的な部品になるかもしれないじゃないですか。
ぼくは毎日仕事の始めにこのスレをチェックし、
そのたびにレスがついてないのを見て
「あぁ、今日もレスついてないのか・・・」
「あ、空ageだ・・・」
と思って心を痛めてきたんです。
お願いだから、誰か役に立つレスをしてあげてください。
オレは読むのメンドイんでパス。
0255nobodyさん
04/02/11 01:43ID:???すまん。251でお前さん自身も書いてるけど、
zipかなんかにまとめてうpろだに上げてくれん?
レガシASPでテンプレートは漏れも欲しいと思ってたんだけど
今気力無くて、コピペすらしんどいんだわ。頼む。
0256nobodyさん
04/02/12 00:15ID:hTvme9QKhoge.htmlにincludeさせたらできますか?
それともどうやっても無理なんでしょうか。
0258234
04/02/13 06:01ID:YLmnZHSDお待たせしました。
あれからだいぶいじったので、少し整理してうぷろだに上げてみました。
http://2ch.cafenet.jp/clip/img/653.zip
いちおう、変数置換・インクルード・ループ処理・式評価の機能があるつもりです。
仕様も実装も完全に思いつきですが、
なにぶん素人がみようみまねで作ってるんで、
見所があるなら(゚Å゚)ホウとか、
どうしようもないんなら(´゚c_,゚` ) プッとか、
アドバイス推敲とか、どしどしおながいします。
サンプルとして、たまたま見かけた
ITmediaエンタープライズ「WebプログラミングPHP言語入門」
http://www.itmedia.co.jp/enterprise/0401/23/epn01_3.html
http://www.itmedia.co.jp/enterprise/0401/23/epn01_4.html
のPHPスクリプトをむりやり移殖してみています。
0259234
04/02/13 06:03ID:???0260nobodyさん
04/02/17 03:30ID:v8l0G8dl0261nobodyさん
04/02/17 03:46ID:wO4OnFg8エーエスピーていうんだよ
0262nobodyさん
04/02/18 00:53ID:???ごめん。ダウソはしたけどまだ全然見てない。
っちゅーか今手持ちの仕事が全焼寸前。火付けたの漏れなんだけど_| ̄|○
0263254
04/02/18 02:46ID:???一応落として読みました。
readmeにも書いてあったけど、いかにも重そうな感じがしました(動かしたわけじゃないけど)。
けど、それよりいい方法があるかって言われると思いつかなかったりする。
汎用性を犠牲にして置換用のキー名は固定し、
キー名=文字列の単純置換をする程度なら実用性はある気はします。
つーか、今の仕事ではそういう仕様で実際に簡易テンプレートとして使ってます。
開発する人が便利に使うテンプレなのか、ユーザにメンテさせる(ユーザに対するインタフェースとしての)
テンプレなのかってのも論点にしなきゃいけないのかなーと思ったり思わなかったりしてます。
少なくとも、開発にとってのみ都合のいいテンプレートであるとしたら、それによって
レスポンスが明らかに落ちる(であろう)事なのに、「開発効率が上がります」じゃ客に言っても
通用しない気もするこの頃。
コードの変更なしにテンプレートをいじるだけで****出来ますよ。という訴求力がないと客は納得してくれない希ガス。
ほろ酔いなので何言ってるか自分でもよくわかんないわけですが、とりあえず言えることは、
ちょっと前に煽り気味のレスつけといて今さらマジレスすることになるとは思わなかった罠。
また気がついたことがあったら書きますよ。当分ASPの現場抜けられそうもないし。
>262
おつかれさまです。ヒマな時にでも先達の貴重な意見を期待しております。
0264nobodyさん
04/02/20 01:34ID:???262っす。
いやー、もう盛大に燃えてるんで火事場はほっといて(ぉぃ)資料集めとか言いつつ
おっことして試してみますた。
速度を見るって意味では九九の表くらいしかやってないんだけど、
まぁまぁじゃないかな。少なくともうちの会社にあるテンプレートと称するものよりは
よい希ガス。(変数置換以外はASPコード残してExecuteするのだわ、これが)
ただ、263=254も言ってる通り、これが利点だ!!ってのがないと提案しにくいかも。
漏れの勤め先はデザイナーさんも抱えてるんで、協業体勢が取れる、ってのを
利点として上にプッシュする材料にはなるけどね。
しかし何かこう、見ててHTML::TemplateとかVelocityみたいのできねーかな……
とか思ってしまう辺り、漏れってコーヒー一杯の注文に鍋で沸かして持っていく
タイプなんだろうかw デモソーナッタラスクリプトジャダメダロナ
あ、クラスのうまい使い方だけど、最近なんとなくコツがつかめてきた気がする。
googleで「VBScript Class」って全言語検索かけるとなかなか巧い例がひっかかるので
一度お試しを。
あ、>263殿、一応P(onkotsu)G(enerator)名乗って5年ほどですが、Webの世界は
まるっきりどしろーとなんで、お互い精進しましょうや。
<a href="dat/hagehage.zip">hage.zip</a>をクリックして参照は許して、
右クリックでURLをコピーしてブラウザのアドレスバーに
http://hogehoge.jp/dat/hagehage.zipと指定してのアクセスはゆるさない。
できればsessionに持っているログイン情報がないとき、REFERERが不正
な時に禁止したいのですが・・・
0266nobodyさん
04/02/20 22:48ID:???答えでてんじゃん。
http://hogehoge/download.asp?dir=dat&file=hagehage.zip
とかでやればいいし。
それより、AccessのMDBってADOからSelectするとき一旦ファイル全てをメモリに入れるんですかね?
それともファイルが論理構造になってて対象テーブルのみメモリに読みだすのかな?
0267nobodyさん
04/02/21 02:09ID:???Sessionって使わない方がいいんでしょうか。
IE以外はクッキーOFFにしたら成立しないし、下手にデータを放り込むと
サーバ資源を圧迫するからどーとか……
UUIDでも自前で生成して、毎回hiddenフィールドに仕込んで
クライアントを識別するとかした方がいいんでしょうか?
ああ、何かもうASPでサイト構築なんてできない気がしてきた……
(ASPでガンガン動いてるサイトが少なからずあることは知ってますけど)
0268nobodyさん
04/02/21 11:24ID:bYLJ5YhwForm(POST)で囲ってhiddenキー埋め込んで、
onclick="javascript:form1.submit();"
をすればIriaだろうが何だろうがブラウザからクリックしないとダウンロードできなくなるよ
0269nobodyさん
04/02/21 12:24ID:???0270267
04/02/21 13:50ID:???ごめん。漏れ<>265っす。
0271nobodyさん
04/02/21 15:51ID:plwAZOQXしまうのでしょうか?
今からASPで何か構築してみようと思うのですが、.NETから始めるべき?
0274nobodyさん
04/02/21 18:46ID:???ただ、
・既にClassic ASP(.NETのつかない昔ながらのASP)で、いくつかWebサイトが動いている
・そこに新たにサイトを構築したい
・マシンの管理の都合で勝手にPHPとかTomcatとか.NET Frameworkも入れられないし、
社員のスキル、納期を考えると未経験の技術は使えない
とかゆーことになると「じゃ今回もClassic ASPでやるしかないか」となることもあるだろう。
つか、今漏れが担当してるのがそのパターン。
何かこんなん、アンチパターンになかったっけ?
0275nobodyさん
04/02/21 21:15ID:???0276nobodyさん
04/02/21 21:32ID:???0277nobodyさん
04/02/21 23:35ID:???ASP.NETでMS推奨のいろいろな機能を使うってのは、
本来は存在しないイベントをむりやりハンドリングする代物が多すぎて気持ち悪い、
って意見はけっこうあるね。
だからシンプルなレガシーASPとかのほうがいいとかなんとか。
シンプルなぶん、大規模開発するにはかなりノウハウが必要だけどな。
0278nobodyさん
04/02/22 01:27ID:???>本来は存在しないイベントをむりやりハンドリングする代物が多すぎて気持ち悪い、
>って意見はけっこうあるね。
しかし、レガシASPで組んでて、
「このページをMe(thisでも$selfでもいいけど)扱いできたらなー……」
って思うことない?ないでつかそうでつか(´・ω・`)
0279nobodyさん
04/02/22 02:11ID:???ほとんどがレガシASP+ADO+BASPで十分
0280nobodyさん
04/02/22 03:39ID:???コンストラクタ(Class_Initialize)って、引数を持てないの?
初期化処理を別にやらなきゃならんなら、コンストラクタの意味がないような・・・
0281nobodyさん
04/02/22 23:39ID:???まぁ、そうでもないよ。ほっといたらフィールドは全部Emptyだし。
Property Get(でもFunctionでもいいけど)の結果を
いちいちIsEmpty()に掛けるって何かカコワルイ希ガス。
それにコンストラクタで余りややこしいことスンナ!!ってのもあるでしょ最近。
0282nobodyさん
04/02/22 23:51ID:???あ、蛇足だけど。
・COMコンポーネントの中にユーザーClassのインスタンスは入れられない
(例えばScripting.Dictionaryに入れるのもダメ。取り出したらプロパティもメソッドも呼べなくなってる。
Session、Applicationも無論同じ)
・逆に、ユーザーClassのメソッドetc.にCOMオブジェクトを渡すのもNG
(例えばRecordsetを渡して、メソッドの中で処理しようとしても、メソッドの中に
入った時点でRecordsetはプロパティもメソッドも呼べないモノになってしまう)
・Classの中に、COMオブジェクトを完全に封じ込めるのは可能
(プロパティの管理に、PerlっぽくScripting.Dictionaryを使うとか。
この場合、外にはDictionaryを直接見せない)
激しくガイシュツとは思うが、参考までに。
すいません。まだ理解していません。
download.aspの中身は、ファイルを読み込んでresponse,writeする処理なのでしょうか?
download.aspの中身は、ファイルを読み込んでresponse,binarywriteする処理なのでしょうか?
面倒なので、リダイレクトでなのとかしたいのですが?
0285nobodyさん
04/02/23 21:24ID:???オレは何か勘違いしてるだろうか。
0286nobodyさん
04/02/23 21:54ID:???確かに直林できる場所にファイルを置くことになるが、
ユーザはそのアドレスを知り得ない。
でもパケットモニタしたらわかっちゃうかも
0287nobodyさん
04/02/23 21:57ID:???0288234
04/02/23 22:18ID:Af0KmrX8http://2ch.cafenet.jp/clip/img/829.zip
不具合を細かく直したほか、クラスにまとめてカプセル化してみました。
これでだいぶすっきりしたと思います。
計測したりしてませんが、重さも思ったほどたいしたことないみたいだし
これぐらいなら汎用で実用になるんじゃないかな?
テンプレート関係の関数とDB操作関係の関数がごちゃまぜに
同じクラスになってるのがかっこわるい気もしますが、
自分の今回の用途としてはこれで便利なので、とりあえずこのまま。
いまさらながらPHPのSmartyの存在を知って資料を眺めてみましたが、
PHPでプリプロセッサを作ってさらにPHPファイルを生成する、って発想は
なかなかおもしろいですね。めちゃめちゃ高機能だし。
でも高機能すぎて参考にならないやって思って他をあたってみると、
PHP4 テンプレートクラスライブラリ改 (http://www.daiwakantei.co.jp/pc/tmpl2sa.html)
ってのはけっこう手ごろなかんじです。方向性がちょっと似てるっぽい?
今回はこれを参考にしてメソッド名を変更しました。
もっと早く知ってたら、いろいろ実装をパクったのになぁ。
余裕があったらASP+VBSで移殖してみたいけど、
尻に火がついてもはやテンプレートライブラリをいじってる場合じゃないんで
ずーっと先に気が向いたら考えます。
0289234
04/02/23 22:54ID:???>漏れの勤め先はデザイナーさんも抱えてるんで、協業体勢が取れる、ってのを
>利点として上にプッシュする材料にはなるけどね。
開発効率向上+保守性向上、ですかねぇ。
今回は、デザイナーさんと2人で組んでの仕事です。
で、これが終わったらわたし退社しちゃう予定なんで、なるべく引き継ぎがらくちんなように、
手順がはっきりするように、作ってみました。
前任者から数年前に引き継いで手を入れてた別のサイトがあるんですが、
もともと素人コードなうえに、素人に毛が生えた程度の自分がいじっちゃって、
山のような仕様変更にその場しのぎを繰り返しまくり、もぉつぎはぎしすぎて
自分以外は読めたもんじゃない……。引き継ぎにめちゃめちゃ苦労しそう……_| ̄|○
こんなにぐちゃぐちゃになる前に、思い切ってどっかで書き直しとけばよかった……。
あとそれは、もともと自前でデザインもやってたものを、あとからデザイン外注するように
なったので、デザイナーさんから届いたHTMLをぐちゃぐちゃ埋め込みASP化する作業に
やたら手間取ったりミス発生したりしてました。反省。
>レスポンスが明らかに落ちる(であろう)事なのに、「開発効率が上がります」じゃ客に言っても
>通用しない気もするこの頃。
今回は、サーバーマシンはけっこう早いやつを使ってるんですが、アクセス数は
たいした量にならない(ログイン制で1日数十人程度?)っていう変な案件なんで、
ちょっとぐらい重くてもあんまり問題ないです。(攻撃くらったらわかんないけど……)
でもまあ、テンプレートから動的生成するなら、これぐらいの負荷は許容範囲じゃないかな?
チューニングの余地は山ほどあると思いますが。
0290234
04/02/23 22:57ID:???これを公開する権利関係にはべつになにも問題ないです。
気にしないでください。
0291nobodyさん
04/02/24 10:32ID:lNj06MAF↓こういうコンポーネントもあるみたいなんですが、
http://www.vector.co.jp/soft/winnt/prog/se202148.html
信頼性とかどうなんでしょう。
BASP21を使用して、nslookupを実行して標準出力を受け取る、という方法もありそうですが、
スマートじゃないですよね。
なんかPHPのgethostbyaddrみたいな手軽な方法はないですかね?
0292nobodyさん
04/02/24 14:28ID:???パラメータを渡して処理しているようですが、これをaspで実装させることは可能でしょうか?
test.asp/12345678/l50 → test.aspを実行、12345678/l50をパラメータとして渡す
というように
可能な場合はサンプル等があればご紹介ください。
以上よろすくおながいすます
0293nobodyさん
04/02/24 15:32ID:???てか、目的ズバリのやつがあった。
EZ-NET URLParamFilter http://program.station.ez-net.jp/products/isapi/URLParamFilter/index.asp
>これを使用することで、たとえば GET メソッドで /sample/index.asp?param=data のような引数を使用せずに /sample/data/ というような感じにすることが出来ます。
0295292
04/02/24 17:30ID:???TEST1,/test/*,/test/test.asp,,,1
を設定
http://localhost/test/test.aspを作成後
http://localhost/test/test.asp/123-500
でアクセスすると
Request.ServerVariable("HTTP_URLPARAM_TARGET")に 123-500がセットされてますた
当然 test.asp/l50 他でもきちんと値を拾うことができております
特にこれを使ってどうこうというのは無いのですが、時間があったらaspで
2chスクリプトクロンでも作ってみようと思います
0296nobodyさん
04/02/25 00:38ID:???それって、http://localhost/test/test.asp/12345678/123-500 みたいに
.aspのうしろが階層になってても大丈夫ですか?
大丈夫なら自作のdownload.aspをちょっと改造してみよう
0297292
04/02/25 09:00ID:???前述のフィルタできちんと取れますよ
servervariableに
HTTP_URLPARAM_OPTIONS:1234567890
HTTP_URLPARAM_TARGET:100-120
という値が格納されてます
0298nobodyさん
04/02/27 17:38ID:???SQLServerからレコードを抽出してCSVを作成しているASPがあるのですが、
CSVファイルのサイズが大きくなってネットワークの負荷が無視できないものに
なってきたので、サーバーで圧縮して直接LZHかZIPで出力したいと
思っております。
BASP21使って外部コマンドでテンポラリファイルからLZHファイルを作成して
出力することはできるのですが、ASPが稼動しているマシソの鯖ポリシーで
tempファイルの作成は禁止されております(一瞬でも不可・・・)。配列から
LZHorZIP圧縮された配列を作成するActiveXライブラリをどなたかご存知
ないでしょうか?
サンプルがあればご紹介ください
0299nobodyさん
04/02/27 22:36ID:/hLQFYeSMSDEとかSQLServerが入ってるとモアベター
0300nobodyさん
04/02/27 23:04ID:???やったことないけど、UnLhaCom + UNLHA32.dllでLZHが扱えるんじゃないかな?
http://www.csdinc.co.jp/archiver/lib/activex/unlhacom.html
UnlhaExtractMem, UnlhaCompressMem ってメソッドで、
メモリ上で圧縮展開できるみたいだよ。
0301nobodyさん
04/02/28 02:15ID:???てゆーか、テンポラリファイル一つ作れない鯖に
ActiveXコントロールなんて入れられるのか?
0302nobodyさん
04/02/28 02:26ID:???0303nobodyさん
04/02/28 03:54ID:???スクリプトタイムアウト起こしそうw
0304nobodyさん
04/02/29 10:08ID:???それって、デフォルトで開くページに、index.htmlなどにまじって
test.aspを追加しておけば、
http://localhost/test/test/12345678/123-500
って指定で、test.aspを呼び出して値を拾うこともできるんでしょうか?
できるんだったら、そのほうがかっこくて応用も広そうなかんじ。
0306298
04/03/01 09:18ID:???ありがとうございます。
早速テストしてみたところunlhacomがエラーバソバソ
ドキュメントを読み直したところ
>注意)VBScriptではUnlhaCompressMem,UnlhaExtractMem,定義済み定数が使えません。
_| ̄|○だめですた
0307234
04/03/01 18:47ID:???とりあえずテンプレート中に if〜else〜endifブロックを記述できるようになりました。
まだネスト不可なんで、ネスト可にしたらまたどっかにうぷして反応みてみます。
でもこれ、自分以外に需要あるのかなあ。
いまごろまだテンプレートエンジンいじってるような進捗状況、スケジュール的に…_| ̄|○
0308nobodyさん
04/03/02 10:38ID:???ttp://park11.wakwak.com/~util/software/aspobjects/document/index.html
0309234
04/03/02 18:55ID:???こっちのほうがシンプルだし、dllで軽そう。きっちりネストもできるし、ブロックは行単位じゃないし。
しかもおまけにVectorオブジェクトもついてるし。
ちょうどVectorクラスも自作してたところなんだよなあ……。
Vectorは必要最小限しか実装してないんで、公開はしませんが。
ただ、自作エンジンはテンプレート中にeval()でなんでも埋め込めるんで、
いいかげんだけどそのぶんの自由度はあるかも。
0310nobodyさん
04/03/02 21:30ID:???0311nobodyさん
04/03/03 00:52ID:???基本的に過疎スレなので有用な情報が得られるかはわかりません。
とりあえず何でもいいから書いてみてくださいな。
0312308
04/03/03 19:01ID:???234さんが熱心に開発されていたようだったので言い出せなかったの…ゴメンネ
0313nobodyさん
04/03/04 23:37ID:???ChiliSoftASPだろ?
使ったことないけど、FileSystemObjectのCreateObjectも模倣して動くらしい
0314nobodyさん
04/03/05 00:08ID:???レガシASPからの移行以外に使う人いるんだろうか。
0315nobodyさん
04/03/05 01:59ID:???Apache::ASPはオープンソースで、フリーに使えた希ガス。
ttp://www.apache-asp.org/
っても、MSのASPでPerlScript使って開発してる例がどれほどあるか、が問題だが。
IIS PerlScriptって確かコメントに日本語使えないんじゃなかったかな……
漏れもApache::ASP使ってみたいけど、WinだとApacheとmod_perlの
バージョンがいろいろややこしくて、環境作るのマンドクセんだよね……
IISのカスタムエラー設定でASPエラー(500-100)を自作ASPにしているのですが、
フレーム分割したさきでエラーが起こった時も、TOPにエラー表示したいのです。
<script type="text/javascript">
<!--
if (top.frames.length!=0)
top.location=self.document.location;
// -->
</script>
0318316-317
04/03/05 18:19ID:???0319nobodyさん
04/03/05 18:22ID:???0320nobodyさん
04/03/07 22:53ID:cvCav3Bnいままで正常に表示されていたASPが文字化けするようになりました。
具体的には
Response.Write "メールが送信されました。"
というのが
???????????????
という感じで?の羅列になります。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=x-sjis">
は指定してあるんですけど、原因がわかる方いませんか?
よろしくお願いします。
0321nobodyさん
04/03/08 01:19ID:???charset=x-sjis
は
charset=Shift_JIS
でいいんじゃねーの
件の問題はこれとは関係なさそうだが。
0322316-317
04/03/08 09:23ID:???エラーのページは自作していて、
1.デフォルトの500-100のエラーのページのように詳細を出すようにしたい。
2.フレーム分割しておるが、エラー画面はトップに出したい。
この1.2.を満たすのが難しい、ということです。
0323nobodyさん
04/03/08 10:30ID:???<script language="javascript">
function toTop ()
{
if (window.top.location.href != window.self.location.href)
{
window.top.location.href = window.self.location.href;
}
}
</script>
</head>
<body onload="toTop();">
0325nobodyさん
04/03/08 17:21ID:???0326
04/03/09 14:42ID:PapKlbMPASPで、クライアントがブラウザの×ボタンを
押した場合の検地の方法を教えてください
ASPでログインしていて、ログアウトされてしまった
場合、次のブラウザでブックマークで開かれてしまって、
ログインせずにその画面にいけてしまうので、対策が知りたいです
すみませんが、ご教授ください
0327nobodyさん
04/03/09 17:07ID:???Session.Abandon したら次回はログインが必要だと思うが。
あ、それともログイン後の画面の処理がおかしい?
要ログインなページはすべて、冒頭部分に
Session変数の有無をチェックするルーチンを入れておくように。
ログイン入力画面をスルーされても、そこではじく。
ありがとうございます セッション処理って
のをやっていませんでした
ログイン処理は、xmlで判定しているだけで、
その後のセッション処理は・・・
ああ 全部の画面にセッション判定を
入れておくんですね わかりました ありがとうございます
0329326=328
04/03/09 17:33ID:???でも、やはり×を押してブラウザを遮断してクライアントのセッションが
切れたよって検地しないと、つながったままってこと
になりますね
ううブラウザが落ちたってサーバがわかる方法ないかなあ
0330nobodyさん
04/03/09 17:48ID:???他のウィンドウが開いていたらセッション保持しているけど。
0331229
04/03/09 18:06ID:PapKlbMPそうなんですか?他のIEとかが
継続してセッションを保ってるんですか
すごいな
そういうことでしたら、ブラウザ一コでやれって
条件つければ、セッション管理できそうだな
いやあ ありがとうございました ほんと助かりました
0332nobodyさん
04/03/09 21:47ID:cpGa4q71basp21 と BinaryWrite 使ってるでしょ?
一旦セッション切ればOK
0333nobodyさん
04/03/09 22:28ID:???あ、いちおう念のため言っておくと、IISでセッションを使うと
アクセスするのにCookie必須になるからね。
携帯対応とかを考える必要があるなら注意。
0334nobodyさん
04/03/09 23:07ID:5BH0aBGMhttp://www.kcat.zaq.ne.jp/yumenokunisha/develop/bin2str.htm
ここのソースコピペして実行してみたんだけど、たまに誤変換で「・」に変換されてしまう・・・
どなたかこのソース修正してくれませんか、
あと、ほかの方法でいいのがあったら教えてください。
Function Bin2Str(byteData)
Bin2Str =""
i = 1
Do While i <= LenB(byteData)
u = Hex(AscB(MidB(byteData, i, 1)))
If ((CInt("&H" & u) >= &H81) And (CInt("&H" & u) <= &H9F)) _
Or ((CInt("&H" & u) >= &HE0) And (CInt("&H" & u) <= &HEF)) Then 'Code Page 932
l = Hex(AscB(MidB(byteData, i + 1, 1)))
intChar = CInt("&H" & u & l)
s = Chr(intChar)
i = i + 2
Else
intChar = CInt("&H" & u)
s = Chr(intChar)
i = i + 1
End If
Bin2Str = Bin2Str & s
Loop
End Function
0335334
04/03/09 23:15ID:5BH0aBGM0337336
04/03/09 23:19ID:???0338
04/03/10 10:50ID:Srya+a8Fまたわからない事態が出てきました
ASPのログイン画面から別の画面に遷移する場合は
セッションは引き継がれてましたが、
別のウィンドウを開いたら、セッションはNothinになってしまいました
これ、別のウィンドウにも同じ画面のセッションを引き継がせたい
場合、どうすればいいでしょうか?
0339338
04/03/10 14:28ID:Srya+a8F0340nobodyさん
04/03/10 15:13ID:???普通引き継ぐぞ...
っていうかアプリケーション終了するか、サーバー側で明示的にセッション終了しない限り
セッションクッキー破棄しないはず。
もっぺんスクリプトをよく見直してみてはどうだ?
アイテム名タイプミスしてセッション変数呼んでないか?
0341338
04/03/10 15:18ID:Srya+a8Fどうも レスありがとうございます
現在は、ログイン画面ー>メイン画面(どちらも同じブラウザ)という風に移行する場合は、
セッションは引き継がれています
それで、メイン画面から、response.redirectで子供のブラウザを
開くというときなんです
要するに、ログインしていない場合、ログイン画面でセッションは作られていない
から、直接それらメインの子供のウィンドウにお気に入りでいけてしまう
というのが問題なんです
0342nobodyさん
04/03/10 15:27ID:???■ このスレッドは過去ログ倉庫に格納されています