PDA

View Full Version : سیستم مدیریت محتوای وب - قسمت اول



mehdvirus
جمعه 02 دی 1384, 15:31 عصر
سلام:D
تو این مجموعه آموزشی میخوام اموزش ساخت یک سی ام اس خیلی ساده رو براتون بگم
فکر نمیکنم تو اینترنت مقالات زیادی درباره این باشه من که هیچی پیدا نکردم .
لازمه که بگم ما از وی بی برا کد نویسی استفاده میکنیم و سی شارپ کارها خیلی راحت میتونن به سی شارپ تبدیل کنن بهر حال اگه کسی خواست با سی شارپ هم میگم طبیعی است که لازمه درک این مقاله آگاهی هرچند جزئی از وی بی و اچ تی ام ال و ای اس پی دات نت هست
خوب CMS ما خیلی ساده خواهد بود و همینطور از اکسس استفاده خواهیم کرد که خودتون هم میتونید خیلی ساده با کمی تغییرات برا SQLDB هم بنویسید .
خوب اول دیتابیسمون رو میسازیم پس اکسس رو باز کنیم و یه دیتابیس با اسم db بسازید حالا یک جدول با اسم tblUser بسازید
و توش سه تا فیلد با اسم های id , U_Name , U_Password بسازید خاصیت ایدی رو هم اتو نامبر بزارید.
خوب این از فایل دیتابیسمون حالا میرسیم به تنظیمات وب کانفیگ پس باز کنید و خط زیر رو بهش اضافه کنید


<appSettings>

<add key="dbpath" value="Provider = Microsoft.Jet.OLEDB.4.0;Data Source=E:\Inetpub\wwwroot\mycms\db.mdb;User ID=Admin;Password=;" />
</appSettings>

فقط دقت کنید که این کد رو بین <configuration> و <system.web> باید قرار بدید .یعنی زیر کانفیگوریشن و سیستم. وب .
این کار کارمارو خیلی راحت میکنه و دفعات بعد هروقت که نیاز به استفاده از دیتابیس داشتیم کافیه اونو صدا بزنیم که با اسم dbpath مشخص کردیم .
حالا میرسیم به ساخت صفحه لاگین :
دوباره به دیتابیسمون برمیگردیم تا یک کوئری در اون بنویسیم این کوئری وظیفه چک کردن یوزر نیم و پسورد رو در دیتابیس بر عهده داره . خوب به قسمت کوئری برید و Create Query in design view رو اجرا کنید براتون یه پنجره باز میشه که جدول مورد نظر رو انتخاب کنید نیازی نیست کلوز رو بزنید چون بعدا خودمون تعیین میکنیم سپس در قسمتی که خالی هست راست کلیک کرده و SQLView رو انتخاب کنید و این کد هارو داخلش قرار بدید :


SELECT COUNT(*) AS Num_of_User
FROM tblUser
WHERE (((tblUser.U_Name)=[@UserName]) AND ((tblUser.U_Password)=[@Password]));

خوب حالا با اسم login_validator ذخیره کنید و خارج بشید کارمون با دیتابیس تا اینجا تموم شد .
حالا ویژوال استودیو رو باز کنید و یه پروژه ASP.Net با زبان وی بی انتخاب کنید اسمشو هرچی میخواهید بزارید
خوب حالا روی WebPage1 راست کلیک کنید و تغییر نام بدید به Login حالا از منو Project-Add WebPage رو انتخاب کنید و اسمشو Admin بزارید و خوب حالا به صفحه لاگین بروید و روی فرم دابل کلیک کنید تا به قسمت CodeBehind برویم حالا این کلاس هارو باید صدا بزنیم این کد هارو در بالای صفحه قرار بدید


Imports System.Data
Imports System.Data.OleDb

این کلاس ها برای ارتباط با دیتابیس هستن حالا باید تابع چک کردن یوزر نیم و پسورد رو بنویسیم


Function DBConnection(ByVal strUserName As String, ByVal strPassword As String) As Boolean
Dim MyConn As OleDbConnection = New OleDbConnection(ConfigurationSettings.AppSettings("dbpath"))

Dim MyCmd As New OleDbCommand("login_validator", MyConn)

MyCmd.CommandType = CommandType.StoredProcedure
Dim objParam1, objParam2 As OleDbParameter
objParam1 = MyCmd.Parameters.Add("@UserName", OleDbType.Char)
objParam2 = MyCmd.Parameters.Add("@Password", OleDbType.Char)

objParam1.Direction = ParameterDirection.Input
objParam2.Direction = ParameterDirection.Input
objParam1.Value = strUserName
objParam2.Value = strPassword

Try
If MyConn.State = ConnectionState.Closed Then
MyConn.Open()
End If

Dim objReader As OleDbDataReader
objReader = MyCmd.ExecuteReader(CommandBehavior.CloseConnectio n)

While objReader.Read()
If CStr(objReader.GetValue(0)) <> "1" Then
lblMessage.Text = "You Can not login-Get Out"
Else
objReader.Close()
Return True
End If
End While
Catch ex As Exception
lblMessage.Text = "Error Connecting to Database!"
End Try


End Function

فکر نمیکنم زیاد نیاز به توضیح این تابع باشه بهر حال اگه سوالی داشتین میتونید بپرسید
حالا روی فرم مون باید چند تا کنترل قرار بدیم یک دکمه بزارید و اسمشو تغییر ندید و دو تا تکست باکس و یک لیبل
اسم تکست باکس هارو بزارید txtPass و txtuserID و اسم لیبل رو بزارید lblMessage خوب حالا میمونه کد دکمه و تمام .
خودتون کنترل هارو با سلیقه خودتون بچینید یکی از تکست باکس ها برا یوزر نیم و یکی برا پسورد و دکمه هم برا تایید هستش
حالا روی دکمه دابل کلیک کنید تا قسمت کد نویسی مربوط به باتن باز بشه حالا کد زیر رو توش قرار بدین


If Page.IsValid Then
If DBConnection(txtuserID.Text.Trim(), txtPass.Text.Trim()) Then
Session("User") = txtuserID.Text
Session("pass") = txtPass.Text
Response.Redirect("admin.aspx")
Else

lblMessage.Text = "Wrong Username/Password Please try again."

End If
End If

خوب خط اول اعتبار کنترل هارو چک میکنه و در خط دوم با استفاده از تابعی که ساختیم یوزر نیم و پسورد وارد شده رو چک میکنیم اگه درست بود یوزر و پس رو داخل سیژن قرار میدیم چون بعدا باهاشون کار داریم و بعد صفحه رو به ادمین دایرکت میکنیم در غیر اینصورت پیام یوزر نیم و پسورد اشتباه است نمایش داده خواهد شد .
تا اینجا ما قسمت اصلی برناممون رو ساختیم وقتی وارده صفحه لاگین میشیم ازمون یوزر و پسورد میخواد که اگه درست باشه مارو به صفحه ادمین میبره ولی یه اشکالی هست اگه کاربر بیاد و مستقیم تو ادرس بنویسه admin.aspx چی؟ اونوقت صفحمون باز میشه و تمام زحمات ما به هوا میره پس یجوری باید یوزر نیم رو چک کنیم بخاطر همین بود که پسورد رو داخل سیژن قرار دادیم
حالا به صفحه ادمین برید و روی فرم دابل کلیک کنید و داخل فرم لود کد زیر رو بزارید


If Session("pass") = "" Then
Response.Redirect("login.aspx")
End If
If Not Page.IsPostBack Then
Label1.Text = " Welcome " & Session("User")
End If

خوب ما در سطر اول چک میکنیم ببینیم داخل سیژن مون خالی هست یعنی یعنی چک میکنیم ببینیم یوزر نیمی وارد شده یا نه ؟!!
اگه وارد نشده باشه دوباره به صفحه لاگین میفرستیمش در غیر اسنصورت به خط بعدی میریم و اول چک میکنیم ببینیم صفحه پست بک نباشه و اگه نبود میایم به یوزر نیم خوش آمد میگیم برا این کار رو صفحه یه لیبل با اسم Label1 قرار بدید . حالا ما تو این خط میایم


Label1.Text = " Welcome " & Session("User")

و میگیم لیبل مارو برابر با خوش آمدی + یوزری که در صفحه قبل گرفتی و درون سیژن قرار دادی بزار .
خوب تموم شد و الان میتونید تست کنید.
پیوست : میدونم شاید یکمی گیج کننده باشه ولی اگه متوجه نشدید برای فهمیدن این مقاله نیاز به کمی اطلاع درباره ASP.net هستش و بهتره به آموزش هایی که در این مورد هست و حتی فارسی هم هست مراجعه کنید بعد اقدام به خوندن این مقاله کنید میتونید به www.Iranasp.net که یکی از این سایتهای خوب در زمینه ASP.Net هستش مراجعه کنید
هرگونه سوالی درباره این مقاله داشتید میتونید همینجا بپرسید

mehdvirus
شنبه 03 دی 1384, 08:23 صبح
بیشتر از اینا انتظار میرفت:(

iekrang
شنبه 03 دی 1384, 08:29 صبح
جالب بود.
امیدوارم که این حرکت انسان دوستانتون مداوم باشه:لبخند::تشویق:
موفق باشید.

mehdvirus
شنبه 03 دی 1384, 15:12 عصر
ممنون کاش بقیه دوستان هم همچین نظری داشتن http://asefsoft.com/qsimages/80.gif

JikSearch
یک شنبه 04 دی 1384, 08:50 صبح
جالب بود دست شما درد نکنه
فقط زحمت بکشید برای نوشتن کر ها از تگ نقل قول استفاده نکنید همان تگ "کد" را قرار دهید که راست چین نشود.


بیشتر از اینا انتظار میرفت:(
گر تو بهتر می زنی بستان بزن

mehdvirus
یک شنبه 04 دی 1384, 20:58 عصر
گزاشتم نشد
خراب شد مجبور شدم از این استفاده کنم