nexpay

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

شروع موضوع توسط Mehdi ‏23 دسامبر 2005 در انجمن asp , ASP.NET

  1. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    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 StringByVal 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
     
  2. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    اگه علاقه مند زياد بود و نظرات خوب بود بقيشم ميگم
     
  3. mazoolagh

    mazoolagh کاربر فعال شبکه و صفحات استاتیک کاربر فعال

    تاریخ عضویت:
    ‏10 آپریل 2004
    نوشته ها:
    2,940
    تشکر شده:
    7
    عالیست!
    وقتی پستی زده نمیشه معنیش اینه که استاد داره درس میده و بقیه دارن گوش میدن. لطفا ادامه بدین تا همه استفاده کنیم.
     
  4. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    منم ميگم خوبه
     
  5. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    خوب asp ئه ديگه !
    کجا بايد باشه مگه؟
     
  6. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    نه چون ASP.Net بيد
     
  7. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    به نظر من عنوانش بايد آموزش ASP باشه حالا ميشه شامل قسمتهاي ديگه باشه
    يه تاپيك هم بزنيم راجع به اينكه يه CMS چه جوري بشه و چه چيزهايي داشته باشه
     
  8. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    نه من كه نميخوام آموزش asp بدم
    چون به اندازه كافي منبع هست
    ميخوام فقط بگم چجوري يه سي ام اس ميسازن همين كه من هرچي گشتم چيزي پيدا نكردم براي پي اچ پي خيلي زياده ولي برا دات نت اصلا
     
  9. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    پس اگه صلاح بدونين ديگه كد نزارين و راجع به اينكه CMS چه كارايي انجام بده صحبت كنيم هركي هر كجا دوست داشته باشه پياده سازي كنه يكي ASP يكي ASP.Net ويكي ديگه php
     
  10. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    ميتوني يه تاپيك ديگه بزني [​IMG]
    فكر نميكنم ناقص گزاشتنش صحيح باشه بخاطر اون مجبورم ادامشم بگم كه احتمالا يكي يا دوتا آموزش بشه [​IMG]
     
  11. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    همين كار رو ميكنم [​IMG]
    ولي بايد شما اسم اينجا رو عوض كني [​IMG]
     
  12. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    یعنی چی اصلا !!
    http://www.dotnetnuke.com
    کاملا اوپن سرس کاملا مجانی ! نسخه دات نتی اه phpnuke که فارسی هم شده و همه جا هست !!
    در ضمن به نظر من این چیزی نیست که بشه آموزش داد چون برای ساختنش باید بتونی تمام چیز های معمول روی وب رو بسازی ! یه وبلاگ ، یه فروم ، یه گالری ، لینکسان ..... بگیر تا آخر

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

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

    بازم خودت میدونی موفق باشی !!!
     
  13. avajang.com .leftjee.ir.right
  14. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    خوب منظور من مقاله اموزشي بوده نه پروجه
    تازه خوب شما اين روش رو هم بگيد من بلد نيستم ياد بگيرم
     
  15. amironline

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    شديدا تاييد ميشه
    منم گفتم كه بيايبن بگيم يه CMS چه چيزايي بايد داشته باشه و چه كارايي بايد انجام بده
     
  16. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    به دوستان شدیدا توصیه میکنم که این مقاله آموزشی به زبان فارسی رو بخونن :


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



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

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    اين روش فقط تو ASP.Net هستش و تو ASP چنين امكاني نيست؟
     
  18. mazoolagh

    mazoolagh کاربر فعال شبکه و صفحات استاتیک کاربر فعال

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

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

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    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 بزاريد.
    خوب تموم شد هدف فقط ساخت يك سيستم مديريت محتوا ساده بود شما اگه كمي با اي اس پي دات نت اشنا بوديد الان ميتونيد خودتون يك سيستم مديريت بسازيد خودتون ميتونيد بخش لينكدوني رو اضافه كنيد و خيلي بخشهاي ديگه با همين روشي كه گفتم.
    موفق باشيد.
     
  20. zolfagharonline

    zolfagharonline کاربر تازه وارد

    تاریخ عضویت:
    ‏1 آپریل 2005
    نوشته ها:
    8
    تشکر شده:
    0
    سلام
    من یه سایت دارم که اطلاعات یوزمان روی بانک SQL ذخیره می شن
    می خوام لاگین سایت رو از PHP به ASP تغیر بدم
    فایل لاگین رو ساختم ولی توی بانک SQL تیبل پسورد شامل چند متغیر دیگه هم می شه
    مثل ایمیل . کد . سریال و ...
    [​IMG]

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

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

    *********************
    [email protected]
    *********************
     
  21. ali_yousefian19

    ali_yousefian19 Guest

    تاریخ عضویت:
    ‏3 آپریل 2004
    نوشته ها:
    34
    تشکر شده:
    0
    بــــابـــــا چرا نميزارين مهدي به کارش ادامه بده.:medieval:
    مهدي جان به نظرم آموزشت عاليه فقط لطفا يکم سطحشا بالاتر ببر.ممنون
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal