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
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つのショートカットができるんですけど、なぜなんでしょうか?仕様ですか?
301 名前:nobodyさん mailto:sage [2006/01/05(木) 18:09:35 ID:???] >>300 そんなショートカット出来たこと無いぞ
302 名前:nobodyさん mailto:sage [2006/01/05(木) 18:41:21 ID:???] >>300 Officeいくつ? あと、ASP越しにやってるの?それともWSH越し?
303 名前:nobodyさん mailto:sage [2006/01/05(木) 22:34:33 ID:???] >>296 開始位置の格納 ページカウンタの格納 DBオープン rs.AbsolutePosition = 開始位置 [ループ開始] 開始位置=開始位置+1 If 開始位置 = (ページカウンタ * 1ページあたり表示件数 + 1) Then ループ抜ける [ループ終了] ページングのためのリンクを表示
304 名前:nobodyさん mailto:sage [2006/01/05(木) 23:21:52 ID:???] >>303 それは普通の方法だから重いのでは?
305 名前:nobodyさん mailto:sage [2006/01/06(金) 00:10:03 ID:???] しかし全体の行数がものすごく多かったりする場合は ひょっとするとReadForwardOnlyのレコードセットで空読みするより 素直にランダムアクセス可能なレコードセットを使う方が 結果としては速くなるやも知れんな。 やってみたこと無いから分からんけど。
306 名前:300 [2006/01/06(金) 09:03:43 ID:1e+7Xjcv] レスありがとうございます。 >>301 そうですか・・・。 >>302 officeは2000です。 後半意味がわかりませんが(すみません)、wsfは使っていないので、ASP越しだと思います。 後、マクロを含んだExcelだと別名保存ができません。 参照設定なども必要なのでしょうか? 以下、ソースです。 <% Dim XL Dim XB Dim OpenFile Dim SaveFile Set XL = Server.CreateObject("Excel.Application") Err.Clear On Error Resume Next OpenFile = Server.MapPath("./TEST.xls") SaveFile = Server.MapPath("./TEST1.xls") XL.Visible = False Set XB = XL.Application.Workbooks.Open(OpenFile) XB.ActiveSheet.Cells(1,1).value = "AAAA" XB.ActiveSheet.Cells(1,2).value = "BBBB" XB.Application.DisplayAlerts = False XB.SaveAS SaveFile XL.Quit Set XB = Nothing Set XL = Nothing %>
307 名前:nobodyさん mailto:sage [2006/01/06(金) 21:31:41 ID:???] >>306 ASPでOfficeとかShellとかのユーザ的なCOMを操作するのはMSのサポート外。 つまり何が起こっても文句は言えないということ。 ASP越しだとカレントディレクトリや%TEMP%変数の概念がShellと全然違うから C:\直下に一時ファイルができたり削除されなかったりするのは仕様かもね。
308 名前:300 mailto:sage [2006/01/07(土) 10:51:35 ID:???] >>307 ふむぅ・・・。そうなんですか。 最終的には、DBからデータを取得して、Excel開いてデータを書き込んで、 マクロ起動してグラフの表示ってことをしたいのですが、前途多難ですな。 ファイルを開くのや、マクロの起動のサンプルを拾って、アレンジしながら試しているのですが、 全く思ったように動いてくれません。
309 名前:nobodyさん mailto:sage [2006/01/07(土) 14:31:30 ID:???] >>308 ASPでグラフ表示はVMLを使うのが普通
310 名前:nobodyさん mailto:sage [2006/01/08(日) 06:31:53 ID:???] >>309 そうでもないよ
311 名前:バッカーです ◆KeuXjwWDdE mailto:sage [2006/01/08(日) 20:30:42 ID:???] 棒グラフなら単純に画像の横や縦の設定だけでいいんじゃないの? ビローンと伸ばすかギュッと縮めるかっつーことで
312 名前:300 mailto:sage [2006/01/09(月) 08:51:14 ID:???] スキルアップもかねてということで、Excel操作ができるようにと、提示されているのです。 VMLって、IEのバージョン限定でしか使えないんじゃないですか?
313 名前:nobodyさん mailto:sage [2006/01/09(月) 10:49:02 ID:???] >>312 確かにIE4より前だと使えないが、 そんな古い環境じゃDHTMLもろくに使えないし、 今更そこまでサポートせんでもいいだろ。 ちなみにExcel.Applicationをサーバで使うのは 今ではMSの完全サポート外、むしろ止めとけって事になってるので そこは気をつけておいた方がいいぞ。 元々Excelはクライアントアプリだから意味合い上ライセンス的にも微妙だし。 MS的にはOffice Web Componentでも使え、って話だ。
314 名前:nobodyさん mailto:sage [2006/01/09(月) 14:55:35 ID:???] >>312 ASP使ってグラフ表示っていうと、イントラでしょ? イントラならIE限定でいいんじゃね? それにIE以外だとxlsファイルもブラウザで直接見れないんじゃなかったっけ?
315 名前:nobodyさん mailto:sage [2006/01/14(土) 16:04:01 ID:???] >>300 SVG使えばいんでない。 とりあえず、IEでもプラグイン入れてれば見れるし。
316 名前:nobodyさん [2006/01/14(土) 16:04:19 ID:6WSzNtEC] ASPのIf文の条件として varDateというある日付の入った変数を システム日付プラス1日より過去のものはtrueという 条件をつくりたいのですが、どう記述すればよろしいでしょうか? よろしくお願い致します。
317 名前:nobodyさん mailto:sage [2006/01/15(日) 00:22:44 ID:???] DateAdd(d,1,Date()) > varDate
318 名前:nobodyさん mailto:sage [2006/01/16(月) 16:00:20 ID:???] 質問です。 Response.ContentType="application/vnd.ms-excel" Response.AddHeader "Content-Disposition" , " attachment; filename= data.csv" Response.Write csvdata この様な感じで、csvファイルをクライアントに保存させようとしています。 100件程度なら問題ないのですが、数千単位のレコードになると保存のダイアログは出るものの、 ダウンロードのファイル名もaspのファイル名になってしまい、保存できません。 何か対処方法はありますでしょうか?
319 名前:nobodyさん [2006/01/16(月) 16:01:10 ID:UBjBFy/D]
320 名前:nobodyさん [2006/01/16(月) 17:08:53 ID:rp3amqOf] つContent-lngth
321 名前:nobodyさん mailto:sage [2006/01/16(月) 21:02:51 ID:???] >>318 何故にexcel?
322 名前:nobodyさん mailto:sage [2006/01/17(火) 14:00:57 ID:???] ASP.NET(aspx)ではなく、既存のASP(asp)の『Server.createObject』を 使用して呼出すことの出来るDLL(COM)を、.NET2003で作成したいのですが、 どうしても上手くいきません...orz 〜試したこと〜 @C# ⇒ クラスライブラリで作成 ⇒ 「COM の相互運用機能に登録」オプションをtrue ⇒ DLL完成 A試しに、VBSから@で作ったDLLを呼出して見る(createObject) ⇒ 成功 BASPから@で作ったDLLを呼出して見る(Server.createObject) ⇒ 失敗..orz ファイルまたはアセンブリ名 ClassLibrary5、またはその依存関係の 1 つが見つかりませんでした。 VBSから呼出せるってことは、レジストリに 登録されてるってことだと思う。(実際に登録されている) なんで、ASPからだと使えない?
323 名前:nobodyさん mailto:sage [2006/01/17(火) 14:42:30 ID:???] >>322 IUSR_XXXがDLLに対するアクセス権を持っていない……とか。
324 名前:322 mailto:sage [2006/01/17(火) 15:03:56 ID:???] DLLをC:\winnt\system32の下へ持っていったら...orz...動いた... なんで?レジストリには、DLLのファイルパスまで あったし、VBSも動いてた!! 全然、わからない!!
325 名前:nobodyさん mailto:sage [2006/01/17(火) 17:18:24 ID:???] つ 自分のアカウントの PATH とIISサービスの PATH が同じとは限らない。 というか違う。
326 名前:nobodyさん [2006/01/17(火) 21:05:04 ID:4JhQoD7f] aspのソースって暗号化出来るんでしょうか? dbの接続のパスとか書いてるそのままのソースを置くのは、 ちょっとアレかな〜と思いまして。
327 名前:nobodyさん mailto:sage [2006/01/17(火) 21:14:51 ID:???] >>326 スクリプト エンコーダ www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/SeconScriptEncoderOverview.asp
328 名前:nobodyさん mailto:sage [2006/01/17(火) 23:07:48 ID:???] DBの接続文字列とかはレジストリに登録してそれをCOMあたりで呼び込むのがいいと思う。 (レジストリってVBScriptから直接呼び出せたっけ?)
329 名前:nobodyさん mailto:sage [2006/01/18(水) 02:57:39 ID:???] WshShell.RegRead()使えば読める……はず。そいや使ったことないや。
330 名前:nobodyさん mailto:sage [2006/01/18(水) 18:40:54 ID:???] >>326 このあたりをどぞ。ASP.NETとありますがASPでも適用できるかと。 Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication Storing Database Connection Strings Securely ttp://msdn.microsoft.com/security/securecode/dotnet/default.aspx?pull=/library/en-us/dnnetsec/html/SecNetch12.asp#secnetch12_storingdatabaseconnectionstrings ・Encrypted with DPAPI ・Clear text in Web.config or Machine.config ・UDL files ・Custom text files ・Registry ・COM+ catalog
331 名前:638 [2006/01/21(土) 13:32:23 ID:GsEUkG9T] ASPにてシステム日付の3日前の日付を取得したいのですが、 下記のようにすると変数varAに 38735 という数字が入ってきます。 システム日付の1日後のvarBには 2006/01/22 と入るのですが、 x日前の日付の取得はどうすればよろしいのでしょうか? varA =DateDiff("d", 3, date) varB =DateAdd("d", 1, date)
332 名前:nobodyさん mailto:sage [2006/01/21(土) 14:49:32 ID:???] >>331 varB =DateAdd("d", -3, date
333 名前:nobodyさん [2006/01/21(土) 18:49:21 ID:AIj0kho+] 326に便乗質問 俺はweb.configに置いてるけどweb.configはサーバーだけで動くとか何とか 呼んだ気がするから安心してたけどひょっとして安心ではない?
334 名前:638 [2006/01/21(土) 19:00:34 ID:GsEUkG9T] >>332 なるほど、DateAddを使うですね。 ありがとうございました。
335 名前:nobodyさん mailto:sage [2006/01/22(日) 01:05:17 ID:???] >>333 ここはASP.NETスレじゃないよ><
336 名前:nobodyさん mailto:sage [2006/01/27(金) 14:12:25 ID:???] ASP → ASP.NET より ASP → PHPのほうが、乗換えとして、自分の好みに合っている気ガス
337 名前:nobodyさん mailto:sage [2006/01/27(金) 21:52:21 ID:???] そんなあなたにpythonですよ
338 名前:nobodyさん mailto:sage [2006/01/29(日) 22:28:57 ID:???] ASPにはhtmlエスケープの関数ってありますか? 昔どこかのサイトで見かけた気がするのですが 失念してしまいました…。
339 名前:nobodyさん mailto:sage [2006/01/29(日) 23:25:38 ID:???] >>338 JScriptならできる
340 名前:nobodyさん mailto:sage [2006/01/30(月) 00:12:50 ID:???] >>339 レスありがとうございます。 VBscriptで書いてしまったので、 replaceでしこしこやってみますorz
341 名前:nobodyさん mailto:sage [2006/01/30(月) 03:19:35 ID:???] >>338-340 Server.HTMLEncode() のことじゃないの? そうならVBScriptでも使えるけど。
342 名前:nobodyさん [2006/02/01(水) 18:59:54 ID:Im+A4ONK] かなり行き詰ってて助けてください。 Framework2.0(C#)ベースで作ったDLLをASPで動かしたいのですが、 XPのiis上ではうまく動くのに2003Serverのiisではクリエイトで失敗します。 Set hoge = Server.CreateObject("hoge.hoge")←ここで失敗 両環境下でRegAsmで登録しFrameworkのバージョンも同一です。 なぜ動かないか分からないのですが、 どなたかご教授お願いします。
343 名前:nobodyさん mailto:sage [2006/02/01(水) 21:22:49 ID:???] >>342 エラー メッセージ プリーズ
344 名前:342 mailto:sagwe [2006/02/01(水) 21:45:57 ID:???] >>343 Server オブジェクト エラー 'ASP 0177 : 80070002' Server.CreateObject に失敗しました です。 権限とかの問題でしょうか?
345 名前:nobodyさん mailto:sage [2006/02/01(水) 22:08:21 ID:???] >>342 %SystemRoot%は、両方のOSで同じ名前?
346 名前:342 mailto:sage [2006/02/01(水) 22:18:40 ID:???] >>345 2003サーバの%SystemRoot%が標準で:/windows/system32なら同じにしてます。
347 名前:345 mailto:sage [2006/02/01(水) 22:21:21 ID:???] >>342 違ってたらゴメンネ。海外のサイトで同じような質問していて I suspect this is because the DLL is not in a particular location that the CLR is looking when you create the object. Try copying the DLL to C:\Winnt\System32 or C:\Windows\System32 depending upon whether you have Windows 2000 or Windows XP Professional / 2003 Server. って答えてたから。
348 名前:342 mailto:sage [2006/02/01(水) 22:33:26 ID:???] >>347 確認しましたらC:\windows\system32にDLLをおいてTLBを作成しているので ほかに原因があると思います。 もしかしてRegasmで登録しているのが原因でしょうか?
349 名前:342 [2006/02/02(木) 02:42:30 ID:bVYIWBsA] どうしても解決しないので一旦age
350 名前:nobodyさん mailto:sage [2006/02/03(金) 02:47:28 ID:???] ASPでIPアドレスの比較(?)をしたいと考えています。 IPマスクで192.168.1.0/24のような形式のもの(20項目程度)と$ipを比較して含まれていれば真を返すにはどのようにすればいいのでしょうか? 鯖はWinXP ProのIIS(.net Framework無し)、開発環境はVS.net 2005 ExpressEditionです。
351 名前:nobodyさん mailto:sage [2006/02/03(金) 20:14:27 ID:???] >>350 正規表現?
352 名前:バッカーです ◆KeuXjwWDdE mailto:sage [2006/02/03(金) 20:44:49 ID:???] 範囲の問題じゃないの?
353 名前:nobodyさん mailto:sage [2006/02/04(土) 01:23:48 ID:???] まんま24ビットの整数にしてAnd取る……って話ぢゃないのか。
354 名前:nobodyさん mailto:sage [2006/02/04(土) 08:16:33 ID:???] .NETは知らんがVBSじゃオーバーフローしたような記憶が >24ビットの整数にしてAnd取る
355 名前:nobodyさん mailto:sage [2006/02/04(土) 10:46:54 ID:???] >>350 IPが連続してるなら正規表現、 バラバラであれば配列にして比較するか、DBを使ってるならSQLだな。
356 名前:nobodyさん mailto:sage [2006/02/04(土) 16:29:50 ID:???] VBSでもちゃんとCLngすれば24bitも大丈夫だよ
357 名前:350 mailto:sage [2006/02/06(月) 02:39:19 ID:???] レスありがとうございます。 $ipになってましたがipのミスですorz 検査してくれるような便利な関数があれば良いなぁと考えてたのですが無いのですか・・・。 やはり/で2つに分けて地道にホゲホゲさせないと駄目なのでしょうか?
358 名前:nobodyさん [2006/02/06(月) 10:00:27 ID:kQjET4Ig] 文字列から検索対象文字がいくつあるかカウントする関数はありますでしょうか? strTest という変数からchar(10)の改行文字のカウントをしたいのですが。
359 名前:nobodyさん mailto:sage [2006/02/06(月) 21:24:02 ID:???] 俺なら地道にFunctionステートメントで、InStr()関数と For〜Next文でループさせて数えるけどね
360 名前:nobodyさん mailto:sage [2006/02/06(月) 22:22:25 ID:???] >>350 ipaddrとipnetの間で比較する流れを完全に想像だけで書いてみるw function conv(ip) Dim ipary ipary = split(ip,".") conv = clng(ipary(0)*256^3) + clng(ipary(1)*256^2) + clng(ipary(2)*256) + clng(ipary(3)) end function function bitmask(masklng) Dim mask mask = clng(0) for i = 31 to 31-masklng mask = mask + clng(2^i) next bitmask = clng(mask) end function function check(ipaddr,ipnet) ary = split(ipnet,"/") netaddr = conv(ary(0)) mask = bitmask(ary(1)) if (clng(netaddr) = clng(conv(ipaddr)) and clng(mask)) then check = true else check = false end if end function clngの挟み方は適当。多分使いすぎ。 bitmask辺りは99%の確率でバグってる悪寒w
361 名前:360 mailto:sage [2006/02/06(月) 22:24:50 ID:???] ミスった! bitmaskのforはstep -1 でw
362 名前:nobodyさん [2006/02/07(火) 09:32:11 ID:o795fuVl] レコードセットで、[列名]hoge1,hoge2,hoge3,hoge4.....hogeXXの項目のデータを取ってきて、 このデータを変数に格納したいのですが、 今のところ、 hoge1 = objRS("hoge1") hoge2 = objRS("hoge2") hoge3 = objRS("hoge3") と言ったかなり格好悪いやり方をしています。 これを、スマートにするにはどうしたらいいのでしょうか。 ちなみに 1回目のレコードセットはhoge1〜hoge20 2個目のレコードセットはhoge1〜hoge25 と言ったように、 項目数も変わってくるんです。
363 名前:nobodyさん mailto:sage [2006/02/07(火) 20:18:23 ID:???] >>362 GetRows
364 名前:nobodyさん mailto:age [2006/02/07(火) 20:41:38 ID:???] ファイルアップで質問です。 レンタルサーバでファイルアップフォームを 作成しているのですが、BASP21が使えません。 (インストールに管理者権限が必要?) VBScriptのデフォルトではファイルアップは できないのでしょうか? もし、他のモジュールを使えば可能なのであれば、 ファイルをコピーするだけで動くようなものを 教えていただけると助かります。 よろしくおねがいします。
365 名前:nobodyさん mailto:sage [2006/02/07(火) 21:19:33 ID:???] >>364 ADO.Streamを駆使すれば可能。 来週まで待てば俺作のをupってもいいが… ttp://blog.so-net.ne.jp/nakagami/archive/c100656 こんなのがあったので参考になるんちゃうか。
366 名前:nobodyさん mailto:sage [2006/02/08(水) 00:09:09 ID:???] >>364 ↓には、昔お世話になったことあるよ。 web.archive.org/web/*/http://www2.dolphinnetservice.ne.jp/Mattn/AcrobatASP/4.html
367 名前:364 mailto:sage [2006/02/08(水) 16:53:03 ID:???] >>365 ,366 親切に回答いただきありがとうございます! >>366 さんのサンプルを作ったところ、 うまくアップロードできたようです。 ただ、これを使うと通常の値 <input type="text"> などはどうやってとるのかが 知識不足のため、ソースを見てもわかりませんでした… Upload("textbox") とかでもダメっぽいですね。。
368 名前:nobodyさん mailto:sage [2006/02/08(水) 20:31:59 ID:???] >>367 multipart/form-dataでUPしてBinaryReadで受け取ると バイト単位の処理になるから、テキストフォームとかと同時にやるとなると面倒くさそうだね。 駄目文字の処理とかも必要になるし。
369 名前:nobodyさん [2006/02/09(木) 02:36:56 ID:v3Lm1+ha] Basp21のSendMailメソッドで質問があります。 上記メソッドを使用してメールを送信すると、 指定したアドレスに2重送信されてしまい困っています。 メールを送信する直前にDBへ履歴を登録しているので、 前回送信時刻と現在(今回送信)時刻の差(datediff)が60秒以内であれば、 メールを送信しないような処理をしているのですが無駄に終わっています…。 何かいい回避策があるようでしたら教えてください。
370 名前:364=367 mailto:sage [2006/02/09(木) 13:24:29 ID:???] >>368 やはり受け取ったバイナリを手動でとらないとダメなんですね…ありがとうございます。 ファイルアップとテキストフォームの組み合わせは引き続き調べてみます。
371 名前:バッカーです ◆KeuXjwWDdE mailto:sage [2006/02/09(木) 18:39:04 ID:???] >>369 アルゴリズムに問題があるのではないかと
372 名前:nobodyさん mailto:sage [2006/02/09(木) 21:01:53 ID:???] VBScriptで17桁の整数を扱う方法ってある? 通貨型じゃ15桁+小数部4桁だよね?
373 名前:nobodyさん mailto:sage [2006/02/09(木) 22:59:46 ID:???] 京の位に達するのか。 ASPでどんな計算をしようとしているんだw 文字列でいいんじゃねーのけ?
374 名前:nobodyさん mailto:sage [2006/02/10(金) 00:55:41 ID:???] >>369 その手の質問はBASPの掲示板でしたほうがいいと思うよ
375 名前:nobodyさん [2006/02/10(金) 01:31:16 ID:gbK8yDLA] Ajaxっぽい非同期通信を組み込んでいて詰まってしまいました。 クライアント側 httpObj.open("GET","gettext.asp?sendData="+Data,true); httpObj.send(null); //これで送って サーバー側 getData = Request.QueryString("sendData") 'これで受け取る○ これはうまくいったのですが、送るデータ量が大きくなるとオーバーフローエラー がでてしまいました。そこでPOSTで送ることにしました。 ところが受け取りがまったく反応してくれません。 クライアント側 httpObj.open("POST","gettext.asp",true); httpObj.send("sendData="+Data); //これで送って サーバー側 getData = Request.Form("sendData") 'これで受け取る× getData = Request.QueryString("sendData") 'これで受け取る× 解決策がありましたらよろしくお願いいたします。
376 名前:nobodyさん mailto:sage [2006/02/10(金) 06:35:31 ID:???] >>336 ttp://asp2php.naken.cc/ ダウンロードしたら解凍してできたexeファイルの上に、 **.aspのソースをドラッグドロップするだけですよ
377 名前:nobodyさん mailto:sage [2006/02/10(金) 19:40:27 ID:???] >>375 send前に httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); をつけるのをマジおすすめ
378 名前:sage [2006/02/10(金) 23:36:15 ID:gbK8yDLA] >>377 無事動きました!ありがとうございます!
379 名前:nobodyさん mailto:sage [2006/02/11(土) 03:19:38 ID:???] win2003鯖(web Edition)+IIS6.0+VBscript+BASP21でメール送信をしようとしています。 PHPのmail()関数を使ってメールの送信ができたのでSMTPには問題なさそうです。 ところがVBscriptからだとSMTPで認証を要求されます。 この場合、実行ユーザが違うから権限が違うのかな、と思ったのですが、 Win鯖にうとくどのサービスがどのユーザで実行するか調べたいのですが、 どこで見れるのか教えていただけますでしょうか また、ググってみたところ、2003web Editionにはユーザ管理機能はない、 ttp://www.fmmc.or.jp/〜fm/nwts/w2003s/ch1/1_1_3.html なんて書いてあるんですがまじですか?
380 名前:nobodyさん mailto:sage [2006/02/11(土) 07:14:57 ID:???] >>379 なんだか全然スレ違いくさいが。 >win2003鯖(web Edition)+IIS6.0+VBscript+BASP21でメール送信をしようとしています。 2003ServerにSMTPが動いていて、同じサーバ上からそれを使って送信、 ということでOK? >VBscriptからだとSMTPで認証を要求されます。 どんな認証が要求される? ダイアログなどを詳しく。 >この場合、実行ユーザが違うから権限が違うのかな、と思ったのですが、 >Win鯖にうとくどのサービスがどのユーザで実行するか調べたいのですが、 SMTPサービスの実行権限を調べたいなら コントロールパネル→管理ツール→サービス >2003web Editionにはユーザ管理機能はない ActiveDirectoryが無いというだけで、サーバ内でのユーザ管理はもちろんある
381 名前:nobodyさん mailto:sage [2006/02/11(土) 15:21:43 ID:???] >>380 全然見当違いなところのエラーでした。 BASP21でメールサーバをIPで指定していたんですが、 ループバック(127.0.0.1)で指定したら(゚д゚)ウマーでした おそらくSMTPのリレー関係の設定の問題でした。 ごめんなさい
382 名前:nobodyさん mailto:sage [2006/02/15(水) 14:02:53 ID:???] FileSystemObjectで、仮想ディレクトリ内にファイルをコピーしたり削除する場合、 そのフォルダに対して、 「インターネットゲストアカウント PC名\IUSR_PC名」のユーザーアカウントに、 フルアクセスの権限を与えています。 セキュリティーの観点から、こういうのは危ないんでしょうか?