トップページphp
983コメント364KB

<%= ASP総合 %> Part.4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/07/03(日) 12:27:28ID:???
レガシASPについて語るスレです。質問や雑談もOK。
何より手軽なので社内イントラであればまだまだ第一線です。
ASP.net については専用スレッドでお願いします。

関連スレ:
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

過去スレ:
==ASP== Part 3
http://pc8.2ch.net/test/read.cgi/php/1059401269/
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
05345312006/08/07(月) 22:55:50ID:???
>>532,, 533
回答ありがとうございます。

.Net2005のExpressEditionでごく単純なASPで試してみましたが、
Option Explicitが動かないほか、include先で定義している関数が
未定義扱いになってうまくいきませんでした。
ASP3.0用のbuildProviderがあればうまくいくのかもしれませんが。

Visual InterDev 6.0でなんとかやろうと思います。
新規開発ではないので、.Netにしちゃうと、全コード移行しないといけないので。
05355332006/08/08(火) 20:22:28ID:???
ちなみに俺はVisual InterDevのレスポンスの悪さに業を煮やし
程なくしてサクラエディタに乗り換えました。
たかがVBScript、MSDN Libraryさえ引ければ補完のメリットなんて
あってないようなもんだしw

フォルダ内全ファイル対象の置換は便利だけどねw>InterDev
0536nobodyさん2006/08/11(金) 21:57:33ID:yHgdeCQU
Windows2003Server、IIS6.0、SQLServer2003でメルマガ読者の管理を行う
プログラムを作っています。
上司に、メールアドレス入力欄にDOSコマンド?を入れると、
サーバ側で起動するから、それができないような処理を入れろ、
と言われたのですが、現象が再現できません。
(上司も誰かに突っ込まれたらしく、どうすれば実行できるのかわからないようです)

入力チェックは、一旦変数に格納した後、
正規表現でメールアドレス書式をチェックしており、
DB登録、検索時にはメールアドレスは暗号化しています。

現象が再現できれば、対応策も考えられると思うのですが、
どなたか、こういった問題をご存知の方、アドバイスいただけないでしょうか。
0537nobodyさん2006/08/11(金) 23:21:32ID:???
>>536
無視していいんじゃね?
多分セキュリティゴロの商売トークを真に受けてるだけだろ。

チェックするとしたらDB登録時のSQLインジェクションぐらいか。
commandオブジェクト使うとか、ちゃんとシングルクォートのエスケープをしていれば無問題。
0538nobodyさん2006/08/12(土) 02:29:08ID:xBjeg5WF
>>536
IISにおいて、フォームから適当なDOSコマンドを入れると
サーバ側で動き出すなんてありえない。

BASP21のExecとか、cgiがexeファイルとか、自作ISAPI使ってるっていうなら
ありえなくないが。
05395362006/08/12(土) 12:28:22ID:???
>>537,538
レスありがとうございます。
自分もずっと調べていたのですが、やはりソレらしい情報はないですね。
(Jetエンジンを使った問題がヒットしましたが、そもそもJet使ってないし
チェックで弾かれています)
とりあえず、SQL文をしっかり洗い出して、エスケープなどの抜けを
しっかり調べてみます。
お騒がせしました。
0540nobodyさん2006/08/18(金) 11:37:56ID:???
Dim hoge
Set hoge = Application("hoge")

とするとApplication("hoge")にまだ値が入っていないとき
オブジェクトがありません。というエラーになってしまいます。
事前に値が入っていないかチェックする方法はありますでしょうか?

よろしくお願いします。
0541nobodyさん2006/08/18(金) 21:23:55ID:???
isEmpty(Application("hoge"))

しかしApplicationにオブジェクトを格納するのは大抵ビミョウじゃぞ
0542nobodyさん2006/08/18(金) 21:32:54ID:???
>540
確かエラートラップするしかなかったと思う。
DictionaryみたくExistsメソッドとかありゃ便利なんだが……そう思った頃が俺にもありました。確かにorz
(関数一個書けばいい話ではあるが)

つーかApplicationやSessionにオブジェクト突っ込むのは基本的に禁じ手ですよ?
http://www.microsoft.com/japan/msdn/columns/server/server03272000.aspx
(世の中にMTAなCOMコンポーネントなんてそうそうありませんorz)
05435422006/08/18(金) 21:33:47ID:???
……前半は忘れてくりゃれorz
0544nobodyさん2006/08/18(金) 23:42:54ID:FoNP/zJS
>>540
Stringに強制変換させたりね
0545nobodyさん2006/08/19(土) 21:26:33ID:???
>>540
TypeName
0546nobodyさん2006/08/24(木) 15:03:40ID:aU8FJkVc
質問です。
Response.ContentType = "application/pdf"で
ページをPDF出力することってできないんですか?
0547nobodyさん2006/08/24(木) 21:34:05ID:???
>>546
それを送った後で、PDFのデータ実体を
ブラウザに送り出してやればOK
05485462006/08/25(金) 09:47:25ID:NQK5sUA1
>547
それってResponse.ContentType = "application/pdf"が書いてある
コードのページ自体をプラウザで表示してやれば、PDFに変換されたものが
でてくるって事ですよね?
できないんですが・・・
0549nobodyさん2006/08/25(金) 16:00:43ID:???
html→PDFの変換を自動でやらせるって事?
05505462006/08/25(金) 17:19:37ID:NQK5sUA1
そのとうりです!
0551nobodyさん2006/08/25(金) 18:38:37ID:???
できるよ
0552nobodyさん2006/08/25(金) 18:49:31ID:???
Response.ContentType = "application/pdf"って書いてpdfになると思ってる奴は
Response.ContentType = "audio/mpeg"って書いたら何が出ると思ってるんだろう

ちょっと考えれば出来るか出来ないか分かるだろうにな
05535462006/08/25(金) 19:44:31ID:NQK5sUA1
何をどう考えたらいいかわかりませーん。
もうすこしヒントを
0554nobodyさん2006/08/25(金) 21:32:10ID:???
>>553
単純には出来ません。
真っ当なやり方をするとしたらPDFlibとかの外部コンポーネントでも使って
頑張ってコツコツ作っていくしかない。
0555nobodyさん2006/08/26(土) 03:07:21ID:???
>>549-550
その発想はなかったわ・・・
0556nobodyさん2006/08/26(土) 15:16:53ID:???
>>548
PDFのデータ実体って、
バイナリデータだぞwww

誰がプレーンテキスト吐き出せって言ったよwww

久しぶりに超うけた。
0557nobodyさん2006/08/26(土) 15:18:28ID:???
>>556
脳みそかわいそうな子なのカナ?
0558nobodyさん2006/08/27(日) 01:50:09ID:???
>556
まぁスレともレスともあまり関係ないが
後学のためにテキストエディタで何か一つPDFファイルを開いて見てみることを勧める
0559nobodyさん2006/08/28(月) 01:03:57ID:7CABj+h0
>>553
リクエストがある度にPDF化するのは
サーバに負荷がかかるし、実際レスポンスも悪くなる。

事前にPDFに変換しとくか、
クライアントPCにAcrobatとかインストールして
IEのツールバーに表示されるPDF変換アイコンを押してもらうといいよ
0560nobodyさん2006/08/28(月) 02:39:29ID:???
PDFはバイナリーデータもサポートしてるけどな

まぁ>>556はそんな事どうでもいいくらいおバカだが…
0561nobodyさん2006/08/29(火) 12:02:00ID:???
Nowから秒より下の値を取得したいのですが
やりかたがわかりません。
たとえば
Year(Now)とすれば年が取れるのですが
yyyy/mm/dd hh:mm:ss.fff
のfffの部分を取得したいのですが
やり方があったら教えてください。よろしくお願いします。
0562nobodyさん2006/08/29(火) 19:12:23ID:???
>>561
Now()ってss以下、
1000分の1秒単位の精度の
戻り値があったっけ?

たしか
yyyy/mm/dd hh:mi:ss
までじゃなかったか?

100分の1秒で求めるなら、
Timer()使って.(ピリオド)から右側の値だけ
取得することは可能だと思うけど、
1000分の1秒ってのが厳しいな。
0563nobodyさん2006/08/30(水) 00:14:06ID:???
そもそもPCのタイマってそんなに精度ないよ
0564nobodyさん2006/08/30(水) 00:19:03ID:???
ネタ元がアレゲなんだが
「分解能の高いタイマ関数ほど実行に時間がかかる傾向がある」
と聞いたことがある。
0565nobodyさん2006/08/30(水) 01:05:53ID:F1Hs7Aoq
>>564
いや、普通に正しいだろ。
05665462006/08/30(水) 09:26:55ID:7QXl0OJH
やっぱりコツコツ作っていくしか無いんですね。
ありがとうございました。
0567nobodyさん2006/08/31(木) 16:00:10ID:???
java開発からASP開発に周り、ASP開発は初めてですが、
javaのstrutsのようなフレームワークみたいなコンポーネントってあるのでしょうか。
MVCになってなくても良いのですが、htmlの部品の表示などをもっと簡単にしたいです。
0568nobodyさん2006/08/31(木) 19:26:54ID:???
>>567
一つ確認。ASP?ASP.net?
0569nobodyさん2006/09/01(金) 10:34:28ID:???
>>568
ASPです。古いパッケージのカスタマイズ案件なので・・・
0570nobodyさん2006/09/01(金) 22:30:45ID:???
>>567
気の利いたフレームワークとかは無い。
自分でfunction作るしかないね。
不幸中の幸いとして

function hoge()
%>
<DIV>ほげほげ</DIV>
<%
end function

っていう書き方が出来るので
それを利用したりするとちょっとは楽できるかも。
0571nobodyさん2006/09/04(月) 11:45:39ID:???
ttp://www.aspin.com/のサイトにフリーなコンポーネントがあるそうですが、
よく使用するものや、お勧めとかはあるでしょうか?
0572nobodyさん2006/09/04(月) 11:55:36ID:???
XMLDOMってやつを見つけました。
数が少ないですが、探せば使えそうなものがいくつか出てきそうです。
0573nobodyさん2006/10/04(水) 00:11:43ID:SPPmb2Gu
ついに一ヶ月書き込みがない。。。
0574nobodyさん2006/10/05(木) 18:58:59ID:???
さすがに全ての面で枯れたな。

ASPとりあえず何でも出来てよく動くんだけどね。
VBScriptがあまりに非力過ぎるんだよなー。
0575nobodyさん2006/10/05(木) 22:06:52ID:???
ウチの社内じゃまだまだ現役だよ。
……はやいとこ.NETに移行したいんだけど、他にメンテできる人がいないから……
0576nobodyさん2006/10/05(木) 23:04:36ID:???
>>575
社外向けでも現役でつよ・・・
05775742006/10/06(金) 00:15:23ID:???
む、「枯れてる」と言ったのはテクニックとかそういった意味の話で。
今更スレの話題になるようなトピックは無いと言いたかっただけ。

ちなみに俺も今は昔売ったASPのシステムの保守で飯食ってます。
あと5年は無くならないだろうな…。
0578nobodyさん2006/10/06(金) 08:08:21ID:???
たしかに、技術的なモノは出尽くした感があるね。
新機能もないし・・・。
0579nobodyさん2006/10/06(金) 18:49:31ID:???
>>577
「保守」って言葉は、システム屋には実に都合のいい考え方だよね。

実際には日常的にはほとんど何もやらないのに(っていうか日常的に何かやらなきゃいけないシステムは糞だ)、
「保守作業」と称して、コンピュータに疎いヤツらから金を巻き上げられる魔法の杖。
0580nobodyさん2006/10/06(金) 19:15:33ID:???
>>579
そんな保守だったらSAIKOだなー。
そう甘くねんだよ。
公僕相手だと担当者が代わる度にそいつの趣味で下らん直しを入れさせられる…
全く相手してらんねー。
そんなに金使いたかったらもらってやるから金だけよこせ。金だけ。
0581nobodyさん2006/10/06(金) 22:06:34ID:G5aLUCYG
>>575
社内レベルで .NET にする必要はないと思う
0582nobodyさん2006/10/06(金) 23:43:25ID:gk7iZtFm
ASPってフレームワークなんてないよね?
やっぱりC++とかVBとかでdllを作ってそれをASPで使う感じなのでしょうか?

ASPとASP.NETではどちらが生産性が高い?
0583nobodyさん2006/10/07(土) 10:08:57ID:???
>>582
まずあなたが「フレームワーク」をどういう意味で言ってるかを明らかにしましょう。
生産性についても同様。
0584バッカーです ◆KeuXjwWDdE 2006/10/07(土) 13:19:21ID:???
雛形的な意味かな?
何をやりたくて何を探してるのか具体的にかけば
レスもあると思う。
0585nobodyさん2006/10/08(日) 17:14:44ID:???
>>580
担当者が変わるたびに直すとしても、いったん直したらまたしばらくは
特に何もすることないだろう。担当者が毎月変わるわけじゃあるまいし。
それで毎月保守代をもらえれば楽な仕事だ。
0586nobodyさん2006/10/08(日) 18:55:36ID:???
>>585
よほど「保守担当」にネガティブイメージ持ってるらしいな。

世の中には面子とか根性論とかによってそういう「まともな理屈」が追い出された
異世界も存在するのさ。
0587nobodyさん2006/10/08(日) 23:53:54ID:???
>>586
そうなのか。。。 大変だな。
そういう異世界を経験しないで済む俺はラッキーなのかな?
0588nobodyさん2006/10/09(月) 00:00:59ID:???
>587
苦労はしてみてもいいかもしれないが
地獄まで見ることはないさ……
0589nobodyさん2006/10/09(月) 00:59:35ID:???
>>588
俺は公的な組織が大嫌いなのでそもそも付き合うことは一生ないと思うが、
そちらはどうしても付き合わなきゃならないのなら、頑張ってくれ。

おまいがシステム業界の「小泉純一郎」となって、バカを駆逐・啓蒙してくれることを祈る。
0590nobodyさん2006/10/11(水) 16:28:51ID:o9Xn/RpH
ASPで入力欄(INPUTタグ)に""と入力してDBに登録します。
これを再度編集しようとINPUTタグで表示すると、
value=""""となり、何も表示されません。
なにか、良い方法というのはあるのでしょうか?
0591nobodyさん2006/10/11(水) 19:12:14ID:WiH1H+/l
>>590
DBに保存したデータ「""」が
表示されなくて困ってます、ってこと?

そうなら、DBに保存する辞典で、
エスケープシーケンスをくっつければいいんじゃね?ね?
0592nobodyさん2006/10/11(水) 20:09:36ID:o9Xn/RpH
>>591
Response.Writeによる表示はされます。
しかし、INPUTタグの中に表示しようとすると出来ません。
Server.HTMLEncode()を使ってみましたが、
データが変わってしまうので・・・使い方がよろしくないのでしょうか?

0593nobodyさん2006/10/11(水) 20:37:26ID:???
>>592
>>Server.HTMLEncode()を使ってみましたが、
>>データが変わってしまうので・・・使い方がよろしくないのでしょうか?
変わらないよ。ためしに
<input type="text" name="test" value="""">
ってというのフォームに加えてsubmitしてみ。
05945932006/10/11(水) 20:38:48ID:???
うげ。変わった。
value="&quot;&quot;"
ね。中身は半角にしてちょんまげ。
0595nobodyさん2006/10/11(水) 20:47:13ID:???
一番カンタンな解決方法はaaaが""として

<input value='<%=aaa %>'>

とすることだな。逆にシングルクォーテーションがいれらんなくなるけどw
おいらならこうするな

<input value="<%=Replace(aaa,"""",""")%>">
0596nobodyさん2006/10/11(水) 20:50:36ID:???
あ、試してる間に先越されたうえに>>593氏と同じミスを・・・

<input value="<%=Replace(aaa,"""","&quot;")%>">

&を半角に・・・
0597nobodyさん2006/10/11(水) 21:55:56ID:???
>592
ASPというよりHTMLの問題だね。
HTML エスケープ でググってみ。
0598nobodyさん2006/10/12(木) 02:03:13ID:???
XSSの巣はここですか?
0599nobodyさん2006/10/12(木) 20:00:56ID:???
ダセェ煽りだな
0600nobodyさん2006/10/12(木) 23:47:22ID:???
お前がな
0601nobodyさん2006/10/13(金) 21:22:57ID:???
>>600
ダセェ脊髄反射だな
0602nobodyさん2006/10/14(土) 12:56:06ID:???
お前がな
0603nobodyさん2006/10/14(土) 22:17:52ID:???
ばーか、俺だよ
0604nobodyさん2006/10/15(日) 01:32:07ID:???
オレ、オレ!
0605nobodyさん2006/10/15(日) 09:14:52ID:???
ASP、っていうとまずApplication Service Providerかと思われてしまうご時世になってしまったな
0606nobodyさん2006/10/17(火) 19:38:53ID:???
Application.Lockのタイムアウト時間を設定するやりかたを
教えてください。
よろしくお願いします。
0607nobodyさん2006/10/17(火) 19:45:13ID:???
>>606
多分設計が間違っているんじゃないかなあ。
Lockをどういう目的で使ってる?
0608nobodyさん2006/10/17(火) 23:56:36ID:pxOS6RG8
>>606
自分でLockをタイマー解除するスクリプトを作るしかない
0609nobodyさん2006/10/18(水) 23:09:12ID:???
ASPでクッキーを削除するにはどうしたらよいでしょうか?

Response.Cookie("cookie") = "1"

で書き出せることはわかりました。
0610nobodyさん2006/10/19(木) 19:22:23ID:???
ブラウザ閉じたら消えるが
0611nobodyさん2006/10/19(木) 22:03:30ID:x3Bmvwr5
>>610
それはセッションじゃね?
0612nobodyさん2006/10/19(木) 22:37:39ID:???
>>609
ブラウザ側で持ってる物だからサーバーから消せるわけないじゃない
空文字列をセットするか消されるタイミングを指定するか
Response.Cookies("cookie").Expires = 有効期限
0613nobodyさん2006/10/20(金) 20:58:22ID:???
日本の罫線文化に適合しているのは、ASP.NETよりもASPなのかな?
本で解説されているような、ASP.NETの便利なコントロールよりも、
Repeater使ってセル結合しているような複雑な表をつくるほうが多いし。

ASP.NETと違った、タグライブラリを活用するような、独自の進化版ASPを誰か作ってくれないかな。
0614nobodyさん2006/10/20(金) 22:49:18ID:???
>>611
有効期限を指定していないクッキーは普通ブラウザを終了させると消えるよ
0615nobodyさん2006/10/20(金) 23:07:04ID:???
>>613
うむ
ASP.netのwebコントロールっていう奴らは
何かイマイチ日本人の感覚では使いづらいわな。
0616nobodyさん2006/10/21(土) 08:21:59ID:???
>>613
どっちかというと.net系言語を使ってASP的な書き方をするやり方、がいいな。
ASPをC#.netで書ければなあとか思ったりする。

そこでActivePythonか?
でもそこまでしてでもある…。
06176162006/10/21(土) 08:22:50ID:???
× でもそこまでしてでもある…。
○ でもそこまでしてまだまだASPか?って感じでもある…。
0618nobodyさん2006/10/21(土) 21:45:20ID:vl2bs6UL
ASPのSessionオブジェクトについて質問です。
全く異なる二つのWebアプリケーション test1.asp と test2.asp を同時に開き、それぞれ Session.SessionID を出力したところ全く同じものが入っていました。
これを、別々の Session を持たせたいのですが可能なのでしょうか?
また、一つのWebアプリケーション test.asp 上で、このプログラムが呼ばれる度に新しい Session を作ることは可能なのでしょうか?
ブラウザのウインドウを二つ立ち上げて両方 test.asp にアクセスした時に、別の Session を作りたいと思っています。
もちろん、二つのブラウザがそれぞれページ遷移してもそれぞれのセッションを保持したままをイメージしているのですが…

本やサイトを調べましたが詳しく解説されているところが見あたらず、質問させていただいております。
よろしくお願いします
0619nobodyさん2006/10/21(土) 23:26:58ID:???
IEに関して言うと、同じプロセスだとSessionIDがかぶる。
つまり<A TARGET="BLANK">とか、Ctrl-Nとかで新規ウィンドウを開く、とかして複数のIEのウィンドウを開いた場合は
同じSessionIDを持つ事になる。
0620nobodyさん2006/10/21(土) 23:51:05ID:???
っていうか、IISの仮想ディレクトリのプロパティで
アプリケーションを分ければいいだろ
06216182006/10/22(日) 09:04:54ID:???
>>619
ありがとうございます。
やはりウインドウ毎に意図的にSessionを発行し直すというのは無理なんですね

>>620
レンタルサーバなので、サーバ側はいじれないんです…
0622nobodyさん2006/10/31(火) 21:52:10ID:4zgJkeOl
ページに3つのメニューリストを配置して、
MenuList1の選択値によってMenuList2の内容が決定し、
MenuList2の選択値によってMenuList3の内容が決定するといった処理を行いたい場合、
どのようにしたらよいのでしょうか?
0623nobodyさん2006/10/31(火) 23:05:27ID:???
>>622
リストを変更するたびにPOSTして
サーバサイドで次のリストを変更して戻すのが
このスレとしては正しいwww
0624nobodyさん2006/11/01(水) 00:17:54ID:ASDxYcPa
>>622
まぁ、今時ならAjaxだろうな
0625nobodyさん2006/11/01(水) 04:33:10ID:???
>リストを変更するたびにPOST

ここをもう少し詳しく教えてもらえませんか
0626nobodyさん2006/11/01(水) 10:03:30ID:???
>>625
それはJavaScriptとかの
クライアントサイドスクリプトの話だから
スレ違いwww
0627nobodyさん2006/11/01(水) 12:26:02ID:???
>>625
selectのonchangeでサブミットするようにすればいいんだけど、
わからなければjavascriptの勉強してください
0628nobodyさん2006/11/01(水) 16:14:02ID:???
毎回ボタンを押させる方式にすればjavascriptじゃなくてもできるけどね。
こんな感じ。

[      ▼][送信]

  ↓

[      ]
[      ▼][送信]

  ↓

[      ]
[      ]
[      ▼][送信]
0629nobodyさん2006/11/01(水) 17:33:45ID:???
onchangeでsubmitできるのはjavascriptでしたか。
vbscriptで実現は無理でしょうか?

だとしたら>>628の案が現実的ですね。
0630nobodyさん2006/11/01(水) 20:18:43ID:???
>>629
クライアントサイドスクリプトもVBScriptで書けるよ、IE専用なら。
でもそういう事じゃないだろうな〜。
0631nobodyさん2006/11/01(水) 22:55:33ID:???
そうなんですよねサーバサイドでなんとかしたいんですよ。

どうしてもonchangeイベントでpostする為には、JavaScriptの選択なんでしょうね。
これまでVBScriptメインで作ってきているのですが、VBScriptのページと
JavaScriptのページが混在したシステムは問題ないのでしょうか?
0632nobodyさん2006/11/02(木) 00:22:53ID:???
>631
クライアント側(というか、ブラウザに送り込まれてブラウザで動作するコード)はJavaScript、
サーバ側で動作する(クライアント側には送られない)コードはVBScriptで書くのがASPのたしなみ。

と昔聞いた。……ごめん聞いたのは嘘だが現実問題、JavaScriptのコード内に<%〜%>入れて制御するなんてのすら
実務ではよくあること。
0633nobodyさん2006/11/02(木) 02:36:08ID:???
>>631
混在って言うのは、サーバサイドかクライアントサイドのどちらか片方で両方の言語を使う場合。
サーバサイドとクライアントサイドで別々の言語を使うのは、普通、混在とは言わないよ。
ソース上では混ざって見えるかもしれないけどね。
0634nobodyさん2006/11/02(木) 23:56:26ID:???
極端な話、ブラウザからすればサーバサイドで何してようがどうでもいいわけで。
ASPが最終的にはHTMLに則った文字列を吐き出せればOKだと思ってる。

csvとかpdfとかはまた別の話ね(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています