1 名前:nobodyさん mailto:sage [2005/07/03(日) 12:27:28 ID:???] レガシASPについて語るスレです。質問や雑談もOK。 何より手軽なので社内イントラであればまだまだ第一線です。 ASP.net については専用スレッドでお願いします。 関連スレ: 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/ 過去スレ: ==ASP== Part 3 pc8.2ch.net/test/read.cgi/php/1059401269/ ==ASP== Part 2 pc2.2ch.net/php/kako/1028/10280/1028024916.html ==ASP== pc.2ch.net/php/kako/984/984840107.html
201 名前:nobodyさん [2005/11/10(木) 16:34:58 ID:l71/uwis] ASP.NETを使い始めたばかりで、今試行錯誤しながらテストしているのですが、HPを作る際に 画像を貼り付けたのですが、ftpでweb上にアップロードし、確認しようとしてみてみると 画像やコンボボックス等のオブジェクト類が一切表示されていません ツールボックスのWEBフォームからオブジェクトを持ってきたのですが、HTMLのオブジェクトだと 表示されるようです。 .netによるデバック時は表示されているのですが、 web上だと表示されないのは何かが 足りないからかと思うのですが、わかりません。 漠然としていて申し訳ないですが、「これがないとダメポ」というのはありますか? XMLファイルが無いのですが、これって関係ありますか?
202 名前:nobodyさん mailto:sage [2005/11/10(木) 18:10:20 ID:???] 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/
203 名前:201 mailto:sage [2005/11/10(木) 19:15:00 ID:???] ありがとう。そっちに逝ってきます
204 名前:668 [2005/11/11(金) 11:39:15 ID:CsKh1TLX] リストボックス内のすべての値をRequest.Formにて取得したいのですが、 現状セレクトされている値しか取得できません。 どうすれば、取得することができるのでしょうか?
205 名前:nobodyさん mailto:sage [2005/11/11(金) 19:54:32 ID:???] >>204 Javascriptのテクニックになるのでスレ違いだが submitする直前にselect のmultiselectをonにして 全optionをselectedにしてからsubmitすればいい。
206 名前:668 [2005/11/13(日) 11:23:37 ID:GnU/8u4f] >>205 ありがとうございます。 やっとできました。
207 名前:nobodyさん mailto:sage [2005/11/17(木) 16:29:44 ID:???] 以下のbatファイルをASP化しようと思っています。 cmd /c net user vaio > I:\temp\test.txt VBS化のソース↓ Dim WshShell Dim rtnCode Const SW_HIDE = 0 Set WshShell = CreateObject("Wscript.Shell") rtnCode = WshShell.Run("cmd /c net user vaio > I:\temp\test.txt", SW_HIDE, True) If rtnCode <> 0 Then Error rtnCode というVBSは成功しました。 でもここからASPにできません。方法ってないですか?
208 名前:nobodyさん mailto:sage [2005/11/17(木) 19:58:09 ID:???] <%@ Language=VBScript %> <html> <head> </head> <body> <% ' 処理がとまってしまう ' DOSコマンドでも同様 Dim WSHShell Set WSHShell = Server.CreateObject("WScript.Shell") WSHShell.Run "notepad.exe", 3, false 'メモ帳を起動します。 ' Microsoft VBScript 実行時エラー (0x800A01A8)<BR>オブジェクトがありません。: ''<BR> 'Dim WSHShell 'Set WSHShell = WScript.CreateObject("WScript.Shell") 'WSHShell.Run "notepad.exe" 'メモ帳を起動します。 ' Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。: 'MsgBox'になる ' MsgBox "メモ帳を起動しました。" %> </body> </html>
209 名前:208 mailto:sage [2005/11/17(木) 19:58:44 ID:???] 考えられる原因は?
210 名前:nobodyさん mailto:sage [2005/11/17(木) 20:30:17 ID:???] >>209 の書き方がちょっとカチンとくるがヒントを出してやるか >>207-208 ともに ASPのスクリプトがサーバ内でどういう権限で動作するかって所を考えよう >>207 はWMIを使うという選択肢もあるかも。 >>208 は…そのページにアクセスするとサーバでメモ帳を立ち上げたいのか? 意味が分からん。
211 名前:208 mailto:sage [2005/11/17(木) 20:41:09 ID:???] >>210 ありがとうっございます。 サーバ処理の概念がいまいちわかってないかもしれません。 WMIを検索して勉強してみます。
212 名前:208 mailto:sage [2005/11/17(木) 22:32:37 ID:???] うーん。 ASPでCMD処理って敷居高いのかな。。。VBの時はすんなり出来たんだけど。
213 名前:nobodyさん mailto:sage [2005/11/17(木) 23:32:08 ID:???] >>212 敷居が高いの使い方がまちがっている まあ、アクセス権限だな
214 名前:nobodyさん mailto:sage [2005/11/18(金) 00:17:36 ID:???] 最強に強まっていいのなら IWAM_USERをAdministratorsグループにぶち込めば 大抵の事は可能になるが。
215 名前:nobodyさん mailto:sage [2005/11/21(月) 17:03:41 ID:???] どうしても分からないことがありますので、どなたか教えて下さい。 以下のsampleソースを参考にメール送信フォームを作成したんですが、 CCにて、複数の宛先に送ることができません。(Toは固定アドレスです。) 参考にしたURL:ttp://narita-system.co.jp/sendmails.htm ASP(VBScript)部分をこんな風にしてみたんですが、objNewMail.Cc = 変数;変数とすると、 読み込みエラーを起こして、表示自体ができなくなります。 objNewMail.Ccに1つの変数のみなら正常に送信できます。 この例でいきますと、objNewMail.Ccにて変数:nameと変数:bossに送りたいのですが、どうすれば良いのでしょうか? どうか、よろしくお願いします。 <% Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.From = Request("mail") objNewMail.to = "XXXX@XXX.XXX.XXX" objNewMail.Cc = Request("name");Request("boss") objNewMail.Subject = Request("name") & "さんのご意見" objNewMail.Body = Request("comment") objNewMail.Send Set objNewMail = Nothing %> お願いします。
216 名前:nobodyさん mailto:sage [2005/11/21(月) 17:20:15 ID:???] objNewMail.Cc = Request("name") & "," & Request("boss") やないの?
217 名前:nobodyさん mailto:sage [2005/11/21(月) 17:33:40 ID:???] >>216 あっさり、できました!!!ありがとうございました!! 感謝します!!!
218 名前:nobodyさん mailto:sage [2005/11/24(木) 01:17:36 ID:???] DBからデータを取得して、 Office XP Webコンポーネントを使用して、 2軸のグラフを表示したいのですが、 どこか参考になるサイトありませんか?
219 名前:nobodyさん mailto:sage [2005/11/24(木) 01:31:43 ID:???] >218 [OFF2003] [HOWTO] Office Web コンポーネント (OWC) のプログラミングに役立つ各種情報とサンプル support.microsoft.com/default.aspx?scid=kb;ja;319793
220 名前:nobodyさん mailto:sage [2005/11/24(木) 01:39:55 ID:???] >218 サーバー側のグラフ作成機能を使用してグラフを動的に生成する方法 support.microsoft.com/kb/244049/
221 名前:nobodyさん mailto:sage [2005/11/24(木) 10:31:12 ID:???] あちこち調べてみましたがわからないので教えていただきたく。 WinServer2003+IIS6.0とOracle10gを組み合わせた ASPのシステムを作ろうと思っています。 一つ問題がありまして、DB接続認証時にオーバーヘッドが発生しています。 > Set OraSession = CreateObject("OracleInProcServer.XOraSession") > Set OraData = OraSession.DbOpenDatabase("DB01", "test/test", 0) 上記の処理を走らせるとOpen時に約3秒ほど待たされるのですが これは解決の方法はあるのでしょうか? IIS5.0の場合だと一瞬で処理が完了します。何か違いがあるんでしょうか?
222 名前:661 [2005/11/27(日) 10:29:06 ID:j0DdBp+E] 今、会社でASPの開発でInterDev6.0を使用しているのですが、 左側に行数を表示するできないのでしょうか?
223 名前:nobodyさん mailto:sage [2005/11/28(月) 08:01:03 ID:???] 左側?
224 名前:nobodyさん mailto:sage [2005/11/28(月) 23:20:24 ID:???] >>222 行番号を表示ってことでしょ? 使ったこと無いから分からんが。
225 名前:バッカーです ◆KeuXjwWDdE mailto:sage [2005/11/29(火) 01:26:36 ID:???] インターデブ。あれ、何がいいのか未だにワカラン。 とりあえず行番号なら多分なかったと記憶してるよ。
226 名前:nobodyさん mailto:sage [2005/11/29(火) 16:44:32 ID:???] InterDevはサーバ側のVBScriptの部分と クライアント側のJavascriptの部分の両方で キーワード色分けが出来るのは良かった。 あと現在オープン中の全ファイルからの検索&置換。 とか言いつつも結局今はsakura使ってるがw まあ少なくともデザインビューは100%使ってなかったな。
227 名前:nobodyさん mailto:sage [2005/11/29(火) 20:40:46 ID:???] 色分けに関してはPeggyシリーズがとても良い
228 名前:nobodyさん mailto:age [2005/11/30(水) 18:15:34 ID:???] 最近、Perl・PHPからASPをやり始めたんですが、 ASP(VBScript)についてどうしてもわからないことがあります。 フォームからのPOSTデータを Request.Form() で 取得してるんですが、どうやら100KB以上のデータは Form では受け取れないことに気づきました。 100KB以上のデータをPOSTする際には どのように取得するのが一般的なんでしょうか? (例え100K以下のデータを送信する場合でも、100Kの制限がある時点で、Form は使いたくなくなります…) 調べたところ、100K以上のデータを扱う場合には data = Request.BinaryRead(Request.TotalBytes) で取得できるとあったんですが、このデータをどう展開していいのかわかりませんでした…。 すみませんがご教示願います。
229 名前:nobodyさん mailto:sage [2005/11/30(水) 21:26:15 ID:???] まあ普通どんな長文だとしてもブラウザのtextareaに 原稿用紙みっちり埋めて128枚分は書かないからなあ。 あんまり大量のデータだったらファイル添付かな。 Request.BinaryReadで取得したデータはバイト配列なので 基本的にvbscriptではまともには扱えない (まともじゃないやり方が無いわけではないが)。 VBとかCでDLL作って処理する用だね。
230 名前:228 mailto:age [2005/11/30(水) 21:34:55 ID:???] >>229 レス有難うございます。 なるほど、まともに扱えないんですね… 100KB を意識しつつ Request.Form() を使うことにします。 もう一つ不明点が出てきました。 フォームのチェックボックス(name="checkbox")を受け取った場合、 Request.Form("checkbox")(1) などで要素にアクセスできるので 配列かと思い、 IsArray( Request.Form("checkbox") ) をやったところFALSE が返ってきました。 普通の配列は TRUE が返ってくるんですがこれはそういうものなのでしょうか? チェックボックスかどうかを判断する材料が無くて困っています。
231 名前:nobodyさん mailto:sage [2005/11/30(水) 21:36:29 ID:???] >>228 ADO.StreamかBASP21を使って展開するのが常識になってる。 あと、これも忘れずに Windows 2003+IIS6で200KBを超えるファイルがアップロードできない www.hi-ho.ne.jp/babaq/faq.html#F019
232 名前:nobodyさん mailto:sage [2005/11/30(水) 21:37:53 ID:???] >>230 VB配列じゃない
233 名前:nobodyさん mailto:sage [2005/12/01(木) 03:07:58 ID:???] >>230 なんでname="checkbox"なんだよ 適当に分かりやすい名前つければいいじゃんw
234 名前:228 mailto:sage [2005/12/01(木) 12:15:06 ID:???] >>231 別のモジュールで対応するんですね。 Win2003での不具合についても情報ありがとうございます >>232 VB配列なるものが普通の配列って意味でしょうか? となると普通の配列とそうでないものがあるんですね。。 (というかFormは配列じゃなくてただのオブジェクト??) >>233 checkbox だよってのを明示的にわかりやすくしただけです。 テストでやっていたので業務ではこんなことしませんよw
235 名前:nobodyさん mailto:sage [2005/12/01(木) 20:36:09 ID:???] 普通の配列で欲しければ split(Request.Form("checkbox"),", ") とかでそれっぽいの取れなかったっけかな
236 名前:nobodyさん mailto:sage [2005/12/01(木) 20:45:37 ID:???] >>234 Formはオブジェクトですな ちなみに配列についてはVBScript上では Variantの配列とバイナリ配列というのがあります Variantの配列がいわゆる普通の配列で、 バイナリ配列は配列というよりただのバイナリデータの塊。 話の流れだとRequest.BinaryRead(Request.TotalBytes)で取得できるのが後者で、 文字列に近いイメージで、ADO.Stream,MidB,AscB,Hexなどを無理やり使えば ある程度いじることは可能。
237 名前:nobodyさん mailto:sage [2005/12/03(土) 00:00:48 ID:???] >>234 Request とか Session は ASP Built-In Objects だから扱いが別。 Request.Form("checkbox") は IStringList ってオブジェクトだったと思う。 Count で要素数 Item(n) で各要素 (n >= 1) フォームで送られてくるデータは name と value の組の単なるテキストだから checkbox かどうかを判別する方法なんてそもそも存在しないよ。
238 名前:nobodyさん mailto:sage [2005/12/03(土) 01:03:29 ID:???] >>237 Request.Formはコレクションジャマイカ?
239 名前:nobodyさん mailto:sage [2005/12/04(日) 20:53:53 ID:???] Request.Form と Request.Form("checkbox") は違う
240 名前:NT4.0 [2005/12/06(火) 15:14:51 ID:A31iTPx+] 運用してるサーバが、突然、 「HTTP/1.1 新しい Session の作成に失敗しました」というエラーは吐くようになりました 原因わかる方いましたら、お願い致します
241 名前:nobodyさん mailto:sage [2005/12/06(火) 15:18:22 ID:???] メモリ不足? 一回再起動してみたら?
242 名前:240 [2005/12/06(火) 16:32:32 ID:A31iTPx+] すいません NT4 じゃなくて、2000 Server でした 再起動したら直ったんですけど、 原因不明のままだと、チトまずいんで・・・
243 名前:nobodyさん [2005/12/06(火) 17:11:53 ID:XSSghKFO] 教えてください。 そこそこ閲覧のあるHPを公開したとして、ソースはなるべく短くし、DBとのやりとり(ストアド等)の数を減らしたり してあげたほうがユーザー側にも、サーバー側にも負担って少ないですよね? aspx.vbのソース行数を見ると1000行を軽く突破する勢いなんですが、多すぎますか? ちなみに目標は1日1万ページビューで、SQL-SERVER+XPです
244 名前:nobodyさん mailto:sage [2005/12/06(火) 17:48:36 ID:???] >>242 セッションが新規作成できないくらいに、メモリ使ってるとか? メモリを使って開放してないとか? >>243 そこそこの定義がわからん。 1000行なんてコンマ何秒の処理だろ。
245 名前:243 mailto:sage [2005/12/06(火) 17:50:50 ID:???] >>244 わかりにくくて申し訳ないです。 そこそこ=目標は1日1万ページビューです ちょっと安心しました
246 名前:nobodyさん mailto:sage [2005/12/06(火) 17:51:32 ID:???] >>243 aspx.vbはスレ違いだが… まあソースは短いに越したことは無いが、 1000行程度ならそう長い訳でもないだろう。 ASP.netならなおさらクラス定義やなんやかんやでソース上で行数食うしね。 DBとのやり取りも回数を減らすに越したことは無いが、 大抵はそれより「途中で無駄なデータを発生させない」ように 気をつけておいた方がいい。 たとえば20件ごとに表示するのに、データ全行取り出して 要らない部分を空読みしてスキップ、 というようなことをやるとデータが増えるにしたがってたちまち重くなる。
247 名前:nobodyさん mailto:sage [2005/12/06(火) 19:00:09 ID:???] ソースが短いからといって負荷が軽いとは言えない。
248 名前:nobodyさん mailto:sage [2005/12/06(火) 21:58:25 ID:???] asp.netってコンパイルするんでしょ? じゃぁ1000行なんて余裕でしょ。 多少長くても、定義やセッションの切断とかを明確に書いた方が早いことが多いよ。
249 名前:nobodyさん mailto:sage [2005/12/07(水) 00:47:24 ID:???] >>248 実はレガシASPも実行時はコンパイルされてるぢょ
250 名前:nobodyさん [2005/12/07(水) 11:04:22 ID:Q9Fd97MO] a = Split(b, ",") nCnt = 0 ' EOFまでループ Do Until OnjRS.EOF ' DBからの値を格納 hoge = NVL(ObjRS.Fields("hoge_id").Value, 0) ' 配列aのnCnt番目の値が、DBからの値と同じ時だけ、cに代入 If a(nCnt) = hoge Then c = "ifの中" End If OnjRS.MoveNext Loop a(nCnt)部分でエラーが出ます。 過去ログなどから、UBoundで配列の最大要素番号を指定してから出ないと エラーになることはわかったのですが、 実際、どのように書いたらいいのかわかりません…。
251 名前:250 mailto:sage [2005/12/07(水) 11:36:40 ID:???] 解決しますたm(__)m 激しく勘違いを…(((;゚Д゚))) ガクガクブルブル…
252 名前:228 mailto:age [2005/12/07(水) 17:23:06 ID:???] すみません、レス遅れました… >>235 カンマ区切りの文字列を分解して配列にするイメージっすね。 チェックボックスがチェックされていなかったり、 一箇所のみチェックだったりしても split はエラーを返さないんですね >>236 なるほど、やっぱり二種類あるんですね… いまいち二種類を使い分ける方法がよくわかってません。 恐らくその種類によって使えるメソッドも変わるんでしょうね… >>237 checkbox かの判断の意図は、 チェックボックスかがすぐわかれば、それでループかけて どこがチェックされてるか調べることができるのかなと。 (PHPでは連想配列で入ってくれてたので、キーの指定だけで判断できました) みなさんはどうされてるんですかね?? (というか普通はどうするものなんだろう…) 何か簡単なフォームASPのサンプルって転がってないですかねぇ… VBScriptがなかなかなじまない…
253 名前:228 mailto:sage [2005/12/07(水) 17:34:56 ID:???] 結局のところ、フォームからのクエリを処理するために、 Request.Form の値を、 Set Query = CreateObject("Scripting.Dictionary") とした連想配列(オブジェクト?)Queryにコピーしてから処理してます。 一般的にクエリを取得する場合は、Request.Form の 100KBの壁は無視されるのでしょうか? それとも、ADO.Stream か BASP21 のようなツールを使って Request.BinaryRead(Request.TotalBytes) からちゃんととるのでしょうか? それと、ASPで連想配列を使いたい場合は、 Set Query = CreateObject("Scripting.Dictionary") が一般的でしょうか? また、連想配列の連想配列の場合は、 ----- Dim a1, a2 Set a1 = CreateObject("Scripting.Dictionary") Set a2 = CreateObject("Scripting.Dictionary") a2.add "key", "value" a1.add "key", a2 Response.Write( a1.item("key").item("key") & "<hr>") ----- な感じでやっています。 (変なことしてないかな… すみません、ご指摘いただければと思います。
254 名前:nobodyさん [2005/12/07(水) 19:51:07 ID:+pnCfHBy] 流れをぶった切ってADSIの質問をさせください。 ASPでユーザー認証を行うため、以下のプログラムを作成しました。 環境はWin2003サーバーとFreeBSD+Samba3.0+OpenLDAPで、 ドメインに信頼関係を持たせています。 以下のプログラムはSambaの握っているOpenLDAPを覗きに行っています。 strPath = "LDAP://xxx.xxx.xxx.xxx/ou=AAA,dc=BBB,dc=CCC" strUser = "ユーザー名" strPassword = "パスワード" Set objDSO = GetObject("LDAP:") Set objUser = objDSO.OpenDSObject( strPath, strUser, strPassword, 1) どこをどう変えても動きやがりません。エラー '80072032'とのたまいます。 また、普通に Set user = GetObject("LDAP://〜〜適当に〜") としてuser(sambaSamAccount型)を取得した場合に name = user.Get( "cn" ) とするとユーザー名が取れるくせに、 pass = user.Get( "sambaNTPassword" ) とするとエラー '8000500c' ディレクトリのデータ型と、ネイティブ DS のデータ型を相互に変換することはできません とのたまいやがります。 どなたか同じようなことで悩んだ方、よろしくおねがいしやすm(__)m
255 名前:nobodyさん mailto:sage [2005/12/07(水) 22:18:10 ID:???] >>228 複数のcheckboxがある場合はASPでは>>235 みたいにするのが普通だと思う。 splitの後にisArrayで配列になったかのチェックをすればいい。 それと、おせっかいだとは思うが Dictionaryは確かに便利だがその使い方は無駄だと思う。 Dictionaryを入れ子にしたりして美しくデータを確保してる余裕があったら さっさとResponse.Writeしていくべき。 基本的にWebプログラムの振る舞いの一般論として 一つのスレッドで大量のメモリを確保するような設計は推奨されない。 それと100KBの壁にずいぶんこだわっているようだが 一体どんな使い方をしようとしているのか? 普通に使っていて一つのinputで100KBに達することは まず無いと思うのだが。 >>254 cn=ユーザ名, を加えればいいんじゃない
256 名前:228=252=253 mailto:sage [2005/12/08(木) 00:07:26 ID:???] >>255 ご指摘ありがとうございます。 Split の後に isArray、参考になります。 PHP,Perl-CGI で書く時は、フォームのチェックボックス名の 連想配列を作って、そのキーがあるかないかで判断していたので ASPでも同じ手法でやろうとしてました。 Dictionary等でデータの格納方法に気を使うよりは 素直にprintしてくって指摘も一理ありですね。。 また、100KB についてですが、確かにファイルアップが無ければ 滅多に超える容量ではないとは思うんですが、100KB の制限が あるものを使うのも設計上どうかと思ってます。 どのようなフォームでも大丈夫なように、制限の無いものがあるのであれば、 あらかじめそれを使いたいってのが本心です。 でも実際のところはどうなのかな?と疑問に思ってました。 別のモジュールが必要だったり、制限があっても気にしないのが ASPとして一般的であれば、それに越したことは無いので。。
257 名前:nobodyさん mailto:sage [2005/12/08(木) 21:04:01 ID:???] BASPのFormメソッド使うやり方だと 100KBの壁を超えられるのかも・・・? バグが無ければだけどナー
258 名前:nobodyさん mailto:sage [2005/12/09(金) 19:40:03 ID:???] ASPのフォームでメールアドレスを入力させるときに ドメインがちゃんと存在するかをチェックしたいと思っています。 VBScriptにMXレコードを見るなどのモジュールは存在しますか?
259 名前:nobodyさん mailto:sage [2005/12/09(金) 21:28:20 ID:???] >>258 あるべ。VBScriptにはないけど。
260 名前:nobodyさん mailto:sage [2005/12/09(金) 22:28:32 ID:???] 標準で頑張るには裏でWScript.Shell使ってnslookupを実行する、 とかになるのかな?
261 名前:258 mailto:sage [2005/12/12(月) 15:52:11 ID:???] >>260 ありがとうございます。 標準ではnslookupからひくしかないんですね。 戻り値の判断が非常にむずかしそう… >>259 VBScriptではきついってことでしょうか? 何か方法があれば教えていただけると助かります
262 名前:nobodyさん mailto:sage [2005/12/13(火) 06:38:36 ID:???] >>261 VBScriptにはネットワークにアクセスするメソッドがないからね BASP使ってSocketで何とかするか… またはVBでDLL作っちゃっても良さそうだけどね
263 名前:nobodyさん mailto:sage [2005/12/13(火) 21:54:09 ID:???] >>261 DNSから引くって考えるより、実際にメールを送信してみた方が早いかも。 ドメインがなければサーバエラーを受け取れるし。
264 名前:nobodyさん [2005/12/16(金) 14:00:18 ID:ys2aEO8I] 初歩的な質問かもしれませんが フォームで価格を送信して貰う→数字以外の値が入力されていた場合、エラー表示 ができません。 TypeName関数では無理だったのですが分かる方いたら教えて下さい。
265 名前:nobodyさん mailto:sage [2005/12/16(金) 18:50:57 ID:???] >>264 isNumeric
266 名前:nobodyさん mailto:sage [2005/12/16(金) 19:57:23 ID:???] >>264 isNaN
267 名前:nobodyさん mailto:sage [2005/12/17(土) 02:17:00 ID:???] >>265-266 できました 本当にありがとう
268 名前:nobodyさん mailto:sage [2005/12/24(土) 16:15:38 ID:???] 特殊文字「"#$%&'()」のような文字を弾く(エスケープ)するには、 HTMLEncodeを使用する以外の方法はあるんでしょうか?
269 名前:nobodyさん mailto:sage [2005/12/24(土) 18:06:46 ID:???] >>268 つString型
270 名前:nobodyさん mailto:sage [2005/12/24(土) 20:17:32 ID:???] >>268 そういう特殊文字をどうしたいの? textboxとかに入力されたそういう文字を何とかしたいのか、 そういう文字を画面に出したいのか、 querystringで渡すときにおかしくならないようにしたいのか、 input type=textの初期値として設定したいのか。 「特殊文字を弾く」なんていう日本語では何をしたいのか全く通じない。 >>269 VBScriptにそんな型なんかねえよ
271 名前:nobodyさん mailto:sage [2005/12/24(土) 21:47:32 ID:???] >270 まぁまぁ。 TypeName("aaa")は"String"を返してくるんだし。
272 名前:nobodyさん mailto:sage [2005/12/25(日) 02:25:45 ID:???] >>270 君のような融通のきかない馬鹿はエンジニアとして失格。
273 名前:nobodyさん mailto:sage [2005/12/25(日) 07:52:31 ID:???] >>272 みたいに融通を利かせてしまう奴が 東証のシステムみたいなのを作ってしまうんだろうな。
274 名前:nobodyさん mailto:sage [2005/12/25(日) 11:42:36 ID:???] >>273 なるほど。>>270 が融通のきかない馬鹿な使えないエンジニアであることは 認めるわけですな。ご苦労さん。
275 名前:nobodyさん mailto:sage [2005/12/25(日) 11:44:05 ID:???] >>273 え? 東証のシステムのどこがおかしいの? おかしいのは周辺の人間であってシステム自体は至極まっとうなもの。 やっぱお前だめだよ。まともなシステムに関わったことないんだね。 カワイソス
276 名前:nobodyさん mailto:sage [2005/12/25(日) 18:50:40 ID:???] なんか香ばしくなってきてるな。 >>270 の指摘は、言葉はくどくて感じ悪いが言っている事は至極真っ当だと思う。 >「"#$%&'()」のような文字 って、確かにどれもアルファベットや数字の類ではないけど それらを十把一絡げに「特殊文字」と呼んで「弾く(エスケープ)」 と言われても何についてのことだか分からない…。
277 名前:276 mailto:sage [2005/12/25(日) 18:57:56 ID:???] なんか傍から見てると >>270 =言葉遣いがきつく対人能力は低そうだが仕事は細かい使えるPG >>272 =大雑把な雰囲気だけ指図して満足、 その後PGから指示漏れを指摘されると逆切れして相手を馬鹿扱い… という使えないSE みたいに見えるんだけどw しかも >>274 11:42:36 >>275 11:44:05 これ明らかに>>272 の自演だろw
278 名前:nobodyさん mailto:sage [2005/12/25(日) 23:10:43 ID:???] >>277 いや、自作自演じゃないよ。自作自演つうのは自作自演だと ばれないようにやるのが自作自演なわけで。しかも>>275 は>>274 に 対するレスでもないし。 やっぱ馬鹿の集まりってのは一味違うねぇ。
279 名前:nobodyさん mailto:sage [2005/12/25(日) 23:24:07 ID:???] この板も早く強制ID制になってほしいものだ
280 名前:nobodyさん mailto:sage [2005/12/25(日) 23:45:05 ID:???] >278 バレバレの自作自演なんて数えられないくらい存在する 今回のも非常に分かりやすいな >>272 =>>274 =>>275 =>>278
281 名前:nobodyさん mailto:sage [2005/12/26(月) 22:51:19 ID:???] そういえばここって強制IDじゃないんだよね。 さすが過疎板の代名詞
282 名前:nobodyさん [2005/12/29(木) 14:08:54 ID:W4CzIrpP] お初で失礼します。 PHPプログラマですが既存のシステムを大人の事情でASP5.0 on IIS5.0への移行を行うことになりました。 だいたい言語仕様やアーキテクチャの仕様を調べたのですが 一つ大きな問題に直面してしまいました。 ASPsessionIDをクッキーでなく、自動でform内にhiddenで埋め込むことはできるのでしょうか? (GETで?の後につけてはいけない) クッキーoffでもセッションを使えるようにしなければならないというのが当初からの命題の一つなのです
283 名前:nobodyさん [2005/12/29(木) 17:35:44 ID:BZLcPqC6] >>282 普通にできる hiddenで埋め込んだ値をPOST送信 か Session 変数を使えばOk
284 名前:nobodyさん mailto:sage [2005/12/29(木) 21:03:25 ID:???] >282 ちなみに ASP3.0 な
285 名前:nobodyさん mailto:sage [2005/12/29(木) 22:37:15 ID:???] ん? Session変数はクッキーで渡されたIDをキーにサーバの値を使うものだから クッキーレスでは使えないぞ。 それをやるとしたら…うーん。 DB使うか、ApplicationにFreeThreadedDom突っ込んで そこにデータを出し入れするかかな。 でも実のところHiddenの防御力はCookie以下だということは 認識しておいた方がいいかと。 書き換える気になればquerystringを書き換えるのと大して変わらないので。
286 名前:nobodyさん mailto:sage [2005/12/30(金) 01:45:46 ID:???] >>285 確かに純粋にはくクッキーの一つだけど でもIEのクッキー設定を無視するからクッキーoff環境でも問題ないよ
287 名前:nobodyさん mailto:sage [2005/12/30(金) 03:26:10 ID:???] IEならどうにでもなるんだけどね… クッキーレスを要求するっていうことはすなわち それ以外のブラウザでも使えるようにって要件ではないかと思われる
288 名前:nobodyさん [2006/01/01(日) 19:02:30 ID:Vw/N6o5Y] ディレクトリ再帰検索の降順表示について質問します。 <やりたいこと> @特定のディレクトリの下位階層を無制限に再帰検索して展開表示 Aボタンで判別して最上位ディレクトリのみ表示か、すべて再帰的に展開表示するか選択 B表示されたディレクトリに対してonClickで開閉することが可能 Cソート機能(ディレクトリ名降順表示) @〜BについてはソースAで動作しますが、Cで四苦八苦しています。 ディレクトリ名の降順表示はソースBの仕組みを使ったり、BASP21のソート機能等も検討しましたが、 問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので 動的配列を使っても展開中で再定義するとおかしくなってしまいます。 ちなみにリアルタイム性と速度を求められるので、テキストやDB格納は現段階では考えておりません。 どなたかアドバイスお願いします。
289 名前:nobodyさん [2006/01/01(日) 19:04:32 ID:Vw/N6o5Y] <ソースA> <% strPwd = Server.Mappath("./") BTN = Request.Form("BTN") x = 0 If BTN = "開く" Then BTN = "閉じる" strCatDisp = "display:block;" Else BTN = "開く" strCatDisp = "display:none;" End If %> <script language=JavaScript> function ClickShow(catid){ if(document.getElementById){ if(document.getElementById(catid).style.display == 'block'){ document.getElementById(catid).style.display = 'none'; } else { document.getElementById(catid).style.display = 'block'; } } } </script> <form method=POST> <input type=submit name=BTN value='<%=BTN %>' class=submit> </form>
290 名前:nobodyさん [2006/01/01(日) 19:06:01 ID:Vw/N6o5Y] <% Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Call DirSearch(strPwd) 'ディレクトリ検索 Sub DirSearch(TmpDir) Set objDir = objFSO.GetFolder(TmpDir) Set objSubDir = objDir.SubFolders x = x + 1 For Each objSD In objSubDir Response.Write "<span style='cursor:hand' onClick=ClickShow('cat" & x & "')>" & vbCRLF Response.Write objSD.Name & vbCRLF Response.Write "</span>" & vbCRLF Response.Write "<br>" & vbCRLF Response.Write "<div id=cat" & x & " style='" & strCatDisp & "'>" & vbCRLF Call DirSearch(TmpDir & "\" & objSD.Name) Response.Write "</div>" & vbCRLF Next End Sub Set objSubDir = Nothing Set objDir = Nothing Set objFSO = Nothing %>
291 名前:nobodyさん [2006/01/01(日) 19:06:50 ID:Vw/N6o5Y] <ソースB> <% Dim strFile() Set Fs = Server.CreateObject("Scripting.FileSystemObject") Set objFiles=Fs.GetFolder("C:\winnt\system32").Files ReDim strFile(objFiles.Count-1) For Each objFile In objFiles tmp0=objFile.Path For J=I-1 To 0 Step -1 If tmp0 < strFile(J) Then Exit For Else strFile(J+1)=strFile(J) End If Next strFile(J+1)=tmp0 I=I+1 Next For I=0 To objFiles.Count-1 Response.Write strFile(I) & "<BR>" Next %>
292 名前:288 [2006/01/01(日) 19:09:55 ID:Vw/N6o5Y] 忠実に再現しようと思ったら、長くなってしまいました・・・orz 長文失礼しました。よろしくお願いします。
293 名前:nobodyさん mailto:sage [2006/01/01(日) 22:50:12 ID:???] >>288 速さのためって言ってるけど。 毎回全フォルダ情報をクライアントに送りつけるっていうのは フォルダ階層の数によるがかなり重くなると思う。 俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。 そうしないとしたら、再帰関数内で @フォルダ内の全子フォルダを関数内の局所配列に取得 (ソートするならその時に) Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰 とすれば大枠変えずに出来るんじゃないか。 ちなみに >>問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので >>動的配列を使っても展開中で再定義するとおかしくなってしまいます。 動的配列の再定義を繰り返すとか文字列の追加追加っていうのは VBScript on ASPでは禁止事項。 そうやってでっち上げると忘れた頃にパフォーマンス劣化の原因になる。 VBScript上の変数にバッファリングしようとは思わないこと。 生成したデータを片っ端から表示していけるようなアルゴリズムにするのが原則。
294 名前:288 [2006/01/02(月) 20:27:19 ID:N1rmW7hx] >>293 アドバイス有難うございます。 >>そうしないとしたら、再帰関数内で >>@フォルダ内の全子フォルダを関数内の局所配列に取得 >> (ソートするならその時に) >>Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰 >>とすれば大枠変えずに出来るんじゃないか。 @は再帰的に格納するということでしょうか? 再帰するのはDIV表示が終わってからではなく、表示させる前段階で再帰処理する必要があります。 だからといってソートしている最中に再帰する方法だと動的配列の再定義をせざるを得ません。 (が、うまくいきません) >>俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。 クリック時のフォルダ展開は言い忘れてしまいましたが、画面遷移しないという要件なので、 確かにAjaxが適していると思います。XMLHttpRequestで試してみます。ヒント有難うございました。
295 名前:nobodyさん mailto:sage [2006/01/03(火) 16:07:07 ID:???] >>294 >>@は再帰的に格納するということでしょうか? いや、そうじゃなくて単階層。 再帰関数の引数は妥当な線だとあるフォルダのパスでしょ? 関数の流れをざっと書くと 1.まずそのフォルダの子フォルダ一覧を配列に取得する。 2.必要があるならソートする。 3.親フォルダのDIV開始タグを書く。 4.そしてfor〜nextで子フォルダ配列をなめながら再帰。 5.親フォルダのDIV終了タグを書く。 こんな感じでやりたいことが出来るのでは?ということ。
296 名前:nobodyさん [2006/01/04(水) 13:03:07 ID:O9dUywF6] 大量のデータを1ページに50件ずつ1行ずつ表示させる時って、 みなさんはどうしてますか? 今のところ、全データをとりあえず取得して、 Doループで回してるのですが、 どうも負荷が大きすぎて…。 DBの方での質問なのかなとも思ったのですが、 とりあえず。 よろしくお願いします。
297 名前:nobodyさん mailto:sage [2006/01/04(水) 13:36:35 ID:???] >>296 漏れはこんな感じでやってる(実際はもっと細かいチェックがいろいろと) 他にもっといい方法無い? Dim conn, rs Dim CurrentPage, i Const DefaultPageSize = 50 CurrentPage = Request("P") If CurrentPage = "" Then CurrentPage = 1 ElseIf IsNumeric(CurrentPage) = False Then CurrentPage = 1 Else CurrentPage = CLng(CurrentPage) End If Set conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") rs.CursorType = adOpenKeyset rs.LockType = adLockReadOnly (厨略) conn.Open rs.PageSize = DefaultPageSize rs.AbsolutePage = CurrentPage rs.Open Do Until rs.EOF Or i > DefaultPageSize Response.Write(rs.Fields(0).Value) Response.Write("<br>") i = i + 1 Loop rs.Close conn.Close Set conn = Nothing Set rs = Nothing
298 名前:nobodyさん mailto:sage [2006/01/04(水) 22:17:29 ID:???] DBがPostgreSQLだったらOFFSETとLIMITを使えば簡単。 SQLServerでも取得するデータ列にユニークなキーがあれば TOPとnot existsを駆使することで、結構負荷軽めに レコードセットの中間だけ取り出す事が可能だよ
299 名前:nobodyさん mailto:sage [2006/01/05(木) 12:18:06 ID:???] なるほど。
300 名前:nobodyさん [2006/01/05(木) 16:56:41 ID:KdflC/KD] VBScriptで、自分のPC(Win2000)をサーバーにして作業をしています。(この書き方おかしかったらすみません。) Excelの既存ファイルを開き、データ書き込み、別名で保存ということをしています。 その時、作業フォルダとは別に、Cの直下に、作業フォルダ、開いたファイル、保存したファイルの3つのショートカットができるんですけど、なぜなんでしょうか?仕様ですか?