PDA

View Full Version : سوال: اتصال asp به پایگاه داده در access



ahmadkavand
یک شنبه 29 آذر 1388, 11:42 صبح
سلام
من هیچ کس نتونسته کمکم کنه.
آخه می خواستم برنامه asp رو به پایگاه داده اتصال بدم.ولی همش به مشکل می خورم
تو رو خدا کمکم کنید
دیگه دیوونه شدم.
این فایل html من هست.
<HTML>
<HEAD><TITLE>Login</TITLE></HEAD>
<BODY>
<form method="post" action=" 1.asp ">
First Name: <input type="text" name="Name" size="20"><br>
Last Name : <input type="text" name="familly" size="20"><br>
<input type="submit" value="Send">
</form>
</BODY>
</HTML>


می خواستم شما فایلASP رو برام بنویسید تا بتونم داده هام رو از این فایل HTML توی یه بانک که مثلا توی درایو C هست نشون بده.
کمکم کنید

aryaei2000
یک شنبه 29 آذر 1388, 19:56 عصر
برای اتصال به بانک اطلاعاتی اکسس شما به موارد زیر نیاز دارید:
1.فایلی جهت ذخیره مسیر و نام بانک اطلاعاتی config
2.دسترسی write , delete و read
3.موتور پردازشگر asp که بوسیله فایل config به بانک اطلاعاتی متصل شود و عملیات لازم را انجام دهد.

فایل config.asp


<%
'تعریف متغیرها
Dim strConn, ObjCon
'فعال کردن بافر
Response.Buffer = True
'### CONNECTION STRINGS CONFIGURATION ###
'تعریف چند متغیر
tablpfx = "tbl"
dbFldr = "../db/"
'تعریف نام بانک اطلاعاتی و مسیر دهی
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & Server.MapPath(dbFldr & "dbname.mdb") & ";"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.CursorLocation = 3
objConn.open strConn
%>
2.نحوه تعریف دسترسی ها در ویندوز:
http://barnamenevis.org/forum/showthread.php?t=21245
3.موتور پردازشگر:


<!--#include virtual="config.asp"-->
<%
'اطمینان از عدم وجود مشکل برنامه نویسی
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If
'چک کردن نوع درخواست فرم و اطمینان از مساوی بودن آن با مقدارpost (دقت کنید که در هر دو طرف تساوی از حروف کوچک استفاده شده)
If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Sq(Request.Form("Name"))
Lname = Sq(Request.Form("Family"))
'اتصال به بانک اطلاعاتی و وارد کردن مقادیر
strsql = "INSERT INTO " & tablPfx & "[tablename] (Fname, Lname) values ('" & Fname & "', '" & Lnname & "');"
ObjCon.Execute(strsql)
End If

'فیلتر کردن کوتیشن برای جلوگیری از اینجکشن
Function Sq(Inputstr)
Inputstr = Replace(Inputstr, "'", "''")
End Finction
%>

ahmadkavand
دوشنبه 30 آذر 1388, 01:29 صبح
دستتون درد نکنه.اجرتون با بی بی رقیه
ولی یه خواهش دارم.منو ببخشید
اگه میشه جلوی هر خط برام به فارسی بنویسید که این خط چه کار می کنه. اون جاهایی رو هم که من می خوام پر کنم برام بنویسید
تو رو خدا می خوام یاد بگیرم
به خدا دعاتون می کنم حسابی
داداش عزیز شرمنده.ببخشید

shavak
دوشنبه 30 آذر 1388, 10:08 صبح
با سلام اگه خواستی یه توضیح کامل بدی با این ایمیل ارتباط برقرار کن من یه سورس کامل با توضیحات برات بفرستم داداش ما مخلص هرچی برنامه نویس هستیم اخه هرکاری بکینم واسه ایران عزیز مونه
منتظرم iran_arman_m@yahoo.com

ahmadkavand
دوشنبه 30 آذر 1388, 13:38 عصر
دستتون دردنکنه
براتون ایمیل زدم
خوشحال میشم اسم شریفتون رو بدونم یا اینکه ازتوت شماره داشته باشم.
منتظرتونم

aryaei2000
دوشنبه 30 آذر 1388, 21:41 عصر
بالای هر خط نوشتم.
موارد قرمز رنگ رو باید بر اساس مقادیر خودتون تغییر بدید.
موفق باشید.

ahmadkavand
سه شنبه 01 دی 1388, 09:04 صبح
سلام
مرسی الان میرم کار میکنم
یه سوال دیگه هم داشتم
*2.نحوه تعریف دسترسی ها در ویندوز رو برام یه توضیح بدید
ممنون

ahmadkavand
سه شنبه 01 دی 1388, 09:59 صبح
سلام
خط هشتم error میده
من جایی رو که باید پر می کردم،پر کردم

<%
Dim strConn, ObjCon
Response.Buffer = True
tablpfx = "tbl"
dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & Server.MapPath(dbFldr & "db1.mdb") & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.CursorLocation = 3
objConn.open strConn
%>
<%
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If

If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Sq(Request.Form("Name"))
Lname = Sq(Request.Form("Family"))

strsql = "INSERT INTO " & tablPfx & "[table1] (name, familly) values (' " & Fname & " ' , ' " & Lnname & " ');"
ObjCon.Execute(strsql)
End If

Function Sq(Inputstr)
Inputstr = Replace(Inputstr , " ' " , " ' ' " )
End Function
%>

بانک اطلاعاتی من اسمش db1 و دارای دوتا ستون name,familly هست.
توی آدرسC:\Inetpub\wwwroot\db1.mdb
اگه میشه خودتون هم بررسی کنید ببینید که کجاهای برنامه مشکل داره
ممنون.دستتون درد نکنه

aryaei2000
سه شنبه 01 دی 1388, 19:13 عصر
با سلام
شما در وارد کردن مسیر دچار اشتباه شدید.
اگر میخواهید مسیرتون بصورت :\C:\Inetpub\wwwroot\db1.mdb باشه باید در خط هفتم Server.MapPath
را بردارید و یا متغیر dbFldr رو بدون C:\Inetpub\wwwroot\ مقدار دهی کنید.

ahmadkavand
چهارشنبه 02 دی 1388, 02:13 صبح
سلام مهندس خسته نباشی

طبق دستور 1 عمل کردم.یه error هم داشت که درستش کردم
ولی داده ها وارد بانک نمیشن.
توی فایلhtml داده هام رو وارد میکنم و send رو که میزنم، داده ها وارد جدول نمیشن یا اینکه داده ها رو وارد میکنم و بعد فایل asp رو اجرا میکنم،بازم داده ها وارد نمیشن


اینم برنامه اصلاح شده:



<%
Dim strConn, ObjCon
Response.Buffer = True
tablpfx = "tbl"
dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr ) & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.CursorLocation = 3
objConn.open strConn
%>
<%
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If
If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Sq(Request.Form("Name"))
Lname = Sq(Request.Form("Family"))
strsql = "INSERT INTO " & tablPfx & "[table1] (name, familly) values (' " & Fname & " ' , ' " & Lnname & " ');"
ObjCon.Execute(strsql)
End If
Function Sq(Inputstr)
Inputstr = Replace(Inputstr , " ' " , " ' ' " )
End Function
%>


مرسی بدجور انداختمت تو زحمت.
دستت دردنکنه

aryaei2000
چهارشنبه 02 دی 1388, 18:58 عصر
شما تو خط 23 باید کروشه های دور table1 رو برداری.


strsql = "INSERT INTO " & tablPfx & "table1 (name, familly) values ('" & Fname & "' , '" & Lnname & "');"

یه امتحان بکن ببین مشکل رفع شده یا نه.

ahmadkavand
پنج شنبه 03 دی 1388, 01:09 صبح
سلام.خسته نباشید
بازم حل نشد.

دوباره دوتا فایل رو براتون می فرستم
html:
<HTML>
<HEAD><TITLE>Login</TITLE></HEAD>
<BODY>
<form method="post" action="config.asp" >
First Name: <input type="text" name="Name" size="20"><br>
Last Name : <input type="text" name="familly" size="20"><br>
<input type="submit" value="Send">
</form>
</BODY>
</HTML>



asp:

<%
Dim strConn, ObjCon
Response.Buffer = True
tablpfx = "tbl"
dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr ) & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.CursorLocation = 3
objConn.open strConn
%>
<%
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If
If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Sq(Request.Form("Name"))
Lname = Sq(Request.Form("Family"))
strsql = "INSERT INTO " & tablPfx & " table1 (name, familly) values ('" & Fname & "' , '" & Lnname & "');"
ObjCon.Execute(strsql)
End If
Function Sq(Inputstr)
Inputstr = Replace(Inputstr , " ' " , " ' ' " )
End Function
%>

ببخشید. دستتون درد نکنه

aryaei2000
پنج شنبه 03 دی 1388, 19:06 عصر
یه چند تا اشکال بود درست کردم.
asp



<%
Dim strConn, ObjCon
Response.Buffer = True
tablpfx = "tbl"
dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr ) & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.CursorLocation = 3
objConn.open strConn
%>
<%
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If
If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Sq(Request.Form("Name"))
Lname = Sq(Request.Form("Family"))
strsql = "INSERT INTO " & tablPfx & "table1 (name, familly) values ('" & Fname & "' , '" & Lname & "');"
ObjCon.Execute(strsql)
End If

Function Sq(Inputstr)
Inputstr = Replace(Inputstr , " ' " , " ' ' " )
End Function
Set rs = Nothing
Set objConn = Nothing
%>

اگر نکات زیر رو رعایت کنید ممنون میشم.
1.از دادن پستهای بی محتوا خودداری کنید.
2.کدهاتون رو بین تگ code قرار بدید.
موفق باشید

ahmadkavand
جمعه 04 دی 1388, 00:47 صبح
سلام
بازم چیزی add نشد توی بانک

مرسی

aryaei2000
جمعه 04 دی 1388, 11:03 صبح
شما مطمئنید که مقادیر name و familly در بانک اطلاعاتی نیز با همین نام درج شده اند؟
ضمنا همونطور که گفتم دسترسی write ,read, delete با ید تعریف شده باشند.
این خطوط رو هم


dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr ) & ";"

با این خطوط عوض کنید:



strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & Server.MapPath("cldb.mdb") & ";"

ahmadkavand
جمعه 04 دی 1388, 13:47 عصر
سلام
این کار رو کردم ولی جواب نداد
این objConn.Mode = adModeReadWrite رو هم اضافه کردم ولی دوباره add نشد.
شما توی سیستمتون این برنامه کار می کنه

ممنون

ahmadkavand
جمعه 04 دی 1388, 13:50 عصر
ببخشید اگه تشکر های من 0 هست
نمی دونم چه جور این کار رو کنم(یعنی جلوی تشکرهام پر بشه)

ahmadkavand
جمعه 04 دی 1388, 13:52 عصر
بانک دوتا ستون داره
name familly
با همین املا

aryaei2000
جمعه 04 دی 1388, 14:19 عصر
من همه اسامی رو بصورت مرجع در آوردم.
کار میکنه و مشکلی نداره.

ahmadkavand
شنبه 05 دی 1388, 15:18 عصر
سلام
خیلی رو برنامه فکر کردم، روش کار کردم ولی add نمی کنه

aryaei2000
شنبه 05 دی 1388, 19:06 عصر
مگه میشه؟
تو کامپیوتر من کار میکنه.
همونطور که گفتم شما باید محتوای فایلی که من گذاشتم رو در پوشه wwwroot استخراج کنید.
دسترسی ها رو هم به فایل بانک اطلاعاتی بدید.

ahmadkavand
دوشنبه 07 دی 1388, 10:07 صبح
سلام
یه سوال دارم.
وقتی که من فرمم رو پر کنم،وقتی که دکمهsend رو زدم باید اطلاعاتم برن توی بانک.درسته؟
یا نه از طریق دیگه ای
تشکر

ahmadkavand
دوشنبه 07 دی 1388, 10:08 صبح
این error یعنی چی؟
Error Type:
ADODB.Recordset (0x800A0CB3)
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

دستتون درد نکنه

mahtab119
سه شنبه 08 دی 1388, 08:57 صبح
سلام
منم دقيقا مشكل شما رادارم يعني همه كدها درسته اما در ديتابيس چيزي ثبت نمي شود

اگه راهنمايي كنيد ممنون ميشم

ahmadkavand
سه شنبه 08 دی 1388, 09:38 صبح
سلام.درسته؟

ahmadkavand
سه شنبه 08 دی 1388, 09:40 صبح
می خواستم بدونم شما خودتون برنامه asp رو چه جوری اجرا می کنید(مثل همین برنامه)
تشکر

mahtab119
سه شنبه 08 دی 1388, 11:00 صبح
سلام
خوب فايل ها را در wwwroot كپي مي كنيم بعد هم در IE مي زنيم:
http://127.0.0.1/l0gin/login.htm
و ديگه صفحه لوگين لود مي شود
جايي ديدم مثل اينكه بايد ديتابيس را شير كرد وبه يوزر اجازه ويرايش را هم داد
اما فعلا من تا شب دسترسي به iis ندارم تا تست كنم

ahmadkavand
سه شنبه 08 دی 1388, 14:36 عصر
سلاماین error یعنی چی؟Error Type:Microsoft JET Database Engine (0x80040E37)Could not find output table 'tbltable1'./asp1.asp, line 27فکر کنم اگه این error رفع بشه همه چیز حله.دوباره کدهای asp رو می فرستم

aryaei2000
سه شنبه 08 دی 1388, 17:41 عصر
کد هارو ضمیمه کنید لطفا.

ahmadkavand
چهارشنبه 09 دی 1388, 00:38 صبح
سلام.کدها رو فرستادم

ahmadkavand
چهارشنبه 09 دی 1388, 00:41 صبح
سلامکدها رو میزارم ولی نمی یاند

ahmadkavand
چهارشنبه 09 دی 1388, 00:45 صبح
کدها نمی یاند.ارسال نمیشن.ولی کدهای صفحه دوم.همون قسمتی که نوشتی چندتا خطا داشت درستش کردماز همون می تونید یه کپی بردارید.فقط family باید بشهfamilly اینم خطایی که میدهError Type:Microsoft JET Database Engine (0x80040E37)Could not find output table 'tbltable1'./asp1.asp, line 25

ahmadkavand
چهارشنبه 09 دی 1388, 00:46 صبح
کدها ارسال نمیشنولیمی تونید از صفحه دوم جای که نوشتید چندتا خطا داشت درستش کردم یه کپی بگیرید

mahtab119
چهارشنبه 09 دی 1388, 01:33 صبح
من این کدها را استفاده می کنم
Microsoft JET Database Engine (0x80004005)
Operation must use an updateable query.
/login3/act.asp, line 27

میده بعد سرچ زذم ومدم یه mod3 هم بعد insert اضافه کردم

حالا این را میده
ADODB.Connection (0x800A0E79)
Operation is not allowed when the object is open.
/login/act.asp, line 32
================
اگه راهنمایی کنید ممنون میشم

mahtab119
چهارشنبه 09 دی 1388, 02:36 صبح
خوب از دوستانی که این تاپیک را همراهی کردن ممنون اما باید بگم هیچی تاپیک لاتین نمیشه
چون باید فردا پروزه را تحویل میدادم امشب فقط تاپیک انگلیسی سرچ کردم
حالا بگذریم ....
مشکل من حل شذ:
http://support.yessoftware.com/kb_article.asp?article_id=72
امیذوارم مشکل شماها هم حل بشه
باز هم از مدیر این بخش وبقه بروبچ ممنون

aryaei2000
چهارشنبه 09 دی 1388, 10:22 صبح
لطفا کد ها رو تو سایت آپلود کنید.
منظورم اینه که از بخش ضمیمه استفاده کنید.

ahmadkavand
چهارشنبه 09 دی 1388, 12:48 عصر
سلامفایل asp رو ضمیمه کردم

ahmadkavand
چهارشنبه 09 دی 1388, 12:51 عصر
همون error که براتون فرستادم رو میدهیه سوال دیگه:شما چه جور برنامه منو اجرا می کنید؟تشکر

aryaei2000
چهارشنبه 09 دی 1388, 13:32 عصر
یه تست بکنید ببینید مشکلتون حل ششد یا نه.

aryaei2000
چهارشنبه 09 دی 1388, 19:41 عصر
سلام برنامه ای که استاد برای اتصال به من گفته اینه:
ولی متصل نمیشه!!
<%dim obj
set obj=server.createobject("adodb.connection")
obj.connectionstring="driver={microsoft access driver(*.mdb)}; "& dbq="masir\nam.mdb"
connection.open
dim objrs
set objrs=server.creatobject ("adodb.recordset")
objrs.open "users",obj,,,adcmdtable
do while not objrs.eof
response.write "(&objrs("name"))"
response.write "(&objrs("family"))"
loop
objrs.close
set objrs=nothing
obj.close
set obj=nothing%>
لطفا راهنماییم کنید

وقت ندارم:ناراحت:

شما باید حین مسیر دهی از Server.MapPath استفاده کنید یا مسیرتون رو بطور کامل به برنامه بدید.
موفق باشید

ahmadkavand
چهارشنبه 09 دی 1388, 19:55 عصر
سلام.لطفا کدها رو مثل صفحه های قبل برام بفرستید.وقتی که فایل ضمیمه رو دانلود می کنم یه فایل به اسم attachment برام دانلود میشهممنون تشکر

ahmadkavand
چهارشنبه 09 دی 1388, 19:56 عصر
این فابلattachment کدهای یکی از صفحه های این وب هست

ahmadkavand
چهارشنبه 09 دی 1388, 19:59 عصر
این فایل کدهای یکی از صفحه های وب خودتون هست

aryaei2000
چهارشنبه 09 دی 1388, 20:30 عصر
متوجه منظورتون نمیشم.
اما بازم کد رو میزارم.


<%
Dim strConn, ObjCon
Response.Buffer = True
tablpfx = ""
dbFldr = "C:\Inetpub\wwwroot\ak1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr ) & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Mode = adModeReadWrite
objConn.CursorLocation = 3
objConn.open strConn
%>
<%
If Err.Number <> 0 then
Response.Write "<font face='verdana' size='2'><br><b>The Error has occured!</b>"
Response.Write "<br><br>Page: <b>config/config.asp</b>"
Response.Write "<br><br>Error Number: <b>" & err.number & "</b>"
Response.Write "<br><br>Error Description: <b>" & err.description & "</b>"
Response.End
End If
If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" then
Fname = Request.Form("name")
Lname = Request.Form("familly")
strsql = "INSERT INTO " & tablPfx & "table1 (name, familly) values ('" & Fname & "' , '" & Lname & "');"
ObjConn.Execute(strsql)
End If

Set rs = Nothing
Set objConn = Nothing
%>

ahmadkavand
چهارشنبه 09 دی 1388, 21:03 عصر
یه سوال کردمشما خودتون برنامه منو چه جور اجرا می کنید؟ممنون

ahmadkavand
چهارشنبه 09 دی 1388, 21:16 عصر
سلام حالا این error رو میده.Error Type:(Microsoft JET Database Engine (0x80004005peration must use an updateable query/asp1.asp, line 26

aryaei2000
چهارشنبه 09 دی 1388, 21:36 عصر
من برنامه در لوکال هاست و با مرورگر اکسپلورر اجرا میکنم.
شما لطفا اسم جدول و اسم بانک اطلاعاتی رو بدید تا من درستش کنم.
بازم یاداوری میکنم:مطمئنید که دسترسی حذف و نوشتن و خواندن رو برای فایل اکسس تعریف کردید؟
موفق باشید.

ahmadkavand
چهارشنبه 09 دی 1388, 23:47 عصر
اسم جدول=TABLE1.اسم بانک=AK1.راستی چه جور دسترسی حذف و نوشتن و خواندن رو برای فایل اکسس تعریف کنم؟دستتون درد نکنهتشکر

aryaei2000
پنج شنبه 10 دی 1388, 18:43 عصر
از اینجا استفاده کنید.
http://barnamenevis.org/forum/showthread.php?t=21245
موفق باشید.

mahtab119
پنج شنبه 10 دی 1388, 23:26 عصر
جناب مدیر واقعا من از صبر و حوصله شما تشکر و تعجب می کنم
راستش خطاهایی که این کاربر عزیز لیست می کنند فقط کاقیه کپی کنند و در
گوگل سرچ کنند و ببینند چچطور قشنگ برای هر خطایی چندین امکان در نظر گرفته شده
من کمک تو کد نوسی را قبول دارم چرا که خیلی وقت ها خودمم دچار مشکل میشم
اما با لقمه اماده گرفتن اونم واسه یه مهندس کامپیوتر که قراره تو این زمینه کار کند مخالفم
ما باید یاد بگیریم که خیلی چیزها را خودمون سرچ کنیم و دنبال راه حلش بریم و اگه واقعا به بن بست رسیدیم اینقدر پست بزنیم
به هر حال این نظر من بود
شرمنده اگه دخالت کردم

ahmadkavand
جمعه 11 دی 1388, 00:07 صبح
سلام.اجازه دسترسی با پوشه my project صورت میگیره.توی asp این پوشه اضافه نمیشه.توی اون عکس هم یه فایل به اسمaspnet بود پس حتما باید نرم افزار vs رو نصب کنم.مرسی.تشکر

aryaei2000
جمعه 11 دی 1388, 09:25 صبح
درسته اما اگه آدم خودش متوجه بعضی از خطاهاش بشه دیگه تا ابد ممکنه او خطاها رو تکرار نکنه.

نه.
اسامی که انجا تعریف شدن برای مثال بود نه چیز دیگه ای.

ahmadkavand
دوشنبه 14 دی 1388, 14:44 عصر
سلام.
آخر تونستم از دو راه کار رو انجام بدم.
برنامه اول:reg.asp
.نظرتون چیه؟

.
برنامه دوم:asp1.asp
.نظرتون چیه؟.
.توی برنامه دومی که به من دادید چندتا از " رو و چندتا از sq ها رو هم برداشتم تا برنامه درست شد.خطاها به خاطر همین بود.
تشکر

ahmadkavand
دوشنبه 14 دی 1388, 14:48 عصر
حالا یه راهنمایی دیگه می خوام.
می خوام افرادی با یوزر و پسورد خودشون که از قبل این یوزر و پسورد توی بانک هستند به صفحه ای دیگه هدایت بشن.
فکر کنم یه کم از دستم ناراحتید
ممنون

aryaei2000
دوشنبه 14 دی 1388, 19:23 عصر
سلام
خوشحالم که بالاخره موفق شدید.
برای هدایت کردن کاربر به صفحه ای دیگر باید کد زیر استفاده کنید.


Response.Redirect "page name"

که در آن pagename ، نام صفحه بعلاوه فرمت آن میباشد.
موفق باشید

ahmadkavand
دوشنبه 14 دی 1388, 23:42 عصر
سلام
ببخشید گفته بودم که می خوام افرادی با یوزر و پسورد خودشون که از قبل این یوزر و پسورد توی یه بانک هستند به صفحه ای دیگه هدایت بشن.
یعنی افرادی که اون یوزر و پسورد رو ندارند نباید به صفحه مورد نظر برند.

تشکر

ahmadkavand
دوشنبه 14 دی 1388, 23:43 عصر
یعنی در واقع مثل یا خود login کردن

aryaei2000
سه شنبه 15 دی 1388, 12:14 عصر
در صفحات زیر مطالب مفیدی در باره ی سوالتون وجود داره.
http://www.evolt.org/node/28652
http://www.asp101.com/samples/login.asp
موفق باشید.

ahmadkavand
سه شنبه 15 دی 1388, 17:23 عصر
سلا
رفتم توی اون دوتا سایت
ولی در موقع اجرا خطا دارن
می خواستم خودتون منو راهنامیی کلی کنم

تشکر

aryaei2000
شنبه 19 دی 1388, 12:54 عصر
سلام
بابت تاخیر ببخشید.
لینک هایی که دادم مشکلی نداشتن.شاید شما اطلاعات رو اشتباه وارد کرده بودید.
برای ساختن سیستم login ابتدا احتیاج به یه فرم با دو فیلد دارید:
Login.html


<form name=form1 action=login.asp method=post>
User Name : <input type=text name=username>
Password : <input type=password name=userpwd>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>

حالا باید کدی بنویسیم که بتونه خروجی این فرم رو پردازش کنه:
Login.asp


<!--#include file="config.asp"-->
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = ""

If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" Then
CheckLogin
Else
Response.Redirect "login.html"
End If

Sub CheckLogin
username = replace(request.form("username"), "'", "''")
password = replace(request.form("userpwd"), "'", "''")
strsql = "select username, password from users where username = '" & username & "' and password = '" & password & "';"
Set rs = objconn.execute(strsql)
If Not rs.Eof then
Session("UserLoggedIn") = "true"
Response.Redirect "userpage.asp"
Else
Response.Write("Login Failed.<br><br>")

End If
rs.Close
Set rs = Nothing
End Sub


در صورتی که مشخصات درست وارد شده باشه شما به صفحه userpage هدایت میشید.
userpage.asp


<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work

If Session("UserLoggedIn") "true" Then
Response.Write "Login was successful"
End If
%>


باز هم تاکید میکنم که به نامگزاری ها دقت کنید و اسامی رو با اسامی خودتون عوض کنید تا خطا نگیرید.

ahmadkavand
شنبه 19 دی 1388, 14:36 عصر
سلام
فایل config.asp رو ندارم.میشه واسم ضمیمه کنید.
راستی مهندس دستود ایجاد connection و اتصال به database رو خودم باید اضافه کنم .درسته؟

ممنون

ahmadkavand
شنبه 19 دی 1388, 14:42 عصر
یه توضیح هم راجع به سشن و application می خواستم
مرسی

aryaei2000
شنبه 19 دی 1388, 17:10 عصر
یه توضیح هم راجع به سشن و application می خواستم
مرسی
نمیشه اینجا توضیح داد.ولی در حد یه جمله بگم که هر دو برای ذخیره و پایداری اطلاعات بکار میروند اما session برای هر کاربر جداگانه ایجاد میشود و application همه گانی است.
برای اطلاعات بیشتر تو گوگل جستجو کنید.


سلام
فایل config.asp رو ندارم.میشه واسم ضمیمه کنید.
راستی مهندس دستود ایجاد connection و اتصال به database رو خودم باید اضافه کنم .درسته؟
ممنون
دستور ایجاد کانکشن همون فایل config هست که در تاپیک گذاشته شده.

ahmadkavand
شنبه 19 دی 1388, 20:42 عصر
سلام
با کدهای هایی که خودم بهش اضافه کردم برنامه درست کار می کنه.
فقط یه ایراد داره:
اونم اینه که اگه توی بانکم یه یوزر به اسم ahmad و پسوردی به اسم kavand داشته باشم
از این به بعد هر کسی که اسم یوزرش ahmad و پسوردش هر چی باشه رو وارد کنه، به صفحه مورد نظر یا user page هدایت میشه.

ممنون تشکر

aryaei2000
شنبه 19 دی 1388, 21:51 عصر
درسته.
ایراد رفع شد کد رو تو صفحه قبلی نگاه کنید.

ahmadkavand
یک شنبه 20 دی 1388, 00:48 صبح
سلام
دستتون درد نکنه.درست شد.
ولی نمی دونم چرا داده های فارسی توی بانک وحشتناک یا همون خرچنگ قورباغه اند؟
احتباج به کد داره؟

ممنون

aryaei2000
یک شنبه 20 دی 1388, 10:10 صبح
اگر میخواهید داده ها بصورت فارسی در بیان از کد های زیر در بالای صفحه های خود استفاده کنید.


<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR">

و


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

و همچنین از دستور:


Session.CodePage = 65001

کد بالا تنظیم خاصیت کد پیج آبجکت Session است و با تنظیمات تگ های Meta در HTML فرق میکند.
موفق باشید.

ahmadkavand
یک شنبه 20 دی 1388, 18:22 عصر
سلام کد ها رو گذاشتم بالای هر صفحه ولی درست نشد
میشه بالای کد صفحه قبل بزارید؟

ممنون تشکر

aryaei2000
دوشنبه 21 دی 1388, 19:40 عصر
دقت کنید که دو کد اول رو باید بین تگ head بنویسید.

ahmadkavand
سه شنبه 22 دی 1388, 22:04 عصر
سلام
بازم درست نشد.
فایل asp رو ضمیمه می کنم

aryaei2000
چهارشنبه 23 دی 1388, 10:20 صبح
شما همیشه در طول این تاپیک موارد جزئی و ساده رو از نظر میانداختید.
مثلا


Fname = (Request.Form("name"))
Lname = (Request.Form("email"))

شما موقع حذف کرن sq باید پرانتز ها رو هم بر میداشتی و ...
باز هم میگم شما مطمئنید که در بانک اطلاعاتی charset رو تعریف کردید؟

ahmadkavand
چهارشنبه 23 دی 1388, 12:01 عصر
سلام
وقتی که من فایل های ضمیمه شده از طرف شما رو save می کنم
یه چیز دیگه دانلود میشه
مثلا این فایل بالا رو من دانلود کردم ولی این فایل برام دانلود شد

aryaei2000
چهارشنبه 23 دی 1388, 12:36 عصر
شما باید به سایت وارد بشید تا بتونید فایل های ضمیمه شده رو دانلود کنید.

ahmadkavand
چهارشنبه 23 دی 1388, 13:15 عصر
سلام
من حتی اینو هم اضفه کردم ولی درست نشد
<META http-equiv=Content-Type content="text/html; charset=windows-1256">


ممنون

ahmadkavand
چهارشنبه 23 دی 1388, 13:22 عصر
منظورتون راجع به تعریف charset در بانک اطلاعاتی چیه؟
همون خطی که فرستادم؟

ahmadkavand
شنبه 26 دی 1388, 17:36 عصر
سلام کدها رو برام توی برنامم بزارید تا من دانلودش کنم

ممنون

aryaei2000
شنبه 26 دی 1388, 19:57 عصر
ببینید دو دلیل وجود داره که شما کاراکتر های فارسی نمی شوند:
1.فیلد های شما از UTF-8 پشتیبانی نمیکنند،که شما باید از فیلدهایntext یا nvarchar استفاده کنید.
2.ویندوز فارسی رو پشتیبانی نمیکند.یعنی زبان فارسی نصب نیست.
که دلیل اول بیشتر مربوط به mssql است.
شما برنامه ها را روی هاست اجرا کنید.احتمالا مشکلی پیش نمیاد.

ahmadkavand
یک شنبه 27 دی 1388, 12:52 عصر
سلام
اولین خط رو از برنامه رو code page (توی صفحه قبل گذاشتم) درست شد

دستت درد نکنه
تشکر

ahmadkavand
یک شنبه 27 دی 1388, 12:58 عصر
اگه میشه یه هاست مجانی خوب برام معرفی کنید تا برنامه هم رو اونجا بزارم
ببنیم بازم مشکلی هست

Hadiir.net
چهارشنبه 30 دی 1388, 20:33 عصر
چرا از صفحه 8 یه بعد همه صفحات مثل همه و جلوتر نمیره

ahmadkavand
پنج شنبه 01 بهمن 1388, 10:24 صبح
سلام خدمت کاربر عزیزaryaei2000:
می خواستم جلوی خط هایی رو که ********** گداشتم.یه توضیح کوچک بدید

ممنون




<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%Session.CodePage = 65001%>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
dbFldr = "C:\Inetpub\wwwroot\db1.mdb"
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn = strConn & (dbFldr )
objConn.open strconn
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = "" *************************

If lcase(Request.ServerVariables("REQUEST_METHOD")) = "post" Then
CheckLogin
Else
Response.Redirect "login.html"
End If

Sub CheckLogin
username = replace(request.form("username"), "'", "''") ********************
password = replace(request.form("userpwd"), "'", "''")
strsql = "select username, password from users where username = '" & username & "' and password = '" & password & "';"
Set rs = objconn.execute(strsql)
If Not rs.Eof then
Session("UserLoggedIn") = "true" **********************
Response.Redirect "userpage.asp"
Else
Response.Write("Login Failed.<br><br>")

End If
rs.Close
Set rs = Nothing
End Sub
%>

aryaei2000
جمعه 02 بهمن 1388, 14:25 عصر
سلام



Session("UserLoggedIn") = ""

این خط مقدار متغیر session (ی) بنام UserLoggedIn را برابر خالی (Empty) قرار میدهد.



username = replace(request.form("username"), "'", "''")

در این خط کاراکتر ' با " تعویض میشود تا از تزریق Query (SQL injection) جلوگیری بعمل بیاد.



Session("UserLoggedIn") = "true"

در اینجا هم متغیر Session("UserLoggedIn") با مقدار true یا صحیح ارزش دهی میشود.
موفق باشید.

siamak-s
شنبه 03 بهمن 1388, 00:20 صبح
با سلام خدمت مدیر این بخش

همون طور که در جریان هستید ، تاپیک دیگه ای من دارم که داره به موازات این تاپیک جلو میره کنجکاو شدم که چه طور هست که یک تاپیک به این سادگی یعنی وصل شدن به بانک اون هم اکسس 9 صفحه ادامه داشته که اومدم و کل پست ها رو خوندم ، به عنوان کاربر دوست داشتم مطالبی بگم البته اگر مشکلی نباشه:
اولا اینکه اصلا محتویات این تاپیک از صفحات 3 به بعد هیچ ربطی به موضوع تاپیک نداره و این یعنی نقض قانون.
دوم اینکه ایشان پست های بیهوده زیاد میفرستند ، با وجود اینکه شما تقریبا از هر 3 پست ایشان 2 تاشو حدف کردید باز هم الباقی بیهوده هستند! در حالی که می تونند از ویرایش استفاده کنند.
مورد سوم اینکه شما تا کی می خواهید پاسخ این سوالات به این سادگی رو بدید؟ به نظر شما تموم هم میشه؟ فکر می کنید سوالات به این آسانی که در هر Refrence ای پاسخش هست تموم میشه؟

و خدمت این کاربر عزیز هم عرض کنم : اولا که شما این طوری به هیچ جا نمی رسی، دوم اینکه شما که ASP Classic بلد نیستید چرا اومدید توی این تالار چرا تو PHP سوالاتتون رو مطرح نکردید؟ بهتره بگم چرا قصد نکردید PHP یاد بگیرید! سوم اینکه اگر واقعا قصد یاد گرفتن دارید http://w3schools.com/asp/default.asp این آدرس می تونه به شما یاد بده ، بعد از اینکه یاد گرفتید سوالاتتون رو مطرح کنید.

در هر صورت امیدوارم از حرف های من ناراحت نشده باشید.

aryaei2000
یک شنبه 04 بهمن 1388, 18:42 عصر
با سلام


با سلام خدمت مدیر این بخش

همون طور که در جریان هستید ، تاپیک دیگه ای من دارم که داره به موازات این تاپیک جلو میره کنجکاو شدم که چه طور هست که یک تاپیک به این سادگی یعنی وصل شدن به بانک اون هم اکسس 9 صفحه ادامه داشته که اومدم و کل پست ها رو خوندم ، به عنوان کاربر دوست داشتم مطالبی بگم البته اگر مشکلی نباشه:
اولا اینکه اصلا محتویات این تاپیک از صفحات 3 به بعد هیچ ربطی به موضوع تاپیک نداره و این یعنی نقض قانون.

اصلا اینطور نیست.سوالات ایشون از صفحه ی سه به بعد درباره دستور Insert اکسس هست که به مبحث اتصال به بانک اکسس مربوط میشه.


دوم اینکه ایشان پست های بیهوده زیاد میفرستند ، با وجود اینکه شما تقریبا از هر 3 پست ایشان 2 تاشو حدف کردید باز هم الباقی بیهوده هستند! در حالی که می تونند از ویرایش استفاده کنند.
مورد سوم اینکه شما تا کی می خواهید پاسخ این سوالات به این سادگی رو بدید؟ به نظر شما تموم هم میشه؟ فکر می کنید سوالات به این آسانی که در هر Refrence ای پاسخش هست تموم میشه؟

اگر کسانی نباشند که پاسخ این سوالات ساده رو بدهند پس افرادی که سوال دارند چه کار کنند؟
یادتون باشه که این سوالات از دید شما ساده هستند.


و خدمت این کاربر عزیز هم عرض کنم : اولا که شما این طوری به هیچ جا نمی رسی، دوم اینکه شما که ASP Classic بلد نیستید چرا اومدید توی این تالار چرا تو PHP سوالاتتون رو مطرح نکردید؟ بهتره بگم چرا قصد نکردید PHP یاد بگیرید! سوم اینکه اگر واقعا قصد یاد گرفتن دارید http://w3schools.com/asp/default.asp این آدرس می تونه به شما یاد بده ، بعد از اینکه یاد گرفتید سوالاتتون رو مطرح کنید.

در هر صورت امیدوارم از حرف های من ناراحت نشده باشید.

جواب این سوال به خودشون ربط داره نه به من و شما.
در باره اون سایت هم باید بگم که چون به زبان لاتین نوشته شده همه امکان استفاده از اون رو ندارن.من در اولین پست خودم میتونستم لینک این سایت رو بدم و برم اما اینجوری ایشون سر در گم میشدند.

siamak-s
یک شنبه 04 بهمن 1388, 22:51 عصر
من اصلا دوست ندارم بحث كنم يا بخوام حرفي رو يه ديگرون ثابت كنم فقط عقيده ام رو مي گم.

با توجه به اين جوابايي كه شما داديد ، من يك سوال مي پرسم(!) ، گوگل براي چي اختراع شده پس!؟

در هر صورت شما مديربخش هستيد وبهتر مي دونيد ولي چيزي كه هست اينه كه جواب همه ي اين سوال ها تو همين بخش بوده ، حالا اگر ايشان علاقه اي ندارند سري به اينترنت بزنن ، ديگه!