トップページ⇒php
1001コメント403KB

==ASP== Part 3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/28 23:07ID:33/XGu54
ASP について語るスレ その3

【過去スレ】
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0046nobodyさん03/09/10 22:43ID:TsxxLFGm
WithってVBScriptのバージョンによっちゃサポートされてないんじゃない? 自社と客先のIISのバージョンは同じ? まずはWithを取り除いて実行してみたら?
0047nobodyさん03/09/10 23:03ID:???
>44-45
http://www.microsoft.com/downloads/details.aspx?FamilyId=C717D943-7E4B-4622-86EB-95A22B832CAA&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=0A8A18F6-249C-4A72-BFCF-FC6AF26DC390&displaylang=ja
00484403/09/11 09:25ID:???
>>46-47
VBScriptのVersionは一致してないです。
IE5かWindows scriptのパッチを入れさせる事を提案してみたいと思います。
ありがとうございました。
0049nobodyさん03/09/13 03:12ID:pcMGaa/e
以下のような環境でエラーが出ます。
<環境>
 Window2000 Server SP4
 2台(ドメイン設定なし、ワークグループ)
  ※便宜上片方をA、片方をBとする
1)AのマシンのIISにてWEBサイトを構築し、ASPを配置
2)Bのマシンに共有フォルダを作成し、画像ファイルを保存
3)AのマシンのASP内でOCXを使用して、2)で保存したBマシン
  の画像ファイルにアクセス・・・でエラーが発生

<エラー内容>
TESTOCX (0x800A03EB)
Failed to open file \\hostname\image\001 for reading.
System error message was 'An unknown error occurred while accessing
\\hostname\image\001.'
/test/Default.asp, line 20

ローカルディスクを触るようにすればエラーは起きないです。
(サービスパックを適用する前は動いていたような気もしています)

どなたかご存知であればお知恵を拝借したいです。
0050nobodyさん03/09/13 18:49ID:???
OCX?

とりあえずBの共有とNTFSのアクセス権を確認しろ
0051nobodyさん03/09/13 22:16ID:???
>49
net use * \\hostname\image
00524903/09/14 23:32ID:???
>>50&51
ありがとうございます。
早速明日試してみます。
0053◇ ◆ZG8T77hntw 03/09/19 19:04ID:S+hh+T/0
ASPとデータベースにACCESSを使ってWEBアプリ作ろうと思います。
データ量は12万レコード/年になるのですが耐えられるでしょうか。
フィールドは16個で、全てテキスト10文字以内です。

教えて下さい。
0054nobodyさん03/09/19 19:42ID:???
>>53
だいじょうぶ。
それに、
For i=1 to 120000
rs.AddNew
rs.Fields("〜")="String"
rs.Fields("*")="String2"
・・・

rs.UpDate
if EndFlg=1 then End
DoEvents
Next
とすれば簡単に12万レコードの実験用データベースが作れるじゃん
0055nobodyさん03/09/20 08:22ID:???
>>53
キミはプログラマの才能が無い
0056nobodyさん03/09/20 20:50ID:E7R77dc7
ASP可のいいレンタル鯖ないですか?
0057nobodyさん03/09/20 22:06ID:NCfIEGUj
>>53
ASPでAccess使うやつは糞。
検索すれ
0058nobodyさん03/09/21 20:18ID:???
53みたいのがプログラマになっても迷惑だから
0059nobodyさん03/09/22 16:24ID:mq74zNS4
質問なんですけど、
ASPでサーバー内の「WEBから参照できないフォルダ」にあるローカルファイルをWEB上で表示させるやり方を教えて下さい。
以下のやり方でやると

<% @Language=JScript %>
<%
var fs = new ActiveXObject("Scripting.FileSystemObject");
var gazo = fs.GetFile("c:\\A.jpg");
%>
<img src="<%= gazo %>" width="80" height="60">

イメージタグのソースが「img src = "C:\A.jpg"」となって失敗してしまいます。
どうしても出来ない場合の妥協案として、
ローカルフォルダからWEB用フォルダに画像をコピーする方法も考えています。
でも負荷を最小にしたいので、できればこの方法は避けたいです。
どなたか解決方法を教えて下さい。
0060nobodyさん03/09/22 17:29ID:???
>>59
http://www.kawabata.ksi.ne.jp/view/Default.asp?a=printable

こういうやつ?
0061nobodyさん03/09/22 17:43ID:???
ソートのためだけにデータベースをつかってるのはオレです。

あ お
い え
う→う
え い
お あ

Order By 〜 Desc
0062nobodyさん03/09/23 08:08ID:???
ASPはテキストエディタで手軽に作れていい。
ASP.NETをテキストエディタで作るのはちょっとたいへん。
00635903/09/23 09:17ID:vZ9KuNZy
>>60さん
あ、多分こうゆうやつです。
早速試してみます。ありがとうございます。
0064nobodyさん03/09/23 09:19ID:???
>61
1次元配列ならクイックソート使え
http://tuka.s12.xrea.com/index.xcg?page=VBS#p16
0065nobodyさん03/09/23 09:42ID:???
>>59
Webから参照できないフォルダの画像にどうやってWebからアクセスさせるか?

と、

ブラウザは、HTMLを解釈してどうやって画像を表示するのか?

を勉強しる!

ちなみに負荷を考えたら、Web用フォルダに画像をコピーするのがベストです。

00666103/09/23 10:17ID:???
>>64
あるフォルダに入っているファイルを名前順の反対の順にならべてブラウザに表示したいのだ。

zabc.jpg
ggie.jpg
abcd.jpg
みたいな順に。
00676403/09/23 16:11ID:???
>66
ん?entryに好きなように入れるだけだが。

Const FilesMax = 1024
Dim entry()
ReDim entry(FilesMax - 1)
If fs.GetFolder(ToaruFolder).Files.Count > FilesMax Then Response.End
i = 0
For Each f In fs.GetFolder(ToaruFolder).Files
entry(i) = f.Name
i = i + 1
Next
ReDim Preserve entry(i - 1)

あとはソート結果を逆順にするだけだが別に難しくは無いだろ。

#最初"CMD /C DIR /B /O:-N"の結果を取ろうとしてハマったのは秘密。
#安全な風穴の開け方忘れた。
0068nobodyさん03/09/23 16:53ID:???
横レスだけどBASPのReadDirが一番手っ取り早いような。
もし使えるのならだけど。
00696103/09/23 20:49ID:mPWiGpi6
>>67
ちょっとおれにはむりだなぁ。アルゴリズムをつかって降順から昇順にするのに骨がおれそうだ。
>>68
BASPはEUCコードをシフトジスに変換したり、メール送信などに使用してる。
ファイル名を昇順にするメソッドがあるというのならBASPのメソッド一覧をこれから調べてみる。
0070nobodyさん03/10/07 17:30ID:mQzhPkOR
include fileで..親パスへの参照が動いていた(おそらく2ヶ月前は)のですが、
突然動かなくなりました。include virtualで解決するのはわかったのですが、
何もしていないはずなのになぜこうなったのか、わからないので、
もしかしたらwindows updateによって仕様変更になったのかと思ったのですが、どなたか詳しいかたいらっしゃいませんか?

enableparentpathの設定を1にすると動くらしいのですが、レジストリに書き込んで再起動しても、
同じ症状のままです。仕様変更で無視するようになったのでしょうか?
あとなぜかaspの設定がかかれているレジストリのパスには設定が何一つありませんでした。
これは正常ですか?

0071奈々氏03/10/08 14:59ID:aKwR4NNQ
かなり困ってるんですが、

ネットワーク内のマシンによって、Workbook.Open(filename)で止まるという意味不明な状態になってるんですが、
誰かわからないでしょうか?

IISのログには、Lockかけに逝って500エラー・・と解析すらできず・・・

再現できなくてほとほと困っております、、、
0072nobodyさん03/10/09 02:03ID:???
はあ?
状況も環境もさっぱりわかりません。
念のため聞くけど、クライアントでExcel開こうとしてる話じゃないよな。
0073nobodyさん03/10/09 16:09ID:???
初心者スマソ...

ASPってクライアントのブラウザに依存するの?
VBSで書いたらIE以外ダメとか...JSならNNとかでもOKよとか...
処理するのはサーバ側なんだから、クライアントの環境には依存しないようにも思うんだけど。

サーバから出されるHTMLの中に、VBSとかJSが含まれてたらアウトなのかな?
VBSとかJSを含まないHTMLを出すように作れば、ブラウザには依存しないのかな?

勘違いがあるかも知れないけど、良く分からないのよ。
0074nobodyさん03/10/09 22:49ID:???
>73
概ね合ってる。自信を持つよろし。
Webアプリの場合はサーバとクライアントがひとつのマシンって時もあるが、それはさておき。
クライアント側からすればサーバはクライアントに文字を吐き出すだけ。

71が混乱しているのを見ての関連か?ウチも72の解説の通りとおもっているが。共有フォルダに置いたファイルロックと同じく。
0075nobodyさん03/10/23 01:54ID:???
sage
0076nobodyさん03/10/23 11:11ID:???
URL Encodeの反対のメソッドはなんですか?

普通の文字→URL文字→また普通の文字に戻したい
0077nobodyさん03/10/23 11:17ID:???
Encodeの反対はDecodeだろ
00787603/10/23 11:39ID:???
>>77
ありがとうございます。
0079nobodyさん03/10/23 16:02ID:???
そんなメソッドあったか?w
BASP21のBase64メソッドでいけたはず。
0080nobodyさん03/10/23 17:34ID:ZxwBrBeZ
ASPページを開くときにエラーが発生した場合、ページがエラー表示になりますが、
たしか途中までの実行結果を表示するオプションがサーバにあったはずなのですが、
度忘れしてしまいました。調べてもなかなかわからず・・・。
どなたかどこをチェックすればよかったのかおしえていただけないでしょうか・・・。
00817603/10/24 04:17ID:???
>>79
わかりました。
0082nobodyさん03/10/24 06:39ID:S5VfjmM4
SQL Serverのimage型にASPを使って画像を保存する
には、どうしたらよいのでしょうか?
0083nobodyさん03/10/26 23:12ID:???
何だかASPスレって寂れてますね。
ASPやっている人って自分も含めて変わってるのかな…
0084nobodyさん03/10/28 01:39ID:nuUB90lg
どなたかご存じでしたら教えてください。

ブラウザからの条件指定によって、サーバで[タイムスタンプ].csv
というCSVファイルを作成し
そのCSVをwindow.openで別ウィンドウに表示(またはDL)させています。

で、表示も保存もできるようにはなったのですが
このときサーバに作成されたCSVを消すタイミングがありません。
とりあえずサーバ側の定期タスクで一定時間を過ぎたら
消すようにしてあるのですが、できれば表示が済んだら消したいのです。
どういう手を使ったらいいでしょうか?
0085nobodyさん03/10/28 02:02ID:???
1. 条件をQueryStringで取り、CSVをResponse.Writeで出力するASPを作成
2. window.open で 1 のASPを開く

以上
00868403/10/28 04:01ID:???
>>85
素早いレス、どうもありがとうございました。
そうか、バッファにreadallしてから削除しちゃって
そのあとoctet-streamでresponse.writeするんですね。
助かりました、納得です。
どうもありがとうございました。
00878403/10/28 04:17ID:???
おっと、これだと保存ファイル名が*.aspになっちゃうのか、、、
仕方ないですよね、、、これは目をつぶってもらうことにします
0088nobodyさん03/10/28 08:37ID:???
>>87
Response.AddHeader("content-dispositioin", "attachment; filename=newfile.txt")
とかすると変えることできる>保存ファイル名
0089nobodyさん 03/10/28 17:14ID:???
リストボックスで選択した値をASPプログラムに渡す方法を教えて頂きたいのですが?
0090nobodyさん 03/10/28 18:49ID:???
>>73
ブラウザに依存しないからASP
0091nobodyさん 03/10/28 18:51ID:???
>>89
自分で勉強汁
0092nobodyさん03/10/28 21:58ID:???
>>73
> サーバから出されるHTMLの中に、VBSとかJSが含まれてたらアウトなのかな?
> VBSとかJSを含まないHTMLを出すように作れば、ブラウザには依存しないのかな?

その通り。
0093nobodyさん03/10/29 02:06ID:???
>>89
<form action="xxxx.asp" method="POST">
 <select>
  <option value="1">男</option>
  <option value="2">女</option>
 </select>
</form>

これでASPに渡せるよ。method="GET"でもOK。
00948903/10/29 07:14ID:???
>>93
ありがとうございます。早速ためしてみます。
0095nobodyさん 03/10/29 20:52ID:???
セレクト文で得たレコードセットをHTMLの画面に一覧表示したいのですがどうしたらよいでしょうか?
0096nobodyさん03/10/30 01:15ID:???
ループで回して、レスポンス.ライト(藁 で出力する
0097nobodyさん03/10/30 07:06ID:???
>>95
Do while not rs.eof
response.write rs.fields("データベースフィールド名") & "<br>" & vbcrlf
rs.movenext
loop
0098nobodyさん03/10/30 10:16ID:itOyI7rK
do
response.write w
loop
0099nobodyさん03/10/30 23:38ID:cHHtY1rk
Functionに渡すデータでたとえば0900とすると
Functionでは900になってしまうのですが、
どうにかならないでしょうか?
よろしくお願いします。
0100nobodyさん03/10/31 00:59ID:???
ハァ?

Function baka(a)
 Response.Write a
End Function

Call baka("0900")

間違いなく 0900 が表示される
0101nobodyさん 03/11/01 02:40ID:???
データ型を指定してみたらいかがでしょうか?
0102nobodyさん 03/11/07 22:37ID:???
オブジェクトでwebprogだとプログラム同士の相関関係がわけわかんなくなってどうにもならない。

でもページ間のデータのやりとりとかネットでプログラムするにはやっぱASPがやりやすい?
0103nobodyさん 03/11/08 10:40ID:???
それにしてもデバッガのないプログラムって辛い。
ASPにもVBみたいの欲しいよ。
0104nobodyさん 03/11/08 16:10ID:???
>>103
.NETじゃないの?
0105nobodyさん03/11/10 14:40ID:mrzVsePb
SessionIDについて教えてください。

SessionIDはタイムアウトするか明示的に破棄するまでは同じ番号が帰ってくると思うのですが、
Windows2000Professionalで動かしているIISの1台のマシンでのみ、アンカーで遷移しただけで
SessionIDが変わってしまうと言う現象が発生しています。
SessionIDが変わってしまうため、セッション変数が利用できない状況になっています。

一度そのマシンでIIS付属のSMTP Serviceを停止したところ、
SessionIDが変わらないようになったのですが、
場所をかえて(お客さんの元に返却した)やってみると、
またSessionIDが変わってしまい、Session変数を利用することができなくなっています。

このような症状に出会った方はいませんか?
なにか解決方法をご存知の方はいませんか?

お願いします。




0106nobodyさん03/11/11 01:44ID:???
サーバー名に _ (アンダースコア)が含まれてない?
0107nobodyさん03/11/11 08:56ID:xlhWSqu3
>>106
えっ!
含まれてました。

>>106
は
>>105
へのリプライですよね?
0108nobody03/11/11 10:55ID:???
>>105
は

>>106
で教えていただいた通り、ホスト名から_(アンダースコア)を外したら、
上手くいくようになりました。

ありがとうございます。>>>106

010910603/11/12 01:52ID:???
IE6では、サーバ名にアンダースコアが含まれているとCookieを受け付けないらしい。
だから毎回新規のSessionになってしまうんだね。
0110nobodyさん03/11/12 19:42ID:???
PerlのライブラリやPHPのインクルードのように汎用関数を別ファイルに
まとめるにはどのようにすればよろしいのでせうか?
0111nobodyさん03/11/12 20:02ID:???
>>110
Include
Server.Execute
Server.Transfer
の3つがちょっとずつ機能が違うが役立つ。
<%
Server.Execute "別ファイル.asp"
%>
0112nobodyさん03/11/12 20:27ID:???
なるほど。サンクス。
0113nobodyさん03/11/16 10:31ID:WNn9sDOI
質問があります。調べたけどどこにもなくて・・・。
basp21のFormSaveAsでファイルをクライアントがサーバにアップするシステムを
開発してるんです。
でも、ローカルで動かすとうまくいくのに、サーバにシステムをアップして
動かすと-3のエラーがでる。
サーバの設定かなと思っていろいろ許可だしたんだけどダメで・・・(TT)
検索しても出てこないんですよ。
誰か分かる方、ご教授ください。
0114nobodyさん03/11/16 21:13ID:???
>>113
フォルダに書き込み許可を出してもファイルが書き込めないなら
ファイルサイズが大きいためかもしれない。
ASP.NETならweb.configに文を追加すれば2GBまでのファイルをアップできる。
0115nobodyさん03/11/17 06:30ID:???
>>113
誰に許可だしてんの?
たしかIUSR_XXXだけじゃだめぽなはず。
0116nobodyさん03/11/18 12:34ID:???
>>113
早く死んでね
0117nobodyさん03/11/19 05:19ID:2dbp2lia
>>113
そのフォルダのセキュリティタブをチェックしたら
0118nobodyさん03/11/19 14:03ID:???
-3なんだからわかるっしょ
0119nobodyさん03/11/20 11:34ID:1fBaEcGc
ASP+SQLServerでサイト構築している物です。
以前に見つけたサイトなんですが、ASPに特殊なキーワードを入れて
SQLServerのデータを消すことができる、警告を記したサイトを見つけたんですが、
どこだったか忘れてしまいました。
どなたかご存知のかた教えていただけないでしょうか。

内容は=やら,やら特殊文字を入れてデータを消すSQL文を意図的に作り出す方法のものです。
詳しく技術的ないように踏み込んだもので、本を紹介するようなサイトではなかったです。
0120nobodyさん03/11/20 22:56ID:???
>>119
特殊なキーワードじゃない、ただのSQL文のチェックミスだろ?

select * from 会員 where password='***' or 1=1 --'

とかで動くようにして会員認証を通すとかそういう奴
0121nobodyさん03/11/21 00:17ID:4lWveaq4
>>119
Accessならこんな脆弱性↓が存在してたがSQLサーバは知らないな...
http://www.trusnet.com/advisories/jetshell/jetshell.txt
012210603/11/21 00:54ID:???
>>119
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a02.html

まぁ、Webやるなら ここの記事は一通り目を通しといたほうがいいよ。
ttp://www.ipa.go.jp/security/awareness/vendor/programming/index.html
0123nobodyさん03/11/21 09:55ID:Z0AFioIs
>120
そうです。想像されたとおりです。特殊文字というか'とか=とか英数字と2バイト文字以外のことをいってました。すいません。
>121
と、いうことでサーバー自身の脆弱性のことではありません。申し訳ないです。
>122
僕が当初見たサイトではありませんが。より参考になるサイトでした。ありがとうございました。
0124nobodyさん03/11/22 00:47ID:???
ユーザーID 【hogehoge】
パスワード 【***'; DELETE FROM 会員;】

select * from 会員 where userid='【hogehoge】' and password='***'; DELETE FROM 会員;'
0125nobodyさん03/11/26 15:15ID:???
ASPのセッション変数に配列を入れることはできますが
解放はちゃんとやってくれますか?
0126nobodyさん03/11/27 00:57ID:???
>>125
そんな基本的な事にはだれも答えないぞ
0127nobodyさん03/11/27 11:07ID:???
>>126
いけず〜
012812503/11/27 21:56ID:xaibCik1
>>125,127

開放されるときにはいくつかの場合があるが、
Session.Abandonメソッドで開放したり、
Session.Timeoutの設定値の時間がたてば開放になるし、
ユーザがASPページを開いているブラウザをすべて閉じたりしてWebアプリを終了すれば開放が起こる。

Sessionに配列は格納できるが、Session配列のうちのある要素の値を変更する場合はまた配列変数にSession配列を格納してから行う必要がある。言ってる意味わかる?
0129nobodyさん03/11/27 22:14ID:dSOmMqpH
>ユーザがASPページを開いているブラウザをすべて閉じたりしてWebアプリを終了すれば開放が起こる。

これってそうなの?ブラウザがセッションクッキー廃棄しているだけと思っていたんだけど...
013012503/11/27 22:49ID:???
>>129
Session.IDがクッキーに保存されているわけだからその表現も正しい。
013112503/11/27 22:53ID:???
俺がほんとの125です。
013212503/11/28 08:17ID:???
>>128
ok
0133nobodyさん03/11/28 08:26ID:???
自作自演はいけませんよ
013412503/11/28 11:16ID:???
何か問題ありますか?
dim buff()
buff = split(Session("hoge")(1), ",")

Microsoft VBScript 実行時エラー エラー '800a000d'
型が一致しません。

というエラーが出ます

013512503/11/28 11:28ID:???
dim buff
でOK
013612503/11/28 11:37ID:???
サンキュー>俺
0137nobodyさん03/11/28 11:49ID:gf6Px9hT
aspの質問です。

Application変数にコネクトされたデータベースオブジェクトを設定しておきます。

============= init.asp
 db = Server.CreateObject(…)
 db.Open …
 Application.Lock
 Set Application( "db" ) = db
 Application.UnLock
============= init.asp

他のASPページでApplication変数に設定されたデータベースオブジェクトを利用します。

============= sample.asp
 ・
 ・
 Set db = Application( "db" )
 db.Exec …
 ・
 ・
============= sample.asp

今までいちいちASPのページの開始時DBオブジェクトを作ってコネクト
していた時間が省略されパフォーマンスがよくなりそうですが
同時に複数のユーザーがsample.aspを呼び出したとき、
同じDBオブジェクトが利用されて排他は大丈夫でしょうか?

この場合排他がサポートされるかどうかは、Application変数に設定された
オブジェクトのクラス設計に依存するのでしょうか?
013812503/11/28 12:25ID:???
>>137
君は何もわかっていない
0139nobodyさん03/11/28 12:40ID:???
>>138 はげどう
0140nobodyさん03/11/28 15:47ID:???
>>137ネタはいけませんよ
014113703/11/28 22:39ID:???
別にネタでもなんでもないです。
なんか根本的に間違ってますか?
0142nobodyさん03/11/30 00:25ID:???
根本的に間違ってます
014313703/11/30 01:00ID:???
本やWebに載っているやり方なんですけど・・・
0144nobodyさん03/11/30 02:57ID:???
排他の心配してるとこがネタとしか思えん
ファイルじゃねーんだぞ
014513703/11/30 10:57ID:???
 db = Server.CreateObject(…)
 db.Open …

 Application.Lock
 Set Application( "db" ) = db
 Application( "five" ) = 5
 Application.UnLock

上のような初期化処理が一度だけ実行されていた場合

 val1 = Application( "five" )
 val1 = 10

この時アプリケーション変数"five"は10にはならないですね。
これは5という値をval1にコピーしてるから。

 Set db = Application( "db" )

だとアプリケーション内で共有されているオブジェクトへの参照がコピーされます。
ASPページはマルチスレッドで動いているから、各々のタイミングで"db"を操作することになるけど
その際の排他がIIS側でされるのか、オブジェクト側でされるのかが心配です。
本やwebではオブジェクトをApplication変数に入れるといいような書き方がされているのですが
そこからの疑問マルチスレッドの障害については書かれていないです。

根本的に間違っているのなら恥を忍んでお尋ねします。
■ このスレッドは過去ログ倉庫に格納されています