تم الانتهاء من صفحة الـ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 String, ByVal 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 Object, ByVal e As System.EventArgs) Handles Me.Load
doc = New HtmlAgilityPack.HtmlDocument
doc.Load(fl)
End Sub
Protected Sub btnadd_Click(sender As Object, e As EventArgs) Handles btnadd.Click
If Namefound(txtusername.Text) Then
lblmsg.Text = "الاسم محجوز"
Exit Sub
End If
If Mailfound(txtemail.Text) Then
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 String, ByVal 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 Object, ByVal e As System.EventArgs) Handles 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 Object, e As EventArgs) Handles Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click, Btnlogin.Click
If Isok(Txtusername.Text, Txtpassword.Text) Then
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 Object, ByVal e As System.EventArgs) Handles 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 Object, e As EventArgs) Handles 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 والامور جيدة لكن يتبقى الاستضافة لها شؤون اخرى قد تمنع او تقيد الله اعلم لكن حتى يتبين كل شيء ساظل اجرب محليا ان شاء الله تعالى.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير

