トップページ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
03346382006/01/21(土) 19:00:34ID:GsEUkG9T
>>332
なるほど、DateAddを使うですね。
ありがとうございました。
0335nobodyさん2006/01/22(日) 01:05:17ID:???
>>333
ここはASP.NETスレじゃないよ><
0336nobodyさん2006/01/27(金) 14:12:25ID:???
ASP → ASP.NET より
ASP → PHPのほうが、乗換えとして、自分の好みに合っている気ガス
0337nobodyさん2006/01/27(金) 21:52:21ID:???
そんなあなたにpythonですよ
0338nobodyさん2006/01/29(日) 22:28:57ID:???
ASPにはhtmlエスケープの関数ってありますか?
昔どこかのサイトで見かけた気がするのですが
失念してしまいました…。
0339nobodyさん2006/01/29(日) 23:25:38ID:???
>>338
JScriptならできる
0340nobodyさん2006/01/30(月) 00:12:50ID:???
>>339
レスありがとうございます。
VBscriptで書いてしまったので、
replaceでしこしこやってみますorz
0341nobodyさん2006/01/30(月) 03:19:35ID:???
>>338-340
Server.HTMLEncode() のことじゃないの?
そうならVBScriptでも使えるけど。
0342nobodyさん2006/02/01(水) 18:59:54ID:Im+A4ONK
かなり行き詰ってて助けてください。

Framework2.0(C#)ベースで作ったDLLをASPで動かしたいのですが、
XPのiis上ではうまく動くのに2003Serverのiisではクリエイトで失敗します。

Set hoge = Server.CreateObject("hoge.hoge")←ここで失敗

両環境下でRegAsmで登録しFrameworkのバージョンも同一です。

なぜ動かないか分からないのですが、
どなたかご教授お願いします。
0343nobodyさん2006/02/01(水) 21:22:49ID:???
>>342 エラー メッセージ プリーズ
03443422006/02/01(水) 21:45:57ID:???
>>343
Server オブジェクト エラー 'ASP 0177 : 80070002'

Server.CreateObject に失敗しました

です。
権限とかの問題でしょうか?
0345nobodyさん2006/02/01(水) 22:08:21ID:???
>>342 %SystemRoot%は、両方のOSで同じ名前?
03463422006/02/01(水) 22:18:40ID:???
>>345
2003サーバの%SystemRoot%が標準で:/windows/system32なら同じにしてます。
03473452006/02/01(水) 22:21:21ID:???
>>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.
って答えてたから。
03483422006/02/01(水) 22:33:26ID:???
>>347
確認しましたらC:\windows\system32にDLLをおいてTLBを作成しているので
ほかに原因があると思います。

もしかしてRegasmで登録しているのが原因でしょうか?

03493422006/02/02(木) 02:42:30ID:bVYIWBsA
どうしても解決しないので一旦age
0350nobodyさん2006/02/03(金) 02:47:28ID:???
ASPでIPアドレスの比較(?)をしたいと考えています。
IPマスクで192.168.1.0/24のような形式のもの(20項目程度)と$ipを比較して含まれていれば真を返すにはどのようにすればいいのでしょうか?
鯖はWinXP ProのIIS(.net Framework無し)、開発環境はVS.net 2005 ExpressEditionです。
0351nobodyさん2006/02/03(金) 20:14:27ID:???
>>350
正規表現?
0352バッカーです ◆KeuXjwWDdE 2006/02/03(金) 20:44:49ID:???
範囲の問題じゃないの?

0353nobodyさん2006/02/04(土) 01:23:48ID:???
まんま24ビットの整数にしてAnd取る……って話ぢゃないのか。
0354nobodyさん2006/02/04(土) 08:16:33ID:???
.NETは知らんがVBSじゃオーバーフローしたような記憶が
>24ビットの整数にしてAnd取る
0355nobodyさん2006/02/04(土) 10:46:54ID:???
>>350
IPが連続してるなら正規表現、
バラバラであれば配列にして比較するか、DBを使ってるならSQLだな。
0356nobodyさん2006/02/04(土) 16:29:50ID:???
VBSでもちゃんとCLngすれば24bitも大丈夫だよ
03573502006/02/06(月) 02:39:19ID:???
レスありがとうございます。
$ipになってましたがipのミスですorz

検査してくれるような便利な関数があれば良いなぁと考えてたのですが無いのですか・・・。
やはり/で2つに分けて地道にホゲホゲさせないと駄目なのでしょうか?
0358nobodyさん2006/02/06(月) 10:00:27ID:kQjET4Ig
文字列から検索対象文字がいくつあるかカウントする関数はありますでしょうか?
strTest という変数からchar(10)の改行文字のカウントをしたいのですが。
0359nobodyさん2006/02/06(月) 21:24:02ID:???
俺なら地道にFunctionステートメントで、InStr()関数と
For〜Next文でループさせて数えるけどね
0360nobodyさん2006/02/06(月) 22:22:25ID:???
>>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
03613602006/02/06(月) 22:24:50ID:???
ミスった!
bitmaskのforはstep -1 でw
0362nobodyさん2006/02/07(火) 09:32:11ID:o795fuVl
レコードセットで、[列名]hoge1,hoge2,hoge3,hoge4.....hogeXXの項目のデータを取ってきて、
このデータを変数に格納したいのですが、
今のところ、
hoge1 = objRS("hoge1")
hoge2 = objRS("hoge2")
hoge3 = objRS("hoge3")
と言ったかなり格好悪いやり方をしています。
これを、スマートにするにはどうしたらいいのでしょうか。

ちなみに
1回目のレコードセットはhoge1〜hoge20
2個目のレコードセットはhoge1〜hoge25
と言ったように、
項目数も変わってくるんです。
0363nobodyさん2006/02/07(火) 20:18:23ID:???
>>362
GetRows
0364nobodyさん2006/02/07(火) 20:41:38ID:???
ファイルアップで質問です。

レンタルサーバでファイルアップフォームを
作成しているのですが、BASP21が使えません。
(インストールに管理者権限が必要?)

VBScriptのデフォルトではファイルアップは
できないのでしょうか?
もし、他のモジュールを使えば可能なのであれば、
ファイルをコピーするだけで動くようなものを
教えていただけると助かります。

よろしくおねがいします。
0365nobodyさん2006/02/07(火) 21:19:33ID:???
>>364
ADO.Streamを駆使すれば可能。
来週まで待てば俺作のをupってもいいが…

ttp://blog.so-net.ne.jp/nakagami/archive/c100656
こんなのがあったので参考になるんちゃうか。
0366nobodyさん2006/02/08(水) 00:09:09ID:???
>>364
↓には、昔お世話になったことあるよ。
http://web.archive.org/web/*/http://www2.dolphinnetservice.ne.jp/Mattn/AcrobatASP/4.html
03673642006/02/08(水) 16:53:03ID:???
>>365,366

親切に回答いただきありがとうございます!

>>366 さんのサンプルを作ったところ、
うまくアップロードできたようです。

ただ、これを使うと通常の値
<input type="text"> などはどうやってとるのかが
知識不足のため、ソースを見てもわかりませんでした…

Upload("textbox") とかでもダメっぽいですね。。
0368nobodyさん2006/02/08(水) 20:31:59ID:???
>>367
multipart/form-dataでUPしてBinaryReadで受け取ると
バイト単位の処理になるから、テキストフォームとかと同時にやるとなると面倒くさそうだね。
駄目文字の処理とかも必要になるし。
0369nobodyさん2006/02/09(木) 02:36:56ID:v3Lm1+ha
Basp21のSendMailメソッドで質問があります。

上記メソッドを使用してメールを送信すると、
指定したアドレスに2重送信されてしまい困っています。

メールを送信する直前にDBへ履歴を登録しているので、
前回送信時刻と現在(今回送信)時刻の差(datediff)が60秒以内であれば、
メールを送信しないような処理をしているのですが無駄に終わっています…。

何かいい回避策があるようでしたら教えてください。
0370364=3672006/02/09(木) 13:24:29ID:???
>>368

やはり受け取ったバイナリを手動でとらないとダメなんですね…ありがとうございます。
ファイルアップとテキストフォームの組み合わせは引き続き調べてみます。
0371バッカーです ◆KeuXjwWDdE 2006/02/09(木) 18:39:04ID:???
>>369
アルゴリズムに問題があるのではないかと
0372nobodyさん2006/02/09(木) 21:01:53ID:???
VBScriptで17桁の整数を扱う方法ってある?
通貨型じゃ15桁+小数部4桁だよね?
0373nobodyさん2006/02/09(木) 22:59:46ID:???
京の位に達するのか。
ASPでどんな計算をしようとしているんだw

文字列でいいんじゃねーのけ?
0374nobodyさん2006/02/10(金) 00:55:41ID:???
>>369
その手の質問はBASPの掲示板でしたほうがいいと思うよ
0375nobodyさん2006/02/10(金) 01:31:16ID: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")     'これで受け取る×

解決策がありましたらよろしくお願いいたします。
0376nobodyさん2006/02/10(金) 06:35:31ID:???
>>336
ttp://asp2php.naken.cc/
ダウンロードしたら解凍してできたexeファイルの上に、
**.aspのソースをドラッグドロップするだけですよ
0377nobodyさん2006/02/10(金) 19:40:27ID:???
>>375
send前に
httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
をつけるのをマジおすすめ
0378sage2006/02/10(金) 23:36:15ID:gbK8yDLA
>>377
無事動きました!ありがとうございます!
0379nobodyさん2006/02/11(土) 03:19:38ID:???
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
なんて書いてあるんですがまじですか?
0380nobodyさん2006/02/11(土) 07:14:57ID:???
>>379
なんだか全然スレ違いくさいが。

>win2003鯖(web Edition)+IIS6.0+VBscript+BASP21でメール送信をしようとしています。
2003ServerにSMTPが動いていて、同じサーバ上からそれを使って送信、
ということでOK?

>VBscriptからだとSMTPで認証を要求されます。
どんな認証が要求される?
ダイアログなどを詳しく。

>この場合、実行ユーザが違うから権限が違うのかな、と思ったのですが、
>Win鯖にうとくどのサービスがどのユーザで実行するか調べたいのですが、
SMTPサービスの実行権限を調べたいなら
コントロールパネル→管理ツール→サービス

>2003web Editionにはユーザ管理機能はない
ActiveDirectoryが無いというだけで、サーバ内でのユーザ管理はもちろんある
0381nobodyさん2006/02/11(土) 15:21:43ID:???
>>380

全然見当違いなところのエラーでした。
BASP21でメールサーバをIPで指定していたんですが、
ループバック(127.0.0.1)で指定したら(゚д゚)ウマーでした
おそらくSMTPのリレー関係の設定の問題でした。
ごめんなさい
0382nobodyさん2006/02/15(水) 14:02:53ID:???
FileSystemObjectで、仮想ディレクトリ内にファイルをコピーしたり削除する場合、
そのフォルダに対して、
「インターネットゲストアカウント PC名\IUSR_PC名」のユーザーアカウントに、
フルアクセスの権限を与えています。

セキュリティーの観点から、こういうのは危ないんでしょうか?
0383nobodyさん2006/02/15(水) 21:10:42ID:lSEl6laF
.
.
Dim GetDate

for i=startYear to lastYear
GetDate = obj.xxxx
i = i + 1
next
.
.
このような形で年度別にGetDateに配列でデータを格納しています。
この年度別に作られる配列を一つの配列変数に代入したいのですが、
どうすればよろしいでしょうか?
0384nobodyさん2006/02/15(水) 22:15:43ID:???
>>382
フルアクセスは実行権限含むからまずい
読み取り+書き込み、がいいかと。

>>383
>>GetDate = obj.xxxx
にループ変数iが絡んでいないのだが?

あと
>>年度別に作られる配列を一つの配列変数に代入したい
言わんとしてる事はなんとなくは分かるが
やりたいことをもう少し具体的かつ厳密に。
0385nobodyさん2006/02/16(木) 01:51:09ID:joFVC4f3
ASPをApacheで動かしたい。
何かよい手はないかな?
0386nobodyさん2006/02/16(木) 07:33:17ID:???
>>385
Apache:ASP
0387nobodyさん2006/02/17(金) 16:12:51ID:???
画像アップロード板みたいなのを作ってるんですが、
データベース部分に、画像のアドレスや、その他情報を書き込み、
画像はBASP21を使いFTPでアップロードしようとしています。


普通なら、トランザクションを開始して、レコードを書き込んで、
ファイルもアップロードしてからコミットという考えだと思うんですが、
webのシステムの場合、ファイルのアップロードのような時間のかかる処理を、
トランザクション内に入れないほうが良いのでしょうか?

webの開発は始めてなので「どうなんだろう??」と悩んでしまい、、、
0388nobodyさん2006/02/17(金) 16:21:15ID:???
>>387
アップロードされるファイルサイズによるが、
普通はアップロードが完了してからDBに書き込むと思うぞ。

あと、BASP21はFTPじゃなくてHTTPのアップロードだと思う。
0389nobodyさん2006/02/17(金) 17:08:21ID:???
>>388
ファイルの名前をDBのIDと関連付けて登録したかったので、
DB→ファイルのアップロードと考えてました。

アップロード→DBとするなら、
もう1個別に採番用テーブルを作ってそれをファイル名とIDにする感じですかね?
0390nobodyさん2006/02/17(金) 17:57:05ID:???
>>389

> ファイルの名前をDBのIDと関連付けて登録したかった

それなら

UP用TEMPフォルダへアップロード

ファイルチェック

DBへ登録&ID取得

正式なフォルダに移動&リネーム

が一番かな。
何にせよ、ファイルアップロードはクライアント側でアップロードをミスることが多いし、
ファイルのチェックとかもしなきゃいけないでしょ?
0391nobodyさん2006/02/18(土) 15:30:31ID:???
>>390
それだと最後の移動&リネームが失敗した時、
再度DBのデータを削除なり更新しに行くハメにならん?
0392nobodyさん2006/02/18(土) 16:16:18ID:???
>>391
一連の流れにDBのトランザクション使えばよくね?
0393nobodyさん2006/02/18(土) 16:31:42ID:???
>>392
>>387のいうファイルのアップロードの大きさが分からないが、
何百メガとかだと、DBのトランザクション使うのはマズいんでないかい?

少なくともロックは排他で、何回もリトライしてください〜の仕様にするしかないか。
0394nobodyさん2006/02/18(土) 20:37:36ID:???
IDはIDENTITYで取ればいいんだよ
データ空で一行INSERTした後その新キーを取得してcommit、
その後そのキーで行ロックしてファイルデータをupdateしてcommitしてやればいい。
ファイルデータupdate時に完了フラグも更新すれば
途中で失敗したものとも区別がつく。

つーか既にASPの話題じゃねえな
0395nobodyさん2006/02/18(土) 20:39:32ID:???
UP用TEMPフォルダへアップロード

ファイルチェック

DBトランザクション開始

DBへ登録&ID取得

正式なフォルダに移動&リネーム

DBトランザクション終了(commit/rollback)

がいいかもな
0396nobodyさん2006/02/25(土) 00:08:08ID:5p0RQZcL
dimで宣言した二次元配列をOnClickでコールしたJavaScript関数内で使用する方法を教えてください。
0397nobodyさん2006/02/25(土) 06:20:25ID:???
>>396
JavaScriptのコードに展開すればいいじゃん
0398nobodyさん2006/02/25(土) 10:43:55ID:???
>>396
a(m,n) → b[m][n]
<script>
<%
Response.Write("var b=new Array("&(UBound(a,1)+1)&");")
For i=LBound(a,1) to UBound(a,1)
Response.Write("b["&i&"]=new Array("&UBound(a,2)+1&");")
For j=LBound(a,2) to UBound(a,2)
Response.Write("b["&i&"]["&j&"]="&a(i,j)&";")
Next
Next
%>
</script>
03993962006/03/01(水) 05:59:02ID:/i7BGAMo
>>398
JavaScript関数内でa(m,n)が使用できないのですが...
0400nobodyさん2006/03/01(水) 11:35:16ID:e/ZVjBAD
getFolderメソッドであるフォルダのファイル名を全部取得します。
ファイル名には規則性があり、数値で1から連番です。
For Each objwk in objFOL.Files
 'ファイル名を配列に入れる
 ReDim Preserve arrAllFileName(i)
 arrAllFileName(i) = ( objWK.Name )
 i = i + 1
Next

として取得していますが、
1 2 3 6 7 22 27 と取得できるはずなのに、
配列の要素は
1 2 22 27 3 6 7 となり、
BASP21のSortメソッドを使ってものの順番は変わりません。

ファイル作成時間によってソートされているのではないかと
試してみましたが違うようです。
大変恐縮ですが、ソートする方法をご教授いただけませんでしょうか。
何卒よろしくお願いいたします。」
04014002006/03/01(水) 11:46:02ID:e/ZVjBAD
追記;要素を入れるときに要素にCIntしても結果は変わりませんでした。
04024002006/03/01(水) 12:20:50ID:e/ZVjBAD
すいません。自己解決しました。
数値型がだめなら、文字型だろ! と決まった桁数に0を補完するようにしました。
例) 1 → 0001 11 →0011
0403nobodyさん2006/03/01(水) 18:51:48ID:???
もともと
>>1 2 3 6 7 22 27 と取得できるはずなのに、
ここだよね

XP以降のExplorerならば確かに初期状態だとそうなるけど
ファイル名って文字列だからね。
ソートすると
>>1 2 22 27 3 6 7 となり、
で正しいわけだよ
0404nobodyさん2006/03/02(木) 22:33:46ID:???
>>399
サーバーサイドのa(m,n)の値ををクライアントサイドのjavascriptのb[m][n]に引き渡してる
0405nobodyさん2006/03/03(金) 13:53:37ID:???
一応過去ログも見てみたのですが、見当たらなかったので質問させてください。

ASP(VBScript)@IIS5.1、OSは2000ServerとXPです。

単純にデーターベース(ADO OBDC)からデータを読み出してResponse.Writeで表示させているだけなのですが
メモ型のフィールドに入力した値がうまく表示できないのです。
入力されているデータ(mdb)を直接Acessで編集してフィールドの方をテキスト型に変更するとうまく表示されます

ASPの方でdbから読み出した値がNULLか空かそれ以外かを先に判定させて、
"それ以外"の場合のみ
Response.Write [dbの値] & "<br>"
と書き出すようにしているのですが。いざ実行すると

<br>

としか出力されない状況です。
通常なら表示されて当たり前じゃないかと思うのですが、どこかIIS等の設定がおかしくなっているのでしょうか?
0406nobodyさん2006/03/03(金) 23:00:10ID:???
>>405
NULLだったらどう動くようにしてるの?
0407nobodyさん2006/03/04(土) 00:17:11ID:???
>>405
つ【vbCrLf】
04084052006/03/06(月) 10:13:00ID:???
>>406
if文で分岐させているのですが、NULL値の場合は
Response.Write "NULL値です"
と表示するようにしています。

>>405
<br>の代わりにvbCrLfを使えばいいということですか?


お二方レスしていただいたのですが、実はついさっき自己解決してしまいました。
dbの値を直接If文の判定式に書いたり、Response.Writeで直接使用していたのが問題のようでした。
一度他の適当な変数を作成してそれに代入してから使用すると、正常に判定と出力をすることができました。

お騒がせしてすみません^^;
0409nobodyさん2006/03/06(月) 23:03:11ID:???
まさかとは思うが
If なんとかかんとか = Null Then
とかやってないよな。
04104052006/03/22(水) 17:47:30ID:???
>>409
亀レスだけど

If IsNull(変数) Then または If Not IsNull(変数) Then
ってやってた
0411nobodyさん2006/03/26(日) 07:43:17ID:/latXqRh
質問です。
メールフォームの送信を.aspでやるときに、送信者側のファイル添付は可能でしょうか?
mailer.addattachmentメソッドがあるようなんですが、そのまま使ってもファイルは添付されずに、送信者のローカルPCのファイルへのパスが送られてくるだけなんですけど。
これってもしかして、一旦uploadscript.aspなんかでサーバーへアップロード保存して、サーバー側に保存されたファイルを添付させるという、2段階手続きじゃないとムリなんですか?
その場合、送信するメールフォームと対になるサーバー側の画像ファイルとの関連づけはどのようにするのか悩んでるんですが、何かアドバイス有りましたらよろしくお願いします。
0412nobodyさん2006/03/26(日) 12:38:36ID:???
>>411
mailer.addattachment ってなんてあったっけ?
0413nobodyさん2006/03/26(日) 15:08:37ID:???
ServerObjects社製のコンポーネントみたいね
ttp://www.serverobjects.com/comp/Aspmail4.htm
このあたりのExampleとか見るとサーバー側にあるファイルを添付するメソッドじゃないかと思う
ttp://www.bizclasshosting.com/faq/webhostingplans/CGI_Scripts_and_Programming/567-aspmail_methods.htm

BASP21あれば要らないよーな
0414nobodyさん2006/03/26(日) 17:42:32ID:/latXqRh
>>413
おっしゃるとおり、サーバー側にあるファイルを添付するメソッドなので、サーバーに添付されるファイルをアップロードした後、添付送信という手続きをふまなければならないみたいです。
ただ、一つのメール送信フォームに、この手続きをどうやって組み込むのか四苦八苦してます。
具体的には、ファイルのアップロードは、
BFORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
で、処理側の.aspコマンドファイルはSet Uploadというメソッドでサーバー上の任意のフォルダへアップロード、
そして、メールフォームの送信は、
<form action="aspmailform.asp" method="post">
で、処理側.aspには、
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
というコマンドでメール送信という状態なのですが、これらを一つの送信ボタンで出来ないものか悩んでいます。
上記の、aspmailform.aspとuploadscript.aspを一つにして併記してみても機能しないようです(多分、やり方が悪いのかも?)
さらに、addattachmentメソッドはサーバー側のフルパスで指定しなければならないので、送信者のローカルPCのファイルパスを拾って関連づけるのも不可能なような気がするのですが。
というかんじで、困っています。
ASP21というのは、どのような環境で動作可能なのかもう一つ理解していないんですが。
SendMailではなく、ASPMailしかインストールされていないサーバー環境でも動作可能なのでしょうか?
もし可能であれば使ってみようと思います。
0415nobodyさん2006/03/26(日) 17:45:46ID:/latXqRh
上記訂正、
BFORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">

<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
です、すみません。
0416nobodyさん2006/03/26(日) 21:54:41ID:???
SMTPsvg.Mailerは使ったことないからわからないけどBASP21使うとこんなかんじ
チェックしてないんでバグあるかもしれんけど
------------送信側
<html><body>
<form action="fileuptomail.asp" enctype="multipart/form-data" method="post">
From: <input type="text" name="mailFrom"><br>
To: <input type="text" name="mailTo"><br>
Subject:<input type="text" name="mailSubj"><br>
Body: <textarea cols="40" rows="10" name="mailBody"></textarea><br>
File:<input type="file" name="file"><br>
<input type=SUBMIT name=UPLOAD>
</form></body></html>
------------受信側(fileuptomail.asp)
<%
Set bobj=Server.CreateObject("BASP21")
TEMP=Server.MapPath("/temp/")&"\tempfile.tmp"' 一時保存ファイル
SMTPname="*.*.*.*"' SMTPサーバーのIP

' FileSave
a=Request.TotalBytes
b=Request.BinaryRead(a)
f=bobj.FormFileName(b,"file")
fsize=bobj.FormFileSize(b,"file")
filename=Mid(f,InStrRev(f,"\")+1)
l=bobj.FormSaveAs(b,"file",TEMP)

' Mail
msg = bobj.SendMail(SMTPname,bobj.Form(b,"mailTo"),bobj.Form(b,"mailFrom"),bobj.Form(b,"mailSubj"),bobj.Form(b,"mailBody"),TEMP&"|"&filename)
%>
0417nobodyさん2006/03/28(火) 11:21:21ID:???
とりあえずaspのシステム作るなら、basp21は突っ込んどくオイラ。
なんだかんだで、永い間使ってて安心して使える。
0418nobodyさん2006/03/28(火) 13:00:23ID:???
WinCEでの開発なんで自力でbasp21っぽいの作ってるオイラ
バグだらけで不安になりながら使ってる
0419nobodyさん2006/04/10(月) 20:06:46ID:3UIEjnKE
下記ソースは5年ぐらい前に作ったんですが、またこれが必要になったので
バックアップから引っ張り出してIISに貼り付けましたが動きませんでした。
以前は動いたのに。
現在の動作は、VBS中にExlを書いてもスルーされて
次のプログラムに行ってしまいます。
どこを直せば動くようになるんでしょうか。
よろしくお願いします。

テスト環境はWinXPproです。
セキュリティパッチは全て当ててます。
動くようになれば2003鯖に実装予定です。

Sub Exl

Dim ExcelApp, ExlFile
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing

End Sub
0420nobodyさん2006/04/10(月) 20:48:18ID:???
これ、ASPで動かすんなら全体が<% %>で囲まれるから
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
はおかしいと思うんだが
0421702006/04/10(月) 21:57:23ID:w8+tUl+V
>>420
すみません、一部記述が抜けてました
subとend subだけが<% %>で囲ってこんな感じです。

<%
Sub Exl
%>
Dim ExcelApp, ExlFile
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing
<%
End Sub
%>
0422nobodyさん2006/04/10(月) 22:24:01ID:???
>>421
IE上でExcelのCOMを動かそうとしてる??
04234212006/04/10(月) 22:28:02ID:3UIEjnKE
>>422
はい、そうです
この方法はよくないんでしょうか?
0424nobodyさん2006/04/10(月) 22:37:16ID:???
>>423
今のIEじゃローカル上のファイルを操作するのは
セキュリティ的に無理だと思う
04254222006/04/10(月) 22:49:35ID:w8+tUl+V
>>424
では、サーバー側に一時的なファイルを作成してそれをクライアント側で
ダウンロードする仕組みにするには、どの様なコードを書けばよいでしょうか。
サンプルコードがあるサイトをご存知でしたら教えてください。
お願いします。
0426nobodyさん2006/04/10(月) 23:13:55ID:???
自分のPCにExcel入ってないから試せないんだがこんな感じかなぁ
<%
Sub Exl

Dim ExcelApp, ExlFile, Filename, bobj ,b
Set ExcelApp = Server.CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
Filename="temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value= Year(Now()) & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing

Response.ContentType = "application/octet-stream;name=" & Filename
Response.AddHeader "Content-Disposition","attachment;filename=" & Filename

Set bobj = Server.CreateObject("BASP21")
b = bobj.BinaryRead(ExlFile)
Set bobj = Nothing
Response.AddHeader "Content-Length", ubound(b) + 1
Response.BinaryWrite bydata

End Sub
%>
0427nobodyさん2006/04/10(月) 23:15:06ID:???
あ、ごめん
× Response.BinaryWrite bydata
○ Response.BinaryWrite b
04284252006/04/10(月) 23:17:23ID:3UIEjnKE
>>426
ありがとうございます。
明日試してみます
0429nobodyさん2006/04/11(火) 01:16:54ID:???
鯖側でExcelオートメーションは非推奨
http://support.microsoft.com/kb/257757/ja/

やるならこっちかな
http://support.microsoft.com/default.aspx?scid=kb;ja;199841
http://support.microsoft.com/default.aspx?scid=kb;ja;271572
04304252006/04/11(火) 07:27:09ID:j7JR4Ohz
>>429
目的の動作が出来ました、ありがとうございました。
0431nobodyさん2006/04/14(金) 21:34:06ID:D01n0ua1
XPproで動いてたASPを2003鯖に入れたらページが見つかりません
とかなって表示できません。
XPで動いてたんでスクリプトには問題ないと思うんですが
IISの問題でしょうか?
どこを直せばよいでしょうか?
0432nobodyさん2006/04/14(金) 21:47:20ID:D01n0ua1
ためしに自分で作った仮想ディレクトリーにdefault.aspを
配置しましたが、Directory Listing Deniedとかなって表示できません。どうすればよいでようか?
助けてください。
0433nobodyさん2006/04/14(金) 22:36:40ID:???
>>432
既定のドキュメント
■ このスレッドは過去ログ倉庫に格納されています