تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] كيفية برمجة منتدى TextForum بدون قاعدة بيانات
#4

تم الانتهاء من صفحة الـdefault  و صفحة تسجيل الدخول بمميزات واشتراطات عدة وكذلك تسجيل عضوية ولا زال الوقت مبكر 
تحياتي للجميع.

جملة تسجيل عضوية جديدة

كود :
Dim n As String = "<user id=" & GetId() & " name=" & txtusername.Text & " pass=" & txtpassword.Text & " mail=" & txtemail.Text & " ip=" & myip() & " date='" & Now.ToString & "' act='false' blocked='false' cpuid='" & CpuId() & "' />"

هذا سطر اولي لاسناد القيم
فقط انتظروا هذا ليس كل شيء
HtmlAgilityPack
هذه الاداة هي اللتي تجعل  السطر فعال
........

التالي صفحة كود الاضافة بشكل كامل

PHP كود :
Public Class WebForm5
    Inherits System
.Web.UI.Page
    Dim doc 
As HtmlAgilityPack.HtmlDocument
    Dim fl 
As String Server.MapPath("~\pages\usersfile.config")

 
   Protected Function myip() As String
        Dim sIPAddress 
As Object
        sIPAddress 
Request.ServerVariables("HTTP_X_FORWARDED_FOR")
 
       If sIPAddress "" Then sIPAddress Request.ServerVariables("REMOTE_ADDR")
 
       Return sIPAddress
    End 
Function

 
   Protected Function Namefound(ByVal un As String) As Boolean
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user[@name='" un "']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function
 
   Protected Function Mailfound(ByVal un As String) As Boolean
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user[@mail='" un "']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function

 
   Protected Function Isok(ByVal un As StringByVal ps As String) As Boolean
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user[@name='" un "' and @pass='" ps "']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function

 
   Protected Function GetId() As Integer
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user")) Then
            Dim ucount 
As Integer doc.DocumentNode.SelectNodes("//user").Count
            Dim icount 
As Integer
            icount 
doc.DocumentNode.SelectNodes("//user")(ucount 1).Attributes("id").Value
            Return icount 
1
        Else
            Return 1
        End 
If
 
   End Function


 
   Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        doc 
= New HtmlAgilityPack.HtmlDocument
        doc
.Load(fl)
 
   End Sub

    Protected Sub btnadd_Click
(sender As ObjectAs EventArgsHandles btnadd.Click
        If Namefound
(txtusername.TextThen
            lblmsg
.Text "الاسم محجوز"
 
           Exit Sub
        End 
If

 
       If Mailfound(txtemail.TextThen
            lblmsg
.Text "الايميل محجوز"
 
           Exit Sub
        End 
If

 
       Dim n As String "<user id=" GetId() & " name=" txtusername.Text " pass=" txtpassword.Text " mail=" txtemail.Text " ip=" myip() & " date='" Now.ToString "' act='false' blocked='false' cpuid='" CpuId() & "' />"
 
       Dim br As HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode.CreateNode(vbCrLf)
 
       If GetId() = 0 Then
            doc
.DocumentNode.AppendChild(br)
 
       End If

 
       doc.DocumentNode.AppendChild(newChild:=HtmlAgilityPack.HtmlNode.CreateNode(n))
 
       doc.DocumentNode.AppendChild(br)
 
       doc.Save(fl)
 
       Response.Redirect("~\login.aspx")
 
   End Sub
End 
Class 
والتالي صفحة الدخول
PHP كود :
Public Class WebForm4
    Inherits System
.Web.UI.Page
    Dim doc 
As HtmlAgilityPack.HtmlDocument
    Dim fl 
As String Server.MapPath("~\pages\usersfile.config")
 
   Protected Function Isok(ByVal un As StringByVal ps As String) As Boolean
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user[@name='" un "' and @pass='" ps "']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function
 
   Protected Function IsActive(ByVal un As String) As Boolean
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//user[@name='" un "' and @act='true']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function
 
   Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        If Not IsNothing
(Session("user")) Then
            Response
.Redirect("~\default.aspx")
 
       End If
 
       doc = New HtmlAgilityPack.HtmlDocument
        doc
.Load(fl)
 
   End Sub
    Protected Sub btnlogin_Click
(sender As ObjectAs EventArgsHandles Btnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.ClickBtnlogin.Click
        If Isok
(Txtusername.TextTxtpassword.TextThen
            Session
("user") = Txtusername.Text
            If IsActive
(Txtusername.Text) = False Then
                Lblmsg
.Text "لم يتم تنشيط حسابك ... يبدو انك لم تنقر رابط التنشيط المرسل الى بريدك"
 
           Else
                Response
.Redirect("~\default.aspx")
 
           End If
 
       Else
            Lblmsg
.ForeColor Drawing.Color.White
            Lblmsg
.Text "لم نعثر على بيانات مطابقة لما كتبت"
 
       End If
 
   End Sub
End 
Class 

دققوا كيف يتم ربط المنتدى بالقسم
forum qid=qesm id
وبنفس الطريقة المواضيع وردودها

صفحة الـ default.aspx الرئيسية تقوم بجلب الاقسام الرئيسية وكل قسم عبارة عن كونتول مخصص ايضا يحتضن الفروع من المنتديات
PHP كود :
Public Class WebForm1
    Inherits System
.Web.UI.Page
    Dim fl 
As String Server.MapPath("~\pages\aqsam.config")
 
   Dim doc As HtmlAgilityPack.HtmlDocument
    Protected Sub gd
()
 
       doc = New HtmlAgilityPack.HtmlDocument
        doc
.Load(fl)
 
       fq fl
        If Not IsNothing
(doc.DocumentNode.SelectNodes("//qesm")) Then
            Dim qcount 
As Integer doc.DocumentNode.SelectNodes("//qesm").Count
            For i 
As Integer 0 To qcount 1
                Dim q 
As qesm CType(LoadControl("~\pages\qesm.ascx"), qesm)
 
               q.qd.Text doc.DocumentNode.SelectNodes("//qesm")(i).Attributes("id").Value
                q
.hL.Text doc.DocumentNode.SelectNodes("//qesm")(i).Attributes("name").Value
                q
.Ldesc.Text doc.DocumentNode.SelectNodes("//qesm")(i).Attributes("qdesc").Value
                q
.hL.NavigateUrl "~\theqesm.aspx?qid=" q.qd.Text "&qname=" q.hL.Text "&qdesc=" q.Ldesc.Text
                aqsams
.Controls.Add(q)
 
           Next
        End 
If
 
   End Sub
    Protected Sub Page_Load
(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        gd
()
 
   End Sub
End 
Class 
والتالي كود عنصر التحكم الخاص بالاقسام وكيف هو ايضا يحتضن المنتديات
PHP كود :
Public Class qesm
    Inherits System
.Web.UI.UserControl
    Dim doc 
As HtmlAgilityPack.HtmlDocument
    Protected Sub gd
()
 
       doc = New HtmlAgilityPack.HtmlDocument
        doc
.Load(fq)
 
       If Not IsNothing(doc.DocumentNode.SelectNodes("//forum")) Then
            Dim fcount 
As Integer doc.DocumentNode.SelectNodes("//forum[@qid='" Lid.Text "']").Count
            For i 
As Integer 0 To fcount 1
                Dim q 
As forum CType(LoadControl("~\pages\forum.ascx"), forum)
 
               q.hL.Text doc.DocumentNode.SelectNodes("//forum[@qid='" Lid.Text "']")(i).Attributes("name").Value
                q
.Ldesc.Text doc.DocumentNode.SelectNodes("//forum[@qid='" Lid.Text "']")(i).Attributes("fdesc").Value
                q
.ffd.Text doc.DocumentNode.SelectNodes("//forum[@qid='" Lid.Text "']")(i).Attributes("id").Value
                q
.hL.NavigateUrl "~\theforum.aspx?fid=" q.ffd.Text "&fname=" q.hL.Text "&fdesc=" q.Ldesc.Text
                pnlforums
.Controls.Add(q)
 
           Next
        End 
If
 
   End Sub
    Public Property hL 
As HyperLink
        Get
            Return hlt
        End Get
        Set
(ByVal hlt As HyperLink)
 
           hL hlt
        End Set
    End Property
    Public Property Ldesc 
As Label
        Get
            Return lbdesc
        End Get
        Set
(ByVal lbdesc As Label)
 
           Ldesc lbdesc
        End Set
    End Property
    Public Property qd 
As Label
        Get
            Return Lid
        End Get
        Set
(ByVal lid As Label)
 
           qd lid
        End Set
    End Property
    Protected Sub Page_Load
(sender As ObjectAs EventArgsHandles Me.Load
        gd
()
 
   End Sub
End 
Class 

التالي عنصر تحكم الـ forum لكنه غير كامل وانما فقط الان تعميم خصائص الادوات
PHP كود :
Public Class forum
    Inherits System
.Web.UI.UserControl
    Public Property hL 
As HyperLink
        Get
            Return hlt
        End Get
        Set
(ByVal hlt As HyperLink)
 
           hL hlt
        End Set
    End Property
    Public Property Ldesc 
As Label
        Get
            Return lbdesc
        End Get
        Set
(ByVal lbdesc As Label)
 
           Ldesc lbdesc
        End Set
    End Property
    Public Property Ld 
As Label
        Get
            Return lrdod
        End Get
        Set
(ByVal lrdod As Label)
 
           Ld lrdod
        End Set
    End Property
    Public Property ffd 
As Label
        Get
            Return fd
        End Get
        Set
(ByVal fd As Label)
 
           ffd fd
        End Set
    End Property
End 
Class 

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ



في عنصر التحكم واجهت مشكلة عدم الامكانية للوصول الـ server.mapPath فلجات الى بعد الله الى تعريف متغير عمومي بموديول واسند له في صفحة عادية واستخدمها في هذا العنصر.

تصور لم استخدم اي قاعدة بيانات لا أكسس و لا sqlserver
!!!
تجاربي مع الفكرة في السيرفر المحلي Localhost والامور جيدة لكن يتبقى الاستضافة لها شؤون اخرى قد تمنع او تقيد الله اعلم لكن حتى يتبين كل شيء ساظل اجرب محليا ان شاء الله تعالى.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
}}}


الردود في هذا الموضوع
RE: كيفية برمجة منتدى TextForum - بواسطة سعود - 03-11-21, 08:47 PM
RE: كيفية برمجة منتدى TextForum [بدأ العمل 1.2.3] - بواسطة سعود - 04-11-21, 11:03 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية عمل صفحة ويب وربطها بتقعدة بيانات علي جهاز makky 1 1,926 06-01-22, 11:48 AM
آخر رد: ahmedabdelaliem
Wink [سؤال] كيفية تحويل هذة الى ويب abdalamask 0 1,248 09-05-21, 02:01 AM
آخر رد: abdalamask
  كيف اضيف بيانات الى gridview بدون استخدام datasource ؟؟ nowiglah 1 2,743 06-12-20, 08:36 PM
آخر رد: Osama_NY
  كيفية عرض بيانات اعضاء هيئية تدريس مع الصورة cordava 0 1,579 19-09-20, 07:03 PM
آخر رد: cordava
  [سؤال] خطأ عند انشاء قاعدة بيانات من داخل فجول استوديو2013 alsihran 1 2,475 30-03-20, 06:07 PM
آخر رد: alsihran
  كيف اسوي فورم ادخال بيانات الحكيمي 0 2,237 13-03-17, 11:01 AM
آخر رد: الحكيمي
  [C#.NET] مشكلة في حفظ بيانات cascading dmw2200 0 2,085 14-11-16, 02:08 PM
آخر رد: dmw2200
  كيف يتم بحت من خلال taxtbox وتضهر بيانات في داتا قريد فيو habib 2 2,948 29-10-16, 05:20 PM
آخر رد: أبو عمر
  كيفية انشاء قائمة بالشكل الموضح abdelbasyer 1 2,139 27-10-16, 12:37 PM
آخر رد: myalsailamy
  ماهي قاعدة البيانات المخصصة لasp.net صبري زينوبي 2 2,503 20-10-16, 03:26 PM
آخر رد: صبري زينوبي

التنقل السريع :


يقوم بقرائة الموضوع: