منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية برمجة منتدى TextForum بدون قاعدة بيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4 5 6
(06-11-21, 12:26 AM)abubasilIraq كتب : [ -> ]السلام عليكم ، طيب
هذه المحاولة سوف تفيدك في تعلم التعامل مع الملفات النصية والمجلدات والمسارات للملفات ..
ولكن ربما هي في الواقع هروب من التعامل مع قواعد البيانات او على الاقل تأجيلها ... اقول ربما ، واما عن نفسي فقد تهربت فعلا من التعامل مع قواعد البيانات حين بدأت بالبي اج بي بحدود عام 2002 ، ولجأت وقتها الى استخدام الملفات النصية في انشاء وبرمجة أول مدونة لي بالبي اج بي ، وبعد ذلك ندمت لاني انما اخرت تعلم قواعد البيانات فسبقني الاخرون وتأخرت انا ...

السلام عليكم ورحمة الله وبركاته
اخي لاغنى عن قواعد البيانات فهي المكان الذي نستطيع فيه تخزين الداتا مهما كبر حجمها اما الملفات النصية فهي محدودة قياسا
والفكرة هنا هي تجارب ليستفد منها الغير وكل يختار حسب متطلباته
(06-11-21, 12:43 AM)ابراهيم ايبو كتب : [ -> ]
(06-11-21, 12:26 AM)abubasilIraq كتب : [ -> ]السلام عليكم ، طيب
هذه المحاولة سوف تفيدك في تعلم التعامل مع الملفات النصية والمجلدات والمسارات للملفات ..
ولكن ربما هي في الواقع هروب من التعامل مع قواعد البيانات او على الاقل تأجيلها ... اقول ربما ، واما عن نفسي فقد تهربت فعلا من التعامل مع قواعد البيانات حين بدأت بالبي اج بي بحدود عام 2002 ، ولجأت وقتها الى استخدام الملفات النصية في انشاء وبرمجة أول مدونة لي بالبي اج بي ، وبعد ذلك ندمت لاني انما اخرت تعلم قواعد البيانات فسبقني الاخرون وتأخرت انا ...

السلام عليكم ورحمة الله وبركاته
اخي لاغنى عن قواعد البيانات فهي المكان الذي نستطيع فيه تخزين الداتا مهما كبر حجمها اما الملفات النصية فهي محدودة قياسا
والفكرة هنا هي تجارب ليستفد منها الغير وكل يختار حسب متطلباته

نعم صحيح 
الفكرة (عندي )المتعة و  لا مانع من فائدة كما قلتكم .
حتى والموضوع مع ملفات نصية بمجلد السيرفر واجهت متاعب وانتقل من خطة لخطة اخرى .
الشيء اللذي سيوقف تطبيق الفكرة  هو  لو بدات وضعه بالسيرفر ودخل اكثر من شخص فان كل زائر يحمل المحتوى كامل ثم يعدل عليه ويعاد .... هذه لم افطن لها لتطوير او برمجة الويب.
العمل على المكتبي فقط ينسي الفرق!!!

شكر الله لكم جميعا.
العقبة اللتي ذكرتها يمكن التغلب عليها بافكار اخرى ....
----------------------------------------------------------------------------------------

الان صورة ملف db.config ويحتوي كل البيانات الى الان(اقصد اني لم احدث هذه الجزئية)

ايضا تطبيق الستايل على عنصر حاضن
باقي الكثير.
كما ترون بالصورتين السابقتين 
تم انجاز جزئية هامة وبقي الكثير
...................
والباقي كثير


المشاركات قسمين:
قسم رئيسي يحمل قيمة صفر(0)  ومشاركات تابعة له تحمل قيمته الاساسية .
العمود الاساسي هو pid والعمود الثانوي هو parentid اقصد ان الاخير اذا كانت قيمته اكثر من صفر(0) فهذا يعني انه تابع للمشاركة اللتي تملك القيمة هذه.


الصورة الثانية اتبعتني لقد نسيت الفروق بين المكتبي والويب وبصعوبة اتذكر
هناك كود ان لم تكتبه قبل الاسناد حال حدث Load للصفحة فلن تستطيع التحديث.

هذه الصور اتسلى بها الى ان اتم المشروع واقوم برفعه.
اترون كيف يتم تمرير القيم من صفحة لاخرى

وفي الاخرى كيف تم استقبال القيم لكي نستفيد منها
في الانتظااار
ياعيني على الاستعلام هذاSmile
توجد صورة اسفل هذا الكلام
انظر كيف يتم اولا التحقق هل الزائر مسؤول ام لا ويتم اعتماد مسؤول فقط بزيارة صفحة الادارة فقط بعدها يستطيع دخول الموقع[اقصد انه يستطيع تتبع الروابط اللتي تؤدي به الى التحكم] والتحكمات لابد لها من الانتقال الى صفحات في مجلد الادارة
الصورة لصفحة عرض مواضيع قسم معين
والاقسام مثل المشاركات فيه قسم اساسي وتابع
صباح الخير جميعا



لن تحتاج الى مزيد من الجهد فقط اجعل المستخدم يستبدل وسوم او رموز html برموز مثل هذه والباقي كما هو وانظر للنتيجة.

نسيت اكتب كود الاستبدالSmile
PHP كود :
po.InnerHtml po.InnerHtml.Replace("[""<").Replace("]"">"


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
لقطة بسيطة من المنتدى بالجهاز
PHP كود :
 Dim br As HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode.CreateNode(vbCrLf)
 
       If Getucount() = 1 Then
            doc
.DocumentNode.AppendChild(br)
 
       End If
 
       Dim nads As New HtmlAgilityPack.HtmlNode(HtmlAgilityPack.HtmlNodeType.ElementdocGetucount)
 
       nads.Name "user"
 
       nads.Attributes.Add("id"Getucount)
 
       nads.Attributes.Add("name"txtusername.Text)
 
       nads.Attributes.Add("pass"txtpass.Text)
 
       nads.Attributes.Add("mail"txtmail.Text)
 
       nads.Attributes.Add("cpuid"CpuId())
 
       nads.Attributes.Add("date"Now)
 
       nads.Attributes.Add("ftype""user")
 
       nads.Attributes.Add("act"chkact.Checked.ToString.ToLower)
 
       nads.Attributes.Add("blocked"chkblock.Checked.ToString.ToLower)
 
       nads.Attributes.Add("ip"myip("~\ip.aspx"))
 
       doc.DocumentNode.AppendChild(nads)
 
       doc.DocumentNode.AppendChild(br)
 
       doc.Save(fl)
 
       lblmsg.Text "تم الحفظ" 
هكذا افضل من طريقتي الاولى[اللتي تعتمد على كتابة نص ومن ثم تحويله الى نود]

اكواد التعديل بشروط
PHP كود :
doc.DocumentNode.SelectSingleNode("//user[@id=" lbluid.Text "]").Attributes("name").Value txtusername.Text
doc
.DocumentNode.SelectSingleNode("//user[@id=" lbluid.Text "]").Attributes("pass").Value txtpass.Text
doc
.DocumentNode.SelectSingleNode("//user[@id='" lbluid.Text "']").Attributes("mail").Value txtmail.Text
doc
.DocumentNode.SelectSingleNode("//user[@id='" lbluid.Text "']").Attributes("act").Value chkact.Checked.ToString.ToLower
doc
.DocumentNode.SelectSingleNode("//user[@id='" lbluid.Text "']").Attributes("blocked").Value chkblocked.Checked.ToString.ToLower
doc
.Save(fq)
lblmsg.Text "تم حفظ التعديل" 
اعتبر اسم النود هو اسم جدول والـAttributes اعتبرها اعمدة للجدول.
انظر كيف حددنا الصف المراد التعديل عليه وذلك بتحديد الـ id  وعند اسناد آي دي لاي صف فنستعلم عن آخر قيمة ثم نزيد عليها.

ليس بالضرورة ان يكون منتدى بالمعنى وانما قد تصلح ان تكون مدونة  واقصد ان مستخدم واحد فقط يدون ويحفظ .
ولا مانع من وجود اكثر من شخص ولكن ببرمجية اخرى تعمل كــــحارس يكشف العمل الحالي ويخبر المستخدم ان ينتظر.

انظر كيف يكون الحظر !

PHP كود :
If IsBlocked(Session("user")) Then
ContentPlaceHolder1
.Visible False
wel
.InnerHtml "تم حظر حسابك لاساب معلومة عند الادارة"
wel.Attributes.Add("class""error")
End If 
طبعا من افضل مميزات الماستربيج ان مكان كتابة الكود واحد فلاخفاء المحتوى فقط اخفي العنصر المسؤول وهو هنا:
ContentPlaceHolder1
ثم اظهر رسالة له .
وهذه دالة الحظر:
PHP كود :
Public Function IsBlocked(ByVal un As String) As Boolean
        doc 
= New HtmlAgilityPack.HtmlDocument
        doc
.Load(fq)
 
       If Not IsNothing(doc.DocumentNode.SelectNodes("//user[@name='" un "' and @blocked='true']")) Then
            Return True
        Else
            Return False
        End 
If
 
   End Function 
اظن لم يبقَ الا ان انتظر الانتهاء منه وارفعه وستصبح الاكواد مالوفة لمن هي جديدة عليه [في بداية الطريق اقصد] بسبب هذه الاكواد اللتي اكتبها كل فترة.
عند فقد او تغيير اسم او امتداد الملف الخاص بالمحتوى تظهر هذه الرسالة وافكر بعدم افتراض وجود هذا الملف بل ان يتم انشاؤه بالكود عبر صفحة install.aspx وعند وجود ملف المحتويات النصية db.config لن يتم دخول   install folder و عند عدم وجوده لن يتم دخول لوحة الادارة admincp
الله يعين واقدم شيء مفيد
الصفحات : 1 2 3 4 5 6