برگزیده های پرشین تولز

CMS های دات نتی ، معرفی ، اخبار ؛ آموزش

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
سلام
تو اين مجموعه آموزشي ميخوام اموزش ساخت يك سي ام اس خيلي ساده رو براتون بگم
فكر نميكنم تو اينترنت مقالات زيادي درباره اين باشه من كه هيچي پيدا نكردم .
لازمه كه بگم ما از وي بي برا كد نويسي استفاده ميكنيم و سي شارپ كارها خيلي راحت ميتونن به سي شارپ تبديل كنن بهر حال اگه كسي خواست با سي شارپ هم ميگم طبيعي است كه لازمه درك اين مقاله آگاهي هرچند جزئي از وي بي و اچ تي ام ال و اي اس پي دات نت هست
خوب CMS ما خيلي ساده خواهد بود و همينطور از اكسس استفاده خواهيم كرد كه خودتون هم ميتونيد خيلي ساده با كمي تغييرات برا SQLDB هم بنويسيد .
خوب اول ديتابيسمون رو ميسازيم پس اكسس رو باز كنيم و يه ديتابيس با اسم db بسازيد حالا يك جدول با اسم tblUser بسازيد
و توش سه تا فيلد با اسم هاي id , U_Name , U_Password بسازيد خاصيت ايدي رو هم اتو نامبر بزاريد.
خوب اين از فايل ديتابيسمون حالا ميرسيم به تنظيمات وب كانفيگ پس باز كنيد و خط زير رو بهش اضافه كنيد
PHP:
 <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 رو انتخاب كنيد و اين كد هارو داخلش قرار بديد :
PHP:
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 برويم حالا اين كلاس هارو بايد صدا بزنيم اين كد هارو در بالاي صفحه قرار بديد
PHP:
Imports System.Data
Imports System.Data.OleDb
اين كلاس ها براي ارتباط با ديتابيس هستن حالا بايد تابع چك كردن يوزر نيم و پسورد رو بنويسيم
PHP:
 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.CloseConnection)

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 خوب حالا ميمونه كد دكمه و تمام .
خودتون كنترل هارو با سليقه خودتون بچينيد يكي از تكست باكس ها برا يوزر نيم و يكي برا پسورد و دكمه هم برا تاييد هستش
حالا روي دكمه دابل كليك كنيد تا قسمت كد نويسي مربوط به باتن باز بشه حالا كد زير رو توش قرار بدين
PHP:
 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 چي؟ اونوقت صفحمون باز ميشه و تمام زحمات ما به هوا ميره پس يجوري بايد يوزر نيم رو چك كنيم بخاطر همين بود كه پسورد رو داخل سيژن قرار داديم
حالا به صفحه ادمين بريد و روي فرم دابل كليك كنيد و داخل فرم لود كد زير رو بزاريد
PHP:
If Session("pass") = "" Then
Response.Redirect("login.aspx")
End If
If Not Page.IsPostBack Then
Label1.Text = " Welcome " & Session("User")
End If
خوب ما در سطر اول چك ميكنيم ببينيم داخل سيژن مون خالي هست يعني يعني چك ميكنيم ببينيم يوزر نيمي وارد شده يا نه ؟!!
اگه وارد نشده باشه دوباره به صفحه لاگين ميفرستيمش در غير اسنصورت به خط بعدي ميريم و اول چك ميكنيم ببينيم صفحه پست بك نباشه و اگه نبود ميايم به يوزر نيم خوش آمد ميگيم برا اين كار رو صفحه يه ليبل با اسم Label1 قرار بديد . حالا ما تو اين خط ميايم
PHP:
Label1.Text = " Welcome " & Session("User")
و ميگيم ليبل مارو برابر با خوش آمدي + يوزري كه در صفحه قبل گرفتي و درون سيژن قرار دادي بزار .
خوب تموم شد و الان ميتونيد تست كنيد.
پيوست : ميدونم شايد يكمي گيج كننده باشه ولي اگه متوجه نشديد براي فهميدن اين مقاله نياز به كمي اطلاع درباره ASP.net هستش و بهتره به آموزش هايي كه در اين مورد هست و حتي فارسي هم هست مراجعه كنيد بعد اقدام به خوندن اين مقاله كنيد ميتونيد به www.Iranasp.net كه يكي از اين سايتهاي خوب در زمينه ASP.Net هستش مراجعه كنيد
هرگونه سوالي درباره اين مقاله داشتيد ميتونيد همينجا بپرسيد


(قسمت دوم)

http://forum.persiantools.com/showthread.php?t=33845
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
اگه علاقه مند زياد بود و نظرات خوب بود بقيشم ميگم
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
عالیست!
وقتی پستی زده نمیشه معنیش اینه که استاد داره درس میده و بقیه دارن گوش میدن. لطفا ادامه بدین تا همه استفاده کنیم.
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
منم ميگم خوبه
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
به نقل از amironline :
منم ميگم خوبه ولي نه اينجا چون اگه اشتباه نكنم اينجا واسه ASP بيد
شايدم من اشتباهي اومدم
خوب asp ئه ديگه !
کجا بايد باشه مگه؟
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
به نظر من عنوانش بايد آموزش ASP باشه حالا ميشه شامل قسمتهاي ديگه باشه
يه تاپيك هم بزنيم راجع به اينكه يه CMS چه جوري بشه و چه چيزهايي داشته باشه
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
نه من كه نميخوام آموزش asp بدم
چون به اندازه كافي منبع هست
ميخوام فقط بگم چجوري يه سي ام اس ميسازن همين كه من هرچي گشتم چيزي پيدا نكردم براي پي اچ پي خيلي زياده ولي برا دات نت اصلا
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
پس اگه صلاح بدونين ديگه كد نزارين و راجع به اينكه CMS چه كارايي انجام بده صحبت كنيم هركي هر كجا دوست داشته باشه پياده سازي كنه يكي ASP يكي ASP.Net ويكي ديگه php
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
ميتوني يه تاپيك ديگه بزني
39.gif

فكر نميكنم ناقص گزاشتنش صحيح باشه بخاطر اون مجبورم ادامشم بگم كه احتمالا يكي يا دوتا آموزش بشه
40.gif
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
ميتوني يه تاپيك ديگه بزني
فكر نميكنم ناقص گزاشتنش صحيح باشه بخاطر اون مجبورم ادامشم بگم كه احتمالا يكي يا دوتا آموزش بشه
همين كار رو ميكنم
107.gif

ولي بايد شما اسم اينجا رو عوض كني
122.gif
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از mehdvirus :
براي پي اچ پي خيلي زياده ولي برا دات نت اصلا

یعنی چی اصلا !!
http://www.dotnetnuke.com
کاملا اوپن سرس کاملا مجانی ! نسخه دات نتی اه phpnuke که فارسی هم شده و همه جا هست !!
در ضمن به نظر من این چیزی نیست که بشه آموزش داد چون برای ساختنش باید بتونی تمام چیز های معمول روی وب رو بسازی ! یه وبلاگ ، یه فروم ، یه گالری ، لینکسان ..... بگیر تا آخر

مثه اینکه بگی میخوام طریقه ساختن خودرو رو آموزش بدم !! ضبتش ، شیشش ، موتور استارتش، باطریش ....

در ضمن این روش لاگین ساختن مربوط به Asp اه نه asp.net برای لاگین توی asp.net معمولا از روش Authentication استفاده میکنن که دیگه لازم نیست توی همه صفحه ها چک کنی ببینی کاربر لاگین کرده یا نه ! فقط توی web.config هر دایرکتوری تعیین میکنی که دسترسی به این دایرکتوری برای چه نوع کابری مجازه ! (به این میگن زیبایی دات نت ! )

بازم خودت میدونی موفق باشی !!!
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خوب منظور من مقاله اموزشي بوده نه پروجه
تازه خوب شما اين روش رو هم بگيد من بلد نيستم ياد بگيرم
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
در ضمن به نظر من این چیزینیست که بشه آموزش داد چون برای ساختنش باید بتونی تمام چیز های معمول روی وب رو بسازی ! یه وبلاگ ، یه فروم ، یه گالری ، لینکسان ..... بگیر تا آخر

مثه اینکه بگی میخوام طریقه ساخن خودرو رو آموزش بدم !! ضبتش ، شیشش ، موتور استارتش، باطریش ....

شديدا تاييد ميشه
منم گفتم كه بيايبن بگيم يه CMS چه چيزايي بايد داشته باشه و چه كارايي بايد انجام بده
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از mehdvirus :
خوب منظور من مقاله اموزشي بوده نه پروجه
تازه خوب شما اين روش رو هم بگيد من بلد نيستم ياد بگيرم

به دوستان شدیدا توصیه میکنم که این مقاله آموزشی به زبان فارسی رو بخونن :


تاييد و شناسايی کاربران بر اساس فرمهای وب در برنامه‎های ASP.NET



چون متاسفانه بسیاری از برنامه هایی که برای اصلاح یا ارتقا از زیر دست من رد میشه (و برنامه نویسش مفقود الاثر شده !!) و یا وقتی از من دوستان سوال میکنن میبینم که گاها حتی برنامه نویس های متوسط سطح بالا هم هنوز از روش قدیمی برای ساختن لاگین استفاده میکنن !! :(
روش به این راحتی !حیف نیست ! دیگه مشکلات روش قدیمی رو هم نداره !
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
به دوستان شدیدا توصیه میکنم که این مقاله آموزشی به زبان فارسی رو بخونن :
روش به این راحتی !حیف نیست ! دیگه مشکلات روش قدیمی رو هم نداره !
اين روش فقط تو ASP.Net هستش و تو ASP چنين امكاني نيست؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
اطفا اجازه بدین mehdvirus کار خودش رو ادامه بده!

ایشون مطالب خودش رو برای افراد غیرحرفه ای تنظیم کرده - پیشنهاد میکنم میزان مفید بودن این مبحث رو بعهده کسانی بگذاریم که از این مطالب استفاده میکنن و اگر هر کدوم از ما روش بهتری سراغ داره میتونه تاپیک جدیدی باز کنه و روش آموزشی خودش رو اونجا پیاده کنه.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
سلام
قسمت دوم آموزشمون اختصاص داره به بخش مديريتي سيستممون يهني ميخوايم قسمت ارسال متن ، ويرايش متن ، حذف متن رو بگم و پيج كردن اطلاعات در صفحه اول سايتمون لازمه اين قسمت آشنايي با دستورات اس كيو ال هست.
خوب اول صفحه اولمون رو ميسازيم
اينبار بجاي استفاده از كد بيهايند از قسمت اچ تي ام ال برا نوشتن كدهامون استفاده ميكنيم ، نگران نباشيد خيلي شبيه كد بيهايند هستش . پس كد هاي زير رو بعد از تگ <Head> قرار بديد
کد:
<script runat="server">

Sub Page_Load(Src As Object, E As EventArgs)
   Dim Conn As New OleDbConnection(ConfigurationSettings.AppSettings("dbpath"))
        Dim strSQL As String = "Select top 10 * from Content order by ID desc"
        Dim Cmd As New OleDbCommand(strSQL, Conn)



        Conn.Open()
        myRepeater.DataSource = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
        myRepeater.DataBind()

        Conn.Close()
end sub



</script>
همونطور كه ميبينيد بايد تگ اسكريپت رو اول و اخر كدمون قرار بديم تا معلوم بشه كه اين قسمت جز كدهاي اصلي مون هستن كه بايد اجرا بشن. فكر نميكنم احتياج به توضيح بيشتري باشه اومديم يه كانكشن ايجاد كرديم
و ادرس ديتابيس رو داديم و با يه دستور اس كيو ال 10 نوشته آخر رو صدا ميزنيم
حالا ميرسيم به كدي كه بايد اطلاعاتي رو كه از داخل ديتا بيس در بالا كشيديم بيرون بريزيم رو صفحه اين كارو با كنترل ريپيتر ميكنيم اين كد اينكارو انجام ميده
کد:
<%# Container.DataItem("content") %>
همونطور كه ميبينيد ما قسمت كانتنت رو صفحه ميريزيم و در كد بعدي ما عنوان رو هم اضافه ميكنيم
ولي وقتي اينكارو بكنيم نوشته ها بصورت خيلي ساده روي صفحات ريخته ميشن من بخاطر همين اومدم و كمي قشنگ تر كردم و درون جدول قرار دادم حالا اين كد رو بعد از تگ بادي قرار بديد
کد:
	<TABLE height="624" cellSpacing="0" cellPadding="0" width="262" border="0" ms_2d_layout="TRUE">
			<TR>
				<TD width="0" height="0"></TD>
				<TD width="10" height="0"></TD>
				<TD width="252" height="0"></TD>
			</TR>
			<TR vAlign="top">
				<TD width="0" height="15"></TD>
				<TD colSpan="2" rowSpan="2">
					<form id="Form1" runat="server">
						<TABLE height="245" cellSpacing="0" cellPadding="0" width="612" border="0" ms_2d_layout="TRUE">
							<TBODY>
								<TR vAlign="top">
									<TD width="10" height="15"></TD>
									<TD width="602"></TD>
								</TR>
								<TR vAlign="top">
									<TD height="230"></TD>
									<TD>
										<asp:repeater id="myRepeater" runat="server">
											<HeaderTemplate>
												<div align="right">
													<table bordercolor="#008000" border="1" bordercolordark="#008080" bordercolorlight="#008000"
														align="right" width="500" height="53">
											</HeaderTemplate>
											<ItemTemplate>
												<tr>
													<th bordercolor="#008000" bordercolorlight="#808000" bordercolordark="#800080" bgcolor="#FFEAEB"
														height="22" dir="rtl" valign="top" style="border-bottom-style: none; border-bottom-width: medium">
														<p dir="rtl"><%# Container.DataItem("title") %>
													</th>
												</tr>
												<tr>
													<td bordercolor="#008000" bordercolorlight="#000080" height="19" style="border-top-style: none; border-top-width: medium">
														<p dir="rtl"><%# Container.DataItem("content") %>
													</td>
												</tr>
											</ItemTemplate>
											<FooterTemplate>
						</TABLE>
					</div> </FooterTemplate> </asp:repeater></TD>
			</TR>
		</TABLE>
		</FORM></TD></TR>
خوب الان قسمت صفحه اصليمون تموم شد انام اين صفحه رو ايندكس بزاريد و خارج بشيد.
حالا يه صفحه ديگه درست كنيد و اين صفحه صفحه ارسال اطلاعات ما خواهد بود .
يك تكست باكس روي صفحه قرار بدين اين عنوان متن ما خواهد بود و يك تكست باكس ديگر قرار بدين و سايزشو بزرگتر كنيد و مالتي لاين كنيدش يدونه هم دكمه بزاريد رو صفحه .
حالا رو دكمه دابل كليك كنيد و اينو بنويسيد توش
کد:
    Dim cn As New OleDb.OleDbConnection
        Dim cm As New OleDb.OleDbCommand
        Dim title As String = TextBox1.Text
        Dim content As String = TextBox2.Text

        Try
            cn.ConnectionString = ConfigurationSettings.AppSettings("dbpath")
            cn.Open()
            cm.Connection = cn
            If Request.QueryString("id") <> "" Then
                cm.CommandText = "Update Content Set Title='" & title & "', content='" & content & "' " & "Where id=" & Request.QueryString("id")
                lblMsg.Text = "Content Record is updated successfully"
            Else
                cm.CommandText = "Insert Into Content (title,content)" & " Values('" & title & "','" & content & "')"
                lblMsg.Text = "Content Record is inserted successfully"
            End If
            cm.ExecuteNonQuery()

        Catch ex As Exception
            lblMsg.Text = ex.Message
        End Try
دوباره يه كانكشن تعريف كرديم و عنوان و متن رو با يه شماره اي دي تو ديتا بيسمون ذخيره كرديم
اگه موفق به ذخيره شد به كاربر يه پيغام نشون ميديم. حالا ميخوايم يه كار جالب بكنيم ميخوايم وقتي تو صفحه ويرايش متن وقتي نوشته مورد نظرمون رو انتخاب كرديم به اين صفحه لينك بديم و همينجا دوباره ذخيره كنيمش براي اينكار به قسمت كد نويسي فرم لود بريد و اين كد رو بريزيد توش :
کد:
    If Session("pass") = "" Then
            Response.Redirect("adgod.aspx")
        Else

        If Request.QueryString("id") <> "" And Not IsPostBack() Then
            Dim cn As New OleDb.OleDbConnection
            Dim cm As New OleDb.OleDbCommand
            Dim dr As OleDb.OleDbDataReader

            Try
                    cn.ConnectionString = ConfigurationSettings.AppSettings("dbpath")
                cn.Open()
                cm.Connection = cn
                cm.CommandText = "Select * From content Where id=" & Request.QueryString("id")
                dr = cm.ExecuteReader()
                dr.Read()
                    TextBox1.Text = dr.GetValue(2)
                    TextBox2.Text = dr.GetValue(1)

            Catch ex As Exception
                lblmsg.Text = ex.Message
            End Try

        End If
        End If
خوب اول چك ميكنيم ببينيم ايا كاربر معتبر هست يعني ادمين هست يا نه ؟!!! بعد با استفاده از دستور
کد:
Request.QueryString("id")
شماره ايدي نوشته اي رو كه در صفحه ويرايش انتخاب كرديم به ديتابيس ميديم تا اطلاعات رو تو صفحه ارسال متنمون بريزه و ما بتونيم ويرايش كنيم اين دستور اس كيو ال اينكارو برامون ميكنه
کد:
Select * From content Where id=
خوب قسمت ارسال متن هم تموم شد ميرسيم به صفحه ويرايش سايتمون !
برا اين قسمت از يه ديتا ليست استفاده ميكنيم
اين كد رو تو قسمت اچ تي ام ال قرار بديد تا كنترل ها خودشون درست بشن
کد:
<form id="Form1" method="post" runat="server">
			<asp:label id="lblMsg" style="Z-INDEX: 101; LEFT: 32px; POSITION: absolute; TOP: 64px" runat="server"
				Width="176px"></asp:label><asp:panel id="Panel1" style="Z-INDEX: 101; LEFT: 848px; POSITION: absolute; TOP: 88px" runat="server"
				Width="128px" Height="335px" BackColor="White" BorderStyle="Groove" BorderColor="#8080FF">
				<uc1:amenu id="Amenu1" runat="server"></uc1:amenu>
			</asp:panel>
		<asp:datalist id="DataList1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 96px" runat="server"
			RepeatDirection="Horizontal" RepeatColumns="1" Width="424px" Height="184px">
			<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
			<HeaderTemplate>
				Edit Contents
			</HeaderTemplate>
			<ItemStyle ForeColor="Black"></ItemStyle>
			<ItemTemplate>
				<TABLE id="Table1" style="WIDTH: 432px; HEIGHT: 23px" cellSpacing="0" cellPadding="0" width="432"
					border="0">
					<TR>
						<TD style="WIDTH: 52px">
							<asp:ImageButton id="Imagebutton5" runat="server" ImageUrl="images\button_edit.png" CommandArgument="1"
								CommandName="Edit"></asp:ImageButton>
							<asp:LinkButton id=LinkButton1 runat="server" CommandArgument='<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"id")%>' CommandName="Edit">Edit</asp:LinkButton></TD>
						<TD style="WIDTH: 64px">
							<asp:ImageButton id="Imagebutton6" runat="server" ImageUrl="images\button_empty.png" CommandArgument="1"
								CommandName="Delete"></asp:ImageButton>
							<asp:LinkButton id=LinkButton2 runat="server" CommandArgument='<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"id")%>' CommandName="Delete">Delete</asp:LinkButton></TD>
						<TD>
							<asp:Label id="Label3" runat="server">
								<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"Title")%>
							</asp:Label></TD>
					</TR>
				</TABLE>
			</ItemTemplate>
			<FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
			<SeparatorTemplate>
				<HR width="100%" SIZE="1">
			</SeparatorTemplate>
			<HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#4A3C8C"></HeaderStyle>
			<AlternatingItemTemplate>
				<TABLE id="Table2" style="WIDTH: 432px; HEIGHT: 23px; BACKGROUND-COLOR: aliceblue" cellSpacing="0"
					cellPadding="0" width="432" border="0">
					<TR>
						<TD style="WIDTH: 52px">
							<asp:ImageButton id="Imagebutton3" runat="server" ImageUrl="images\button_edit.png" CommandArgument="1"
								CommandName="Edit"></asp:ImageButton>
							<asp:LinkButton id=Linkbutton5 runat="server" CommandArgument='<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"id")%>' CommandName="Edit">Edit</asp:LinkButton></TD>
						<TD style="WIDTH: 64px">
							<asp:ImageButton id="Imagebutton4" runat="server" ImageUrl="images\button_empty.png" CommandArgument="1"
								CommandName="Delete"></asp:ImageButton>
							<asp:LinkButton id=Linkbutton6 runat="server" CommandArgument='<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"id")%>' CommandName="Delete">Delete</asp:LinkButton></TD>
						<TD>
							<asp:Label id="Label2" runat="server">
								<%# DataBinder.EVal(CType(Container, DataListItem).DataItem,"Title")%>
							</asp:Label></TD>
					</TR>
				</TABLE>
			</AlternatingItemTemplate>
		</asp:datalist></FORM></form>
ميدونيد كه بايد بعد از بادي قرار بديد در اينجا هم از كانتينر استفاده ميكنيم تا عنوان رو بكشيم بيرون .
خوب حالا به كد بيهايند قسمت فرم لود ميريم و كد زير رو توش قرار ميديم
کد:
If Session("pass") = "" Then
            Response.Redirect("adgod.aspx")
        Else

        Dim cn As New OleDb.OleDbConnection
        Dim cm As New OleDb.OleDbCommand
        Dim dr As OleDb.OleDbDataReader

        Try
            cn.ConnectionString = ConfigurationSettings.AppSettings("dbpath")
            cn.Open()
            cm.Connection = cn
            If Request.QueryString("delid") <> "" Then
                cm.CommandText = "DELETE From Content Where ID=" & Request.QueryString("delid")
                cm.ExecuteNonQuery()
                'lblMsg.Text = "Content Deleted: " & Request.QueryString("delid")
            End If
            cm.CommandText = "Select id as id,title as title,left(content,50) as Content From content"
            dr = cm.ExecuteReader()
            DataList1.DataSource = dr
            DataList1.DataBind()


        Catch ex As Exception
            '   lblMsg1.Text = ex.Message
            End Try
        End If
در اينجا 50 نوشته اخر رو ليست ميكنيم.
و قسمتي رو براي فرستادن فرمان به همين صفحه براي پاك كردن گزاشتيم (delid)
حالا رو ليست دابل كليك كنيد تا قسمت كد نويسي DataList1_ItemCommand باز بشه و كد زير رو توش قرار بديد
کد:
Select Case e.CommandName
            Case "Edit"
                Response.Redirect("adminstory.aspx?id=" & e.CommandArgument)
            Case "Delete"
                'lblMsg.Text = "Delete: " & e.CommandArgument
                Response.Redirect("editstory.aspx?delid=" & e.CommandArgument)
        End Select
اين كد شماره نوشته رو به صفحه ارسال متن ميفرسته و قسمت دومش فرماني رو به همين صفحه ميده تا نوشته رو پاك كنه .
در ضمن اين صفحه رو اسمشو editstory بزاريد و صفحه ارسال متن رو adminstory بزاريد.
خوب تموم شد هدف فقط ساخت يك سيستم مديريت محتوا ساده بود شما اگه كمي با اي اس پي دات نت اشنا بوديد الان ميتونيد خودتون يك سيستم مديريت بسازيد خودتون ميتونيد بخش لينكدوني رو اضافه كنيد و خيلي بخشهاي ديگه با همين روشي كه گفتم.
موفق باشيد.
 

zolfagharonline

کاربر تازه وارد
تاریخ عضویت
1 آپریل 2005
نوشته‌ها
8
لایک‌ها
0
سلام
من یه سایت دارم که اطلاعات یوزمان روی بانک SQL ذخیره می شن
می خوام لاگین سایت رو از PHP به ASP تغیر بدم
فایل لاگین رو ساختم ولی توی بانک SQL تیبل پسورد شامل چند متغیر دیگه هم می شه
مثل ایمیل . کد . سریال و ...
2.jpg


من به وسیله دریم ویور وارم اینو درست می کنم از این کد برای جدا کردن پسورد از سایر قسمتها استفاده کردم :
-----------------------------------------
SELECT TAC_ID, TAC_Val
FROM TacBox.tac_usr
WHERE TAC_Attr='[Global]passwd'
-----------------------------------------
1.jpg


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

*********************
[email protected]
*********************
 
تاریخ عضویت
3 آپریل 2004
نوشته‌ها
34
لایک‌ها
0
بــــابـــــا چرا نميزارين مهدي به کارش ادامه بده.:medieval:
مهدي جان به نظرم آموزشت عاليه فقط لطفا يکم سطحشا بالاتر ببر.ممنون
 
بالا