[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/05 09:59 / Filesize : 289 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

<%= ASP総合 %> Part.4



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

386 名前:nobodyさん mailto:sage [2006/02/16(木) 07:33:17 ID:???]
>>385
Apache:ASP

387 名前:nobodyさん mailto:sage [2006/02/17(金) 16:12:51 ID:???]
画像アップロード板みたいなのを作ってるんですが、
データベース部分に、画像のアドレスや、その他情報を書き込み、
画像はBASP21を使いFTPでアップロードしようとしています。


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

webの開発は始めてなので「どうなんだろう??」と悩んでしまい、、、


388 名前:nobodyさん mailto:sage [2006/02/17(金) 16:21:15 ID:???]
>>387
アップロードされるファイルサイズによるが、
普通はアップロードが完了してからDBに書き込むと思うぞ。

あと、BASP21はFTPじゃなくてHTTPのアップロードだと思う。

389 名前:nobodyさん mailto:sage [2006/02/17(金) 17:08:21 ID:???]
>>388
ファイルの名前をDBのIDと関連付けて登録したかったので、
DB→ファイルのアップロードと考えてました。

アップロード→DBとするなら、
もう1個別に採番用テーブルを作ってそれをファイル名とIDにする感じですかね?


390 名前:nobodyさん mailto:sage [2006/02/17(金) 17:57:05 ID:???]
>>389

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

それなら

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

ファイルチェック

DBへ登録&ID取得

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

が一番かな。
何にせよ、ファイルアップロードはクライアント側でアップロードをミスることが多いし、
ファイルのチェックとかもしなきゃいけないでしょ?


391 名前:nobodyさん mailto:sage [2006/02/18(土) 15:30:31 ID:???]
>>390
それだと最後の移動&リネームが失敗した時、
再度DBのデータを削除なり更新しに行くハメにならん?

392 名前:nobodyさん mailto:sage [2006/02/18(土) 16:16:18 ID:???]
>>391
一連の流れにDBのトランザクション使えばよくね?

393 名前:nobodyさん mailto:sage [2006/02/18(土) 16:31:42 ID:???]
>>392
>>387のいうファイルのアップロードの大きさが分からないが、
何百メガとかだと、DBのトランザクション使うのはマズいんでないかい?

少なくともロックは排他で、何回もリトライしてください〜の仕様にするしかないか。

394 名前:nobodyさん mailto:sage [2006/02/18(土) 20:37:36 ID:???]
IDはIDENTITYで取ればいいんだよ
データ空で一行INSERTした後その新キーを取得してcommit、
その後そのキーで行ロックしてファイルデータをupdateしてcommitしてやればいい。
ファイルデータupdate時に完了フラグも更新すれば
途中で失敗したものとも区別がつく。

つーか既にASPの話題じゃねえな



395 名前:nobodyさん mailto:sage [2006/02/18(土) 20:39:32 ID:???]
UP用TEMPフォルダへアップロード

ファイルチェック

DBトランザクション開始

DBへ登録&ID取得

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

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

がいいかもな

396 名前:nobodyさん [2006/02/25(土) 00:08:08 ID:5p0RQZcL]
dimで宣言した二次元配列をOnClickでコールしたJavaScript関数内で使用する方法を教えてください。

397 名前:nobodyさん mailto:sage [2006/02/25(土) 06:20:25 ID:???]
>>396
JavaScriptのコードに展開すればいいじゃん

398 名前:nobodyさん mailto:sage [2006/02/25(土) 10:43:55 ID:???]
>>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>

399 名前:396 [2006/03/01(水) 05:59:02 ID:/i7BGAMo]
>>398
JavaScript関数内でa(m,n)が使用できないのですが...

400 名前:nobodyさん [2006/03/01(水) 11:35:16 ID: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メソッドを使ってものの順番は変わりません。

ファイル作成時間によってソートされているのではないかと
試してみましたが違うようです。
大変恐縮ですが、ソートする方法をご教授いただけませんでしょうか。
何卒よろしくお願いいたします。」


401 名前:400 [2006/03/01(水) 11:46:02 ID:e/ZVjBAD]
追記;要素を入れるときに要素にCIntしても結果は変わりませんでした。

402 名前:400 [2006/03/01(水) 12:20:50 ID:e/ZVjBAD]
すいません。自己解決しました。
数値型がだめなら、文字型だろ! と決まった桁数に0を補完するようにしました。
例) 1 → 0001 11 →0011

403 名前:nobodyさん mailto:sage [2006/03/01(水) 18:51:48 ID:???]
もともと
>>1 2 3 6 7 22 27 と取得できるはずなのに、
ここだよね

XP以降のExplorerならば確かに初期状態だとそうなるけど
ファイル名って文字列だからね。
ソートすると
>>1 2 22 27 3 6 7 となり、
で正しいわけだよ

404 名前:nobodyさん mailto:sage [2006/03/02(木) 22:33:46 ID:???]
>>399
サーバーサイドのa(m,n)の値ををクライアントサイドのjavascriptのb[m][n]に引き渡してる



405 名前:nobodyさん mailto:sage [2006/03/03(金) 13:53:37 ID:???]
一応過去ログも見てみたのですが、見当たらなかったので質問させてください。

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

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

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

<br>

としか出力されない状況です。
通常なら表示されて当たり前じゃないかと思うのですが、どこかIIS等の設定がおかしくなっているのでしょうか?

406 名前:nobodyさん mailto:sage [2006/03/03(金) 23:00:10 ID:???]
>>405
NULLだったらどう動くようにしてるの?

407 名前:nobodyさん mailto:sage [2006/03/04(土) 00:17:11 ID:???]
>>405
つ【vbCrLf】

408 名前:405 mailto:sage [2006/03/06(月) 10:13:00 ID:???]
>>406
if文で分岐させているのですが、NULL値の場合は
Response.Write "NULL値です"
と表示するようにしています。

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


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

お騒がせしてすみません^^;

409 名前:nobodyさん mailto:sage [2006/03/06(月) 23:03:11 ID:???]
まさかとは思うが
If なんとかかんとか = Null Then
とかやってないよな。


410 名前:405 mailto:sage [2006/03/22(水) 17:47:30 ID:???]
>>409
亀レスだけど

If IsNull(変数) Then または If Not IsNull(変数) Then
ってやってた

411 名前:nobodyさん [2006/03/26(日) 07:43:17 ID:/latXqRh]
質問です。
メールフォームの送信を.aspでやるときに、送信者側のファイル添付は可能でしょうか?
mailer.addattachmentメソッドがあるようなんですが、そのまま使ってもファイルは添付されずに、送信者のローカルPCのファイルへのパスが送られてくるだけなんですけど。
これってもしかして、一旦uploadscript.aspなんかでサーバーへアップロード保存して、サーバー側に保存されたファイルを添付させるという、2段階手続きじゃないとムリなんですか?
その場合、送信するメールフォームと対になるサーバー側の画像ファイルとの関連づけはどのようにするのか悩んでるんですが、何かアドバイス有りましたらよろしくお願いします。

412 名前:nobodyさん mailto:sage [2006/03/26(日) 12:38:36 ID:???]
>>411
mailer.addattachment ってなんてあったっけ?

413 名前:nobodyさん mailto:sage [2006/03/26(日) 15:08:37 ID:???]
ServerObjects社製のコンポーネントみたいね
ttp://www.serverobjects.com/comp/Aspmail4.htm
このあたりのExampleとか見るとサーバー側にあるファイルを添付するメソッドじゃないかと思う
ttp://www.bizclasshosting.com/faq/webhostingplans/CGI_Scripts_and_Programming/567-aspmail_methods.htm

BASP21あれば要らないよーな

414 名前:nobodyさん [2006/03/26(日) 17:42:32 ID:/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しかインストールされていないサーバー環境でも動作可能なのでしょうか?
もし可能であれば使ってみようと思います。




415 名前:nobodyさん [2006/03/26(日) 17:45:46 ID:/latXqRh]
上記訂正、
BFORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">

<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
です、すみません。

416 名前:nobodyさん mailto:sage [2006/03/26(日) 21:54:41 ID:???]
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)
%>


417 名前:nobodyさん mailto:sage [2006/03/28(火) 11:21:21 ID:???]
とりあえずaspのシステム作るなら、basp21は突っ込んどくオイラ。
なんだかんだで、永い間使ってて安心して使える。

418 名前:nobodyさん mailto:sage [2006/03/28(火) 13:00:23 ID:???]
WinCEでの開発なんで自力でbasp21っぽいの作ってるオイラ
バグだらけで不安になりながら使ってる

419 名前:nobodyさん [2006/04/10(月) 20:06:46 ID: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


420 名前:nobodyさん mailto:sage [2006/04/10(月) 20:48:18 ID:???]
これ、ASPで動かすんなら全体が<% %>で囲まれるから
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
はおかしいと思うんだが

421 名前:70 [2006/04/10(月) 21:57:23 ID: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
%>

422 名前:nobodyさん mailto:sage [2006/04/10(月) 22:24:01 ID:???]
>>421
IE上でExcelのCOMを動かそうとしてる??

423 名前:421 [2006/04/10(月) 22:28:02 ID:3UIEjnKE]
>>422
はい、そうです
この方法はよくないんでしょうか?

424 名前:nobodyさん mailto:sage [2006/04/10(月) 22:37:16 ID:???]
>>423
今のIEじゃローカル上のファイルを操作するのは
セキュリティ的に無理だと思う



425 名前:422 [2006/04/10(月) 22:49:35 ID:w8+tUl+V]
>>424
では、サーバー側に一時的なファイルを作成してそれをクライアント側で
ダウンロードする仕組みにするには、どの様なコードを書けばよいでしょうか。
サンプルコードがあるサイトをご存知でしたら教えてください。
お願いします。

426 名前:nobodyさん mailto:sage [2006/04/10(月) 23:13:55 ID:???]
自分の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
%>

427 名前:nobodyさん mailto:sage [2006/04/10(月) 23:15:06 ID:???]
あ、ごめん
× Response.BinaryWrite bydata
○ Response.BinaryWrite b

428 名前:425 [2006/04/10(月) 23:17:23 ID:3UIEjnKE]
>>426
ありがとうございます。
明日試してみます

429 名前:nobodyさん mailto:sage [2006/04/11(火) 01:16:54 ID:???]
鯖側でExcelオートメーションは非推奨
support.microsoft.com/kb/257757/ja/

やるならこっちかな
support.microsoft.com/default.aspx?scid=kb;ja;199841
support.microsoft.com/default.aspx?scid=kb;ja;271572

430 名前:425 [2006/04/11(火) 07:27:09 ID:j7JR4Ohz]
>>429
目的の動作が出来ました、ありがとうございました。


431 名前:nobodyさん [2006/04/14(金) 21:34:06 ID:D01n0ua1]
XPproで動いてたASPを2003鯖に入れたらページが見つかりません
とかなって表示できません。
XPで動いてたんでスクリプトには問題ないと思うんですが
IISの問題でしょうか?
どこを直せばよいでしょうか?

432 名前:nobodyさん [2006/04/14(金) 21:47:20 ID:D01n0ua1]
ためしに自分で作った仮想ディレクトリーにdefault.aspを
配置しましたが、Directory Listing Deniedとかなって表示できません。どうすればよいでようか?
助けてください。

433 名前:nobodyさん mailto:sage [2006/04/14(金) 22:36:40 ID:???]
>>432
既定のドキュメント

434 名前:432 [2006/04/14(金) 22:58:23 ID:D01n0ua1]
WebサービスでASPを許可したらいけました」



435 名前:nobodyさん [2006/04/15(土) 10:40:23 ID:GTWKBHgT]
Fname="D:/asp/DB.mdb"
DBF="Driver={Microsoft Access Driver (*.mdb)};User ID=;Password=12345; DBQ=" & Fname
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBF

上記コードでXPproのIISでは正常に動きますが、2003鯖ではこんなエラーになってしまいます。
Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0x9ac Thread 0xad0 DBC 0x22a1f94 Jet' を開くことができません。

レジストリをいじらずに動くようにするにはどうすればよいでしょうか?
また、システムにODBCデータソースを追加する以外の方法で別のやり方あったら教えてください。

436 名前:nobodyさん mailto:sage [2006/04/15(土) 11:05:26 ID:???]
>>435
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xe9c Thread 0xa74 DBC 0x2bc0b4 Jet' を開くことができません。

Accessにパスワードが設定されている場合に発生します。


437 名前:nobodyさん mailto:sage [2006/04/15(土) 11:10:18 ID:???]
>>435
今時mdbでそんな方法で接続してる奴いねよ
Microsoft.Jet.OLEDB.4.0 で接続しろよ

438 名前:435 [2006/04/15(土) 11:21:55 ID:GTWKBHgT]
>>436
パスワードを解除したらできました。
ありがとうございます。


439 名前:435 [2006/04/15(土) 11:28:34 ID:GTWKBHgT]
>>437
ああ、古いASP引っ張り出したんであれだったけど
これに直しました。

DBF = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"User ID=;Password=;Data Source=" & Fname


440 名前:nobodyさん mailto:sage [2006/04/15(土) 21:22:35 ID:???]
>438
まぁパスワード解除しちゃったそうだから今更だけど
パスワード付きmdbをJet OLEDB使って開くときは、
ConnectionString/Passwordプロパティにパスワード入れるんじゃなくて
Connection.Properties("Jet OLEDB:Database Password")に突っ込むこと。

441 名前:435 [2006/04/16(日) 13:54:35 ID:eJrc5hWb]
Fname="D:\asp/DB.mdb"
DBFile= "Provider=Microsoft.Jet.OLEDB.4.0;User ID=;Password=;Data Source=" & Fname
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBFile
Set RS = server.CreateObject("adodb.recordset")
RS.Open "SELECT * FROM main WHERE id=" & request("id") & " and pass=" & request("pass") & ";",ConnadOpenStatic, adLockOptimistic
RS("aaa")=Request("aaa")
RS("bbb")=Request("bbb")
RS.update
RS.closeset
RS=nothing
Conn.closeset
Conn=nothing

上記更新コードを実行すると、

ADODB.Recordset エラー '800a0bb9'
引数が間違った型、許容範囲外、または競合しています。

というエラーになってしまいます。
どこを直せばよろしいでしょうか。
お願いします。


442 名前:435 [2006/04/16(日) 17:50:24 ID:eJrc5hWb]
解決しました。失礼しました。

443 名前:nobodyさん mailto:sage [2006/04/18(火) 18:02:27 ID:???]
435は解決したとみせかけて実は解決していなかった
だから質問をコピペし、別の板、もしくは別のスレで書き込み答えを得ようとしたのか?

444 名前:nobodyさん mailto:sage [2006/04/19(水) 17:14:37 ID:???]
ASP.netやり始めて勉強してるんだけど、asp関係の板ってこんなに過疎ってるとは思わなかった。
いろいろ勉強してるんですが、なかなかおもしろいのになぁ。
SQL2005が2000と比較して結構強力になってるっぽいし、ASP.netもいろいろおもしろい。

勉強し始めて1週間ぐらいだけど、5年前手書きでがりがり書いてたASPとは全然違う。
いまObjectDataSourceにDataSetを渡して、データバインドコントロールでいろいろ表示させてるけど、
これは結構使えるかもって思った。次の開発はasp.netでやってみようかなぁ。



445 名前:nobodyさん [2006/04/21(金) 08:06:46 ID:2wM3++cG]
ASP.netを開発するにはどんなツールが必要ですか?

446 名前:nobodyさん mailto:sage [2006/04/21(金) 12:15:40 ID:???]
>>445
ここのアプリケーション開発基礎が詳しい
www.microsoft.com/japan/msdn/sqlserver/selfstudy/

まぁ、いまであれば、Visual Web Developer 2005 Express Editionと
SQLServer2005ExpressEdition with Advanced Servicesで無料で開発できる

447 名前:nobodyさん [2006/04/22(土) 05:00:11 ID:KZQOiwti]
ツールを使わないで作るASPでsendmailみたいなプログラム作れないでしょうか?
cgiでSMTPを使って出来たのだからありそうだけどなかなか見つかりません。
よろしくお願いします。

448 名前:447 [2006/04/22(土) 05:11:37 ID:KZQOiwti]
SMTP鯖を直接叩いてメールを送るソースお願いします。

449 名前:447 [2006/04/22(土) 07:52:46 ID:IlbM7gzP]
homepage2.nifty.com/lightbox/VA003334/asp051016150512.htm
今これ試してみたけど
こんなエラーになりました。
どこを直せばよいでしょうか、お願いします。

-----
サーバーによって 1 つまたは複数の受信者アドレスが拒否されました。サーバーからの応答は次のとおりです。550 5.7.1 Unable to relay for
-----


450 名前:nobodyさん mailto:sage [2006/04/22(土) 11:28:12 ID:???]
>>449
試してみたがソースに問題はなさそう
鯖がそのメアドに送れないって言ってるんでそちらを調べてみて
ttp://www.google.co.jp/search?q=%22550+5.7.1+Unable+to+relay+for%22

451 名前:nobodyさん mailto:sage [2006/04/22(土) 12:30:44 ID:???]
>>449
こんなのMSであるんだな。初めて知った。
でもこれみると、POP Before SMTPやSMTP Authには対応してない気がするのは、
漏れだけかな・・・

となると、まず認証関係を確かめる必要がある。
次はスパムされちゃう恐れがあるので、そのSmtpを運営してるプロバイダを使用してる
ユーザだけとか、企業だとIPアドレス等とか、いろいろ制限されててメール送信して
くれない可能性があるね。

452 名前:447 [2006/04/22(土) 13:47:10 ID:IlbM7gzP]
ちなみにこれがCGIでSMTPを叩いてメール送信するソースですが
これをASP用に変えられないでしょうか。
お願いします。

use Net::SMTP;
$smtp = Net::SMTP->new($domain); #SMTPサーバ

$smtp->mail($mail); #送信元の指定
$smtp->to($to); #宛先の指定

# データ部の組み立て
$smtp->data();
$smtp->datasend("To:$to<$to>\n"); #Toヘッダ
$smtp->datasend("Subject:$kenmei\n"); #件名
$smtp->datasend("\n");
$smtp->datasend("テスト\n");
$smtp->dataend();
$smtp->quit;


453 名前:nobodyさん mailto:sage [2006/04/22(土) 16:06:29 ID:???]
ツール使わないっていってんのに、おもいっきりモジュールつかってるんですが。
use Net::SMTP;

これが許されるならBASP21を素直に使えよ。

454 名前:nobodyさん mailto:sage [2006/04/23(日) 01:14:01 ID:???]
ラジオボックスを複数個用意して、いずれかが選択された時に出力する部分を入れ替える、というのは可能でしょうか。

たとえば、

<form name="sample">
<input type="radio" name="test" value="1" checked>
<input type="radio" name="test" value="2">
<input type="radio" name="test" value="3">
</form>
<%@ Language=VBScript %>
<% If document.sample.test(1).checked = true Then %>
ラジオボタンの1が選択された時に表示される内容<br>
<% Else If document.sample.test(2).checked = true Then %>
ラジオボタンの2が選択された時に表示される内容<br>
〜〜

こういった感じのものを作りたいと思っていますが、どうも上手くいきません。
よろしくお願いします。



455 名前:nobodyさん mailto:sage [2006/04/23(日) 02:19:41 ID:???]
>>454
可能

普通にクラスのメソッドで、ポストされたラジオボタンの値に従って
処理をわければいいだけだと思われ。

456 名前:454 mailto:sage [2006/04/23(日) 03:41:00 ID:???]
 POSTで同ページにアクションを送る、という方法ではなく、ラジオボタンを
押された時に表示を切り替えれたら、と思っています。
 ラジオボックスのonClickプロパティでどうのこうの…という方法を試して
みましたが、どうもエラーが出てしまいます。
 ソースのサンプルみたいなものがあれば嬉しいのですが、見つからず…。

457 名前:nobodyさん mailto:sage [2006/04/23(日) 06:58:29 ID:???]
>>454
たぶんASPとクライアントサイドのVBを混同してると思われ
こういうことやるなら鯖負担軽減のためにクライアントサイドでjavascriptとかで処理した方がいいと思うけど
どうしてもASPでって言うなら↓みたいにすればできるけど
---------------------------
<%
Dim CHK,URL,MSG
URL= Request.ServerVariables("SCRIPT_NAME")
CHK=Array("","","")
If Request.QueryString("test")<>"" Then CHK(Request.QueryString("test")-1)=" checked"
%>
<html>
<body>
<form name="sample">
<input type="radio" name="test" value="1" onclick="self.location.href='<%=URL%>?test=1'"<%=CHK(0)%>>
<input type="radio" name="test" value="2" onclick="self.location.href='<%=URL%>?test=2'"<%=CHK(1)%>>
<input type="radio" name="test" value="3" onclick="self.location.href='<%=URL%>?test=3'"<%=CHK(2)%>>
</form>
<%
Select Case Request.QueryString("test")
Case 1
Response.Write "1つ目が押されました"
Case 2
Response.Write "2つ目が押されたようです"
Case 3
Response.Write "3つ目が押されたかも…"
Case Else
End Select
%>
</body>
</html>

458 名前:nobodyさん mailto:sage [2006/04/23(日) 14:40:54 ID:???]
>>456
それを実現するならAjaxだな
www.atmarkit.co.jp/fdotnet/special/ajax/ajax_01.html

だけど、めんどくさそうで、おれならやりたくないな


459 名前:nobodyさん mailto:sage [2006/04/23(日) 16:27:40 ID:???]
表示だけの問題なら全部ソースに書いといて1つだけ表示させればいい
<html>
<head>
<script>
function disp(targetID){
document.getElementById("Disp1").style.display="none";
document.getElementById("Disp2").style.display="none";
document.getElementById("Disp3").style.display="none";
document.getElementById(targetID).style.display="inline";
}
</script>
</head>
<body>
<form name="sample">
<input type="radio" name="test" value="1" onclick="disp('Disp1');">
<input type="radio" name="test" value="2" onclick="disp('Disp2');">
<input type="radio" name="test" value="3" onclick="disp('Disp3');">
</form>
<div id="Disp1" style="display:none;">ラジオボタンの1が選択された時に表示される内容</div>
<div id="Disp2" style="display:none;">ラジオボタンの2が選択された時に表示される内容</div>
<div id="Disp3" style="display:none;">ラジオボタンの3が選択された時に表示される内容</div>
</body>
</html>

まぁ既にスレ違いだが

460 名前:454 mailto:sage [2006/04/24(月) 02:09:47 ID:???]
ソースを元に作成してみます。
手短ですが、返答ありがとうございました。

461 名前:nobodyさん [2006/04/24(月) 11:16:04 ID:gF03A8tY]
今さらかもしれないのですが、ISAPIについて教えてください。
ISAPIFilterからApplication変数を読む事ってできないでしょうか。


462 名前:nobodyさん mailto:sage [2006/04/25(火) 10:04:51 ID:???]
文字列の比較について聞きたいのですが、分かる方がいればお願いします。
ドメインのカントリーコードを抜き出して比較するためのコードとして、以下のように書きました。

Dim country1
Dim country2
country1 = Session("domain")
If country1 = "" then
err = 1
Else
country2 = Split(country1,".")(UBound(Split(country1,".")))
If country2 = "com" or "net" or "jp" then
err = 1
End If
End If

Session("domain")には、フォームから送信されたドメイン名(www.hogehoge.orgなど)が入っています。
しかし、これだとエラーが出てしまいます。
何度か試してみましたが、If country2 = "com" then のように、一種類だけなら問題なく動きました。
原因が分かる方いませんか?

463 名前:462 mailto:sage [2006/04/25(火) 11:20:35 ID:???]
先ほど書き込みした者です。
昨日から悩んだ末の書き込みでしたが、先ほど演算子の優先度の関係に気づき、自己解決しました。
板汚し失礼しました。

464 名前:nobodyさん [2006/04/28(金) 01:48:17 ID:TXbB+xqv]
ASPをこれから始めようと思ってます。
で、IISをインストールして、IEからttp://127.0.0.1にアクセスしたところ、
ユーザー名とパスワードの入力ウィンドウが表示されました。
ユーザー登録した覚えはないのですが、どうしたらいいですか?



465 名前:nobodyさん mailto:sage [2006/04/28(金) 07:06:59 ID:???]
>>464
IISの設定で「既定のWebサイト」のプロパティから
ディレクトリセキュリティ→匿名アクセスおよび認証コントロールの「編集...」
のダイアログの「匿名アクセス」に
チェックついとるか?

466 名前:nobodyさん mailto:sage [2006/04/28(金) 22:49:06 ID:???]
>>464
それってルーターかモデムにアクセスしようとしてるんだよ
試しにルーターかモデムにログインするIDとパス入れてご覧

467 名前:nobodyさん mailto:sage [2006/04/29(土) 00:22:32 ID:???]
>466
それはひょっとしてギャグで(ry

468 名前:464 [2006/04/29(土) 12:17:28 ID:5l2q50I6]
>>465
IISの設定の方法がわかりません。

469 名前:nobodyさん [2006/04/29(土) 13:29:04 ID:xQDtvren]
携帯サイトを作ろうとしてますが、キャリアによって移動するページを仕分けたいのですが
どのような判別ソースを書けばよいでしょうか?
キャリアはEZ、Docomo、Vodafoneですが、画像を表示できるタイプとできないものの
全部で6パターンを仕分けたいです。
よろしくお願いします。

470 名前:nobodyさん [2006/04/29(土) 17:09:41 ID:xQDtvren]
これをASP風に変更すればどんな感じになるでしょうか?
お願いします。

sub User_Agent {
my($user_agent) = @_;

# exp. DoCoMo/1.0/P209is/c10
if (user_agent =~ /DoCoMo/i) then
platform = "DoCoMo"
agetPart = split(/\//, user_agent);
browser = "DoCoMo"
if agetPart[1] =~ /\(/) { # FOMA
$agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;
$browser_v = $1;
$platform_v = $2;
} else { # i-mode
$browser_v = $agetPart[1];
$platform_v = $agetPart[2];
}
if($platform_v eq '') {
$platform_v = '';
}
return ($platform, $platform_v, $browser, $browser_v);
}


471 名前:nobodyさん [2006/04/29(土) 17:12:39 ID:xQDtvren]
しくじりました。こっちです。

sub User_Agent {
my($user_agent) = @_;

# exp. DoCoMo/1.0/P209is/c10
if ($user_agent =~ /DoCoMo/i) {
$platform = 'DoCoMo';
@agetPart = split(/\//, $user_agent);
$browser = 'DoCoMo';
if ($agetPart[1] =~ /\(/) { # FOMA
$agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;
$browser_v = $1;
$platform_v = $2;
} else { # i-mode
$browser_v = $agetPart[1];
$platform_v = $agetPart[2];
}
if($platform_v eq '') {
$platform_v = '';
}
return ($platform, $platform_v, $browser, $browser_v);
}


472 名前:nobodyさん mailto:sage [2006/04/29(土) 18:22:50 ID:???]
>>468
ふーんそっか大変だね

473 名前:466 mailto:sage [2006/04/30(日) 00:30:55 ID:???]
>>467
すまん。実際俺はそうだったよ
串指してないし

474 名前:nobodyさん mailto:sage [2006/04/30(日) 12:32:07 ID:???]
今すぐループバックアドレスでぐぐれ。



475 名前:464 [2006/04/30(日) 15:56:09 ID:BgW+gShw]
えー色々と問題を解決していきました。
とりあえずお礼と結果
>>465
チェック入ってました。結局アクセスできませんでしたが、
他のファイルはアクセスできることがわかりました。
多分、最初のファイル自体の問題なんじゃないかと思います。
有難うございました。
>>466
違いました。
有難うございました。

で、ASPをやってみて、JScriptとVBScriptは上手くいくんですが、
ASP.NETのC#ができません。MMCで使用する言語をC#にしたんですが
どうやら実行が許可されていないようです。
どうすればいいでしょうか。

476 名前:nobodyさん mailto:sage [2006/04/30(日) 16:52:26 ID:???]
ASP.netはスレ違いなんだが…
とりあえずやってみようとしてるファイルの
ファイル名と内容とブラウザに出てきたエラーの詳細を晒してみ。

477 名前:464 [2006/04/30(日) 17:14:27 ID:BgW+gShw]
>>476
わかりました。以後、ASP.NETの質問はASP.NETスレでやります。

127.0.0.1/

ファイル名:index.aspx ←IISのドキュメントのところで設定した。
カレントディレクトリはwwwroot

HTTP 403.1 アクセスは許可されていません:
実行アクセスは許可されていません。
・背景
プログラムの実行が許可されていないディレクトリから、CGI、ISAPI、
またその他の実行可能プログラムを実行しようとしました。

<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="www.w3.org/1999/xhtml" xml:lang="ja"><head>
<title>Test</title></head><body>
<h1>Test</h1>
<p><%= "test" %></p>
</body></html>

478 名前:nobodyさん mailto:sage [2006/04/30(日) 20:32:41 ID:???]
wwwrootのフォルダのアクセス権だな。
Everyoneに読み取りと実行の権限がいるはず。
あと既定のwebサイトのプロパティでアプリケーション設定の実行アクセス権を
「スクリプトのみ」か「スクリプトおよび実行可能ファイル」にしてあるか確認。

479 名前:464 mailto:sage [2006/05/01(月) 01:40:32 ID:???]
>>478
動きました。(少し感動)
有難うございます。

480 名前:nobodyさん [2006/05/01(月) 21:20:33 ID:G9IWAFk4]
>>470-471についてお願いします。

481 名前:nobodyさん mailto:sage [2006/05/01(月) 22:42:43 ID:???]
>>480


function User_Agent (var1,var2) {

var user_agent = Request.ServerVariables("HTTP_USER_AGENT").Item();

// ex. DoCoMo/1.0/P209is/c10
if (user_agent.match(/DoCoMo/i)) {
platform = "DoCoMo";
agetPart = user_agent.split("/");
browser = "DoCoMo";
if (agetPart[1].match("(")) {// FOMA
// $agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;←ここ意味不明?代入?正規表現?
browser_v = var1;
platform_v = var2;
} else {
browser_v = $agetPart[1];
platform_v = $agetPart[2];
}
if (platform_v=="") { platform_v = ""; }// ここ意味あるの?
}

return (platform, platform_v, browser, browser_v);
}



482 名前:nobodyさん mailto:sage [2006/05/01(月) 22:53:52 ID:???]
こうか?適当。ノーチェック。

function UserAgent(userAgent)
dim platform,agetPart,browser,regex,omatches,omatch
dim browserV,platformV
if instr(Ucase(userAgent),"DOCOMO") > 0 then
platform = "DoCoMo"
agetPart = split(userAgent,"/")
browser = "DoCoMo"
if instr(agetPart(0),"(") > 0 then
set regex = new RegExp
regex.pattern = "([0-9]\.[0-9])\s([^\(]*)(.*)"
set omatches = regex.execute(agetPart(0))
set omatch = omatches(0)
browserV = omatch.submatches(0)
platformV = omatch.submatches(1)
else
browserV = agetPart(0)
platformV = agetPart(1)
end if
end if
UserAgent = array(platform, platformV, browser, browserV)
end function


483 名前:nobodyさん mailto:sage [2006/05/02(火) 14:14:00 ID:???]
hoge1.aspにて

dim hoge
set hoge = new clsHoge

set session("sshoge") = hoge

hoge2.aspにて

dim hoge
set hoge = session("sshoge")
response.write hoge.hello()

というようにhoge2.aspでオブジェクトを取り出して
使いたいのですがhogeのhello()メソッドにアクセスできません。
どこに問題があるか分かる方がおられましたら
教えていただけないでしょうか?

484 名前:nobodyさん mailto:sage [2006/05/02(火) 15:34:41 ID:???]
>>483
hello()メソッドはどこで定義したの?



485 名前:nobodyさん mailto:sage [2006/05/02(火) 20:53:58 ID:???]
>>482
ありがとうござあいます
今日は酔ってるんで明日やってみます

486 名前:nobodyさん mailto:sage [2006/05/03(水) 00:24:06 ID:???]
>>483
超残念。
SessionにはVBScriptのオブジェクトは格納できない。
(厳密に言えば格納は出来るけど、それを取り出して使う事が出来ない)
SessionはIISのオブジェクトであって、VBScriptとは次元が違うから。

自力でserialize的な仕掛けでも作るしかないね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<289KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef