يوم سوالف، في 7 أغسطس القادم

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > ASP و ASP.NET
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Jun 2006-
#1 (permalink)  
[دروس برمجية] نظام الدعم الفني المباشرة


السلام عليكم ورحمة الله وبركاته

كنت افكر نبدا بهذا الموضوع من وقت لكن انتظرت حتى انهيته لكي استطيع ان انزل الشرح مصور والتأكد من الكود والطريقة بالضبط وان شاء الله تعالى اننا نستفيد منها جميعا

الموضوع رح يكون عبارة عن موضوع واحد وهو هذا نبدا فيه سوياً خطوة خطوة حتى نخلص نظام الدردشة الكامل

رح نعتمد فيه على قواعد بيانات سواء SQL Server او Access انت لك حرية اختيار نظام قواعد البيانات

ومع اني اشوف قواعد البيانات اكسس كافيه لكن سوف استخدم قواعد بيانات ال SQL Server في الشرح وكما قلنا لك حرية اختيار نظام قواعد البيانات الي تريد تشتغل عليه

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

تخطيط البرنامج سوف يكون بالشكل التالي

1- جدول في قاعدة البيانات لجلسات المحادثة
حيث يحتوي هذا الجدول على اسم المستخدم او العميل بالاضافة لاسم المدير او موظف الدعم الذي يتم اجراء المحادثة معه بالاضافة لبعض المعلومات الاخرى مثل تاريخ بداية المحادثه ووقتها وتاريخ ووقت نهايتها بالاضافة لاسم وعنوان ملف ال html الذي سوف نقوم بحفظ المحادثه فيه بالاضافة لرقم جلسة المحادثة والذي يكون ترقيم تلقائي وعدم تكرار

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


الان طريقة عمل النظام تكون بالشكل التالي

- يقوم موظف الدعم بتسجيل الدخول ويتم انشاء سجل في جدول جلسات موظفين الدعم يحتوي على رقم جلسة الموظف (ترقيم تلقائي وعدم تكرار) بالاضافة لرقم عضوية هذا الموظف بالاضافة لتاريخ بداية جلسة الموظف وتاريخ نهاية جلسة الموظف وحالة الجلسة اون لاين او اف لاين

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

عندما يقوم الموظف بتسجيل الخروج نقوم بوضع تاريخ انهاء جلسة الموظف وكذلك نحول حالة هذه الجلسة الي اف لاين


- الان بعد ان يكون هناك موظف دعم واحد على الاقل متصل
ويدخل عميل الي النظام يقوم النظام اولا بالبحث عن موظفين دعم فني فاذا لم يكن هناك اي موظف متصل حالياً (اون لاين) في جلسات الموظفين نمنع العميل من الدخول مع ظهور رسالة عدم وجود موظفين
في حالة كان هناك موظفين دعم فني موجودين نقوم بالبحث عن اقل موظف يوجد عنده محادثات ونحول هذا المستخدم للموظف
لكي نحوله للموظف نقوم بانشاء جلسة محادثة جديدة في جدول جلسات المحادثه نضع فيه رقم عضوية العميل وكذلك رقم عضوية موظف الدعم الفني الذي تم اختياره لاجراء المحادثه معه وكذلك تاريخ بداية الجلسة وتاريخ نهايتها الذي يكون صفر عند انشاء المحادثة وكذلك حالة هذه المحادثه هل هي اون لاين او اف لاين وعند اول دخول تكون اون لاين وعند خروج العميل او انهاء المحادثه نقوم بعملها اف لاين يعني محادثه منهيه وكذلك نضع تاريخ نهاية المحادثة

السبب من اون لاين واف لاين هو اننا نريد الاحتفاظ بسجل المحادثات كامل لكي يتم مراجعته من قبل المدير العام باستمرار ليكون لدينا نظام ارشيف لجلسات الموظفين وجلسات المحادثه لمتابعة الموظفين من قبل المدير


الان قلنا انه عند اول دخول للعميل سوف نقوم باختيار احد الموظفين ليتم تحويل العميل له وهذا الموظف يكون هو الموظف الذي عنده اقل عدد من المحادثات ونقوم بانشاء يجل في جدول المحادثات لهذه المحادثة

قبل انشاء سجل المحادثه يجب ان نقوم بانشاء ملف html في داخل مجلد معين في الموقع نقوم بتتسميته اسم عشوائي يعتمد على التاريخ والساعه والدقيقه والثانيه لكي نضمن عدم تكرار الاسم مرتين
كذلك نقوم بوضع اسم الملف في حقل اسم ملف المحادثه في داخل سجل المحادثه هذه


هكذا اصبح كل شيء جاهز من اجل اجراء المحادثه

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

ونفس الامر لموظف الدعم الفني

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


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



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




اريد اولا رايكم بالنظام بشكل عام واي افكار واي اقتراحات قبل ان نبدا باذن الله تعالى






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 18-06-2007, 11:04 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jun 2003-
#2 (permalink)  

السلام عليكم

رائع جدا يا غالي

انا اقترح ان تكون قاعدة البيانات2005 MS SQL عشان اتعلمها


والله بصراحه تحظرني افكار جمه للدعم الفني راح اوافيك فيها غدا من المكتب ان شاء الله






__________________
HANi
Explosion Of Creativity
IMΛĞIИΛTIØИ is MØRЄ Important THΛИ Knowledge
Soon my site will be in english
TNT.NaT
GrEaTxP.com غير متواجد حالياً   قديم 19-06-2007, 03:35 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#3 (permalink)  

رائع جداأ متابعينن معك أخ احمد






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 19-06-2007, 11:35 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#4 (permalink)  

والله هذا ما كنت أتمنى، دروس متكاملة لنخرج بنتيجة وتصور كامل..

ونحن معاك بإذن الله ..

وأتمنى تكون طريقة الدروس تفاعلية، بحيث نستفيد أكبر قدر ممكن، ومن طرق التفاعل:

1- أسئلة بعد نهاية كل درس تعبر عن مدى فهم المتلقي.

2- طلب تطبيق على الدرس بفكرة أخرى.

3- طلب بحث في جزئية معينة، ومن خلالها يتبين لنا فائدة بعض الخواص، وتفيد في تعلم كيفية الحصول على المعلومة.

ما سبق منه مايصلح لما تنوي القيام به ومنه ما لا يصلح، ولكن أفكار في رأسي وددت مشاركتها بكم.

وسر أخي أحمد موفقاً دائماً ..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 20-06-2007, 05:44 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#5 (permalink)  

السلام عليكم ورحمة الله وبركاته

اخواني بهذا الدرس سوف نقوم بعمل قاعدة البيانات باذن الله تعالى ومجلدات المشروع

في البداية نقوم بعمل قاعدة البيانات وسوف نتبع في هذا النظام دردشة دعم فني بين العملاء وموظفين الدعم الفني

في البداية نقوم بعمل جدول خاص بجلسات موظفين الدعم ندون فيه معلومات كل جلسه جلسلها موظف الدعم الفني

اسم الجدول
LiveSupportEmployeesSessions
الحقول التي يحتويها هي
ID رقم جلسة الموظف وهو حقل من نوع رقم ونحدده مفتاح اساسي وعدم تكرار
EmployeeID من نوع رقم ويختص برقم عضويه موظف الدعم الفني
StartTime من نوع نص وتحتوي على تاريخ ووقت دخول موظف الدعم الفني لهذه الجلسه
EndTime من نوع نص وتحتوي على تاريخ ووقت خروج موظف الدعم الفني من هذه الجلسة
IsOnLine من نوع char ويكون طولة 1 يعني حرف واحد فقط ويحتوي على Y او N اذا كانت Y يعني هذه الجلسة مازال نرتبط بها الموظف يعني موجود اون لاين واذا كانت N يعني الجلسة انتهت واصبحت في الارشيف


الان جدول المحادثات التي تتم بين الموظفين والعملاء

اسم الجدول
LiveSupportConversationsSessions

ويحتوي على الحقول التالية
ID وهو رقم جلسة المحادثة ويكون من نوع رقم ومفتاح اساسي وعدم تكرار
EmployeesSessionsID من نوع رقم وهو رقم جلسة الموظف التي ارتبط بها هذا العميل ورقم جلسة الموظف هي نفسها ال ID في الجدول السابق
EmployeeID من نوع رقم وهي رقم عضوية موظف الدعم الذي ارتبط به العميل في هذه المحادثة
GuestName من نوع نص ويحتوي على اسم المستخدم للزائر
StartSessionTime من نوع نص ويحتوي على تاريخ ووقت بداية هذه جلسة المحادثة هذه
EndSessionTime من نوع نص ويحتوي على تاريخ نهاية جلسة المحادثة هذه
ConversationFileName من نوع نص وتحتوي على اسم ملف المحادثة الذي توجد فيه نصوص المحادثه يعني الكلام الذي دار بين العميل والموظف
IsOpen نفس السابقة في الجدول السابق من نوع حرف طوله 1 نضع فيه اما Y او N
اذا كانت Y يعني المحادثه مازالت اون لاين يعني الطرفين يتحدثون الان اما اذا كانت N تعني انه المحادثة بينهم انتهت واصبحت في الارشيف


ملاحظة : لمستخدمين قواعد بيانات الاكسس بخصوص الحقول IsOpen في الجدولين ممكن يختاروا نوع الحقل Boolean يحتوي صح او خطأ ولكن لان هذا النوع غير موجود في ال sql server فاستخدمنا بدل منه حقل من حرف واحد نضع به Y او N


هذه هي قاعدة البيانات ارجو منكم دراستها وفهمها ومراجعة الدرس السابق لفهم الالية العامه للمشروع كيف سوف تكون


وباذن الله نبدا ببرمجة المشروع غدا او بعد غد






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 22-06-2007, 01:05 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#6 (permalink)  

ماشاء الله، بارك الله فيك اخي احمد ..

لقد بدأت في التجهيز، ومستعد للبدء ..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 22-06-2007, 05:11 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#7 (permalink)  

السلام عليكم ورحمة الله وبركاته

اليوم ان شاء الله تعالى نبدا بالبرمجة

وسوف نقوم بعمل صفحة الدردشة للزوار

نقوم بانشاء صفحتين الاول
live-support.aspx
والثانيه
live-conversation.aspx

في الصفحة الاولى live-support.aspx
نقوم بفحص حالة نظام الدردشة اذا كان لا يوجد موظف دعم فني متصل نقوم بكتابة رسالة له نخبره بها بعدم وجود موظف للدعم حاليا
وفي حالة وجود موظفين نقوم بجلب رقم جلسة الموظف الاون لاين والتي تحتوي اقل عدد من المحادثات تجري الان ونربط هذا العميل مع هذه الجلسة وذلك عن طريق انشاء سجل جديد خاص به نضع فيه رقم جلسة الموظف التي يتبع لها وكذلك نقوم بانشاء اسم مستخدم خاص فيه وباقي المعلومات في جلسة المحادثة ومن ثم نحولة للصفحة live-conversation.aspx حيث تحتوي الصفحة على ادوات المحادثة

عملنا اليوم سوف يكون في الصفحة
live-support.aspx

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

في كود الصفحة وتحديدا في حدث تحميل الصفحة حيث سوف يتواجد الكود الكامل

اولا نقوم بجلب ارقام موظفين الدعم الفني المتصلين حالياً ومعرفة اقل موظف لديه محادثات حالياً

كود:
'جلب اسم موظف الدعم الفني المتواجد حالياً والذي سيتم تحويل هذا الزبون له
        'جلب الموظفين الاون لاين
        Dim dsEmployeesSessions As New DataSet
        SQLStr = "select ID,EmployeeID from EMall_LiveSupportEmployeesSessions where IsOnLine Like 'Y'"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Adap.SelectCommand = Cmd
        Adap.Fill(dsEmployeesSessions)
        Con.Close()

        If dsEmployeesSessions.Tables(0).Rows.Count = 0 Then
            ErrorLabel.Text = "لايوجد موظفين دعم فني متصلين حاليا"
            Exit Sub
        End If
قمنا بجلب جميع موظفين الدعم الفني المتصلين حاليا وفي حالة لم يكن هناك نتائج عائده لنا في الداتا ست هذا يعني انه لا يوجد موظفين دعم فني اذا نقوم بكتابة رسالة عدم وجود موظفين ونخرجه من تنفيذ بقية الكود باستخدام Exit Sub

لاحظ ان جملة ال SQL اشترطنا بها ان تكون حالة الاتصال لجلسة الموظف IsOpen تساوي Y يعني اون لاين


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


كود:
ViewState("EmployeesSessionsID") = dsEmployeesSessions.Tables(0).Rows(0)(0)
        ViewState("EmployeeIDV") = dsEmployeesSessions.Tables(0).Rows(0)(1)

        Dim IEm As Integer = Nothing
        For IEm = dsEmployeesSessions.Tables(0).Rows.Count - 1 To 0 Step -1

            'جلب عدد المحادثات التي يجريها هذا الموظف الان
            Dim dsConvNumber As New DataSet
            SQLStr = "select EMall_LiveSupportConversationsSessions.ID,EMall_LiveGuestSupportConversationsSessions.ID from EMall_LiveSupportConversationsSessions,EMall_LiveGuestSupportConversationsSessions where EMall_LiveSupportConversationsSessions.IsActive Like 'Y' and EMall_LiveGuestSupportConversationsSessions.IsActive Like 'Y' and EMall_LiveSupportConversationsSessions.EmployeeID=" & dsEmployeesSessions.Tables(0).Rows(IEm)(0) & " and EMall_LiveGuestSupportConversationsSessions.EmployeeID=" & dsEmployeesSessions.Tables(0).Rows(IEm)(0)
            Cmd.CommandText = SQLStr
            Cmd.Connection = Con
            Con.Open()
            Adap.SelectCommand = Cmd
            Adap.Fill(dsConvNumber)
            Con.Close()

            ViewState("ConvNumber" & IEm) = dsConvNumber.Tables(0).Rows.Count
            ViewState("EmployeesSessionsID" & IEm) = dsEmployeesSessions.Tables(0).Rows(IEm)(0)
            ViewState("EmployeeIDV" & IEm) = dsEmployeesSessions.Tables(0).Rows(IEm)(1)

            If ViewState("ConvNumber" & IEm) < ViewState("ConvNumber" & IEm - 1) Then
                ViewState("EmployeesSessionsID") = dsEmployeesSessions.Tables(0).Rows(IEm)(0)
                ViewState("EmployeeIDV") = dsEmployeesSessions.Tables(0).Rows(IEm)(1)
            End If

        Next

        Dim EmployeesSessionsIDV As Long = ViewState("EmployeesSessionsID")
        Dim EmployeeIDV As Long = ViewState("EmployeeIDV")

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

كود:
ViewState("EmployeesSessionsID") = dsEmployeesSessions.Tables(0).Rows(0)(0)
        ViewState("EmployeeIDV") = dsEmployeesSessions.Tables(0).Rows(0)(1)
ومن ثم نقوم بعمل حلقة تكراريه نجلب في كل مرة عدد المحادثات التي تتبع للجلسة التي تتبع لهذه الحقلة ونخزنها في داخل ViewState
وقد استخدمنا هنا ال ViewState لاننا لا نعلم تحديدا كم هو عدد الجلسات فاذا قمنا بتعريف متغير داخل الحلقة فانه في المرة القادمه التي سوف يدخل بها الحلقة سيتم حذف القيم الموجوده في المتغير للحلقة السابقة ومن ثم يسند لها قيم جديدة ونحن نريد ان نحتفظ بجميع القيم لجميع الحلقات لذلك استخدمنا ViewState بحيث يكون اسمها يتكون من كلمة يتبعها القيمة الموجوده في متغير الحلقة I وهكذا سوف نضمن انه لن يتكرر لنا نفس الاسم الموجود في ال ViewState مرتين اي اننا سوف نحصل على عدد من القيم المسنده داخل ViewState فلو كان لدينا 10 جلسات سوف نحصل على عشرة ViewState كل واحد لها اسم مختلف عن الاخر والاسماء منحصره بين القيمة الاولى للمتغير I الاولى وقيمة ال الاخيره للمتغير I


كما تلاحظ اننا في نهاية الحلقة كنا كل مرة نقارن ال ViewState للحلقة السابقة بال ViewState للحقة الجديدة فاذا كانت ال ViewState الجديدة اصغر من القديمه هذا يعني ان هذا الموظف عنده محادثات اقل من السابق فنسند رقم عضويته ورقم جلسته ل ViewState الجلسة ورقم العضوية الرئيسي

وهكذا بعد انتهاء الحلقة سوف نكون قد خرجنا بجلسة الموظف التي تحتوي اقل عدد من المحادثات


نقوم بافراغ رقم الجلسة ورقم موظف الدعم الفني في متغيرات

كود:
Dim EmployeesSessionsIDV As Long = ViewState("EmployeesSessionsID")
        Dim EmployeeIDV As Long = ViewState("EmployeeIDV")
استخدم هنا نوع Long وليس Integer لان مع مرور الوقت قد يكون رقم الجلسات كبير جدا بحيث لا يستوعبه المتغير integer خصوصا في الدردشة حيث انشاء سجلات كثيره اذا كان المستخدمين كثر


الان نقوم بانشاء ملف المحادثة الخاص بجلسة المحادثة هذه هكذا

كود:
'انشاء ملف المحادثه
        Dim rInt As Random = New Random
        Dim RandomInt As String = rInt.Next(1, 1000000000).ToString

        Dim FileName As String = RandomInt & "-" & Date.Now.ToString("mm-HH-dd-MM-yyyy") & ".htm"
        'انشاء ملف ووضع فيه معلومات البطاقات
        Dim FPath As String = dsPublicInfo.Tables(0).Rows(0)(1) & "livesupport" & "\" & FileName
        Dim FilseSa As IO.FileStream = IO.File.Create(FPath)
        FilseSa.Close()
لاحظ اننا عملنا اسم الملف باستخدام الوقت والتاريخ وقبلها رقم عشوائي وذلك لكي نضمن عدم تكرار الاسم مرتين ومن ثما قمنا بانشاء الملف من نوع html داخل المجلد livesupport في الموقع

مع العلم ان
dsPublicInfo.Tables(0).Rows(0)(1)
هذه هي مسار مجلد الموقع الرئيسي



الان نقوم بانشاء اسم المستخدم لهذا العميل
نقوم بجلب رقم اخر جلسة محادثة تمت ونكون اسم العميل هكذا (زائر 2) حيث ان 1 هي رقم اخر محادثة تمت فتكون محادثة هذا العميل هي المحادثة رقم 2 فيكون اسمه زائر 2

بالطريقة التالية

كود:
 'جلب رقم اخر محادثة تمت في جدول محادثات الزوار
        Dim dsLastConvInGTable As New DataSet
        SQLStr = "select MAX(ID) from EMall_LiveGuestSupportConversationsSessions"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Adap.SelectCommand = Cmd
        Adap.Fill(dsLastConvInGTable)
        Con.Close()

        'انشاء اسم عشوائي للمستخدم
        Dim GuestNameV As String = "زائر" & dsLastConvInGTable.Tables(0).Rows(0)(0)


الان نقوم بزرع معلومات جلسة المحادثة الجديدة في جدول جلسات المحادثة بعد ان اصبح لدينا اسم الزائر ورقم جلسة الموظف ورقم الموظف واسم ملف المحادثة ... وغيره من المعلومات المطلوبة


كود:
'زرع معلومات الجلسة الجديدة في قاعدة البيانات
        SQLStr = "insert into EMall_LiveGuestSupportConversationsSessions(EmployeesSessionsID,EmployeeID,GuestName,StartSessionTime,EndSessionTime,ConversationFileName,IsActive) Values(" & EmployeesSessionsIDV & "," & EmployeeIDV & ",'" + GuestNameV + "','" + Date.Now.ToString("hh:mm:ss - dd/MM/yyyy") + "','0','" + FileName + "','Y')"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Cmd.ExecuteNonQuery()
        Con.Close()

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

نقوم بجلب رقم جلسة المحادثة

كود:
'جلب رقم الجلسة التي تم اضافتها الان
        Dim dsSessionId As New DataSet
        SQLStr = "select ID from EMall_LiveGuestSupportConversationsSessions where EmployeeID=" & EmployeeIDV & " and GuestName Like '" + GuestNameV + "' and ConversationFileName Like '" + FileName + "'"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Adap.SelectCommand = Cmd
        Adap.Fill(dsSessionId)
        Con.Close()

        Dim SessionIdV As Long = dsSessionId.Tables(0).Rows(0)(0)

قمنا بتخزين رقم الجلسة في متغير SessionIdV


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

كود:
'جلب المعلومات الموجوده في الملف
        Dim HtmlPageCodeV As String = Nothing
        Dim ExistCodeV As New IO.StreamReader(FPath)
        HtmlPageCodeV = ExistCodeV.ReadToEnd()
        ExistCodeV.Close()

        'اضافة الكود على صفحة المحادثه
        HtmlPageCodeV &= "<html'>"
        HtmlPageCodeV &= "<head>"
        HtmlPageCodeV &= "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>"
        HtmlPageCodeV &= "</head>"
        HtmlPageCodeV &= "<body>"
        HtmlPageCodeV &= "<br>" & Date.Now.ToString("hh:mm:ss - dd/MM/yyyy")
        HtmlPageCodeV &= "</body></html>"

        'زرع معلومات المحادقه في بداية الملف
        Dim ReadHtmlFileV As New IO.StreamWriter(FPath)
        ReadHtmlFileV.Write(HtmlPageCodeV)
        ReadHtmlFileV.Close()


اخيرا بعد الانتهاء وتجهيز متطلبات المحادثة نقوم بتحويل المستخدم لصفحة المحادثة الثانيه وهي live-conversation.aspx مع ارسال رقم المحادثة SessionIdV مع الرابط

كود:
'تحويل المستخدم لصفحة المحادثة مع رقم الجلسة
        Response.Redirect("live-conversation.aspx?id=" & SessionIdV)




ملاحظة مهمه :- النظام حاليا يحتوي ثغره امنيه وهي ان اي متحدث يمكنه الاطلاع محادثات غيره والكتابة فيها
مثلا لو كانت جلسة العميل رقمها 24 في الرابط الالكتروني وجرب العميل وكتب 25 بدل 24 فسوف ينتقل ويدخل لمحادثة العميل الذي دخل النظام بعده ويستطيع الاطلاع والكتابة فيها

ولكي تتدارك هذه المشكلة ممكن نضيف على جلسة المحادثة حقل جديد وهو كود الجلسة
بحيث يكون هذا كود عشوائي نرسله مع رقم الجلسة وفي صفحة المحادثة نتحقق من ان الكود المرسل يتبع فعلا للجلسة المرسلة فاذا لم يكن يتبع لها نقوم باخراجه من الصفحة

وفي الوضع الحالي للنظام يمكن للعميل الاطلاع على المحادثات السابقة مثلا لو كان رقمه 24 وكتب في الرابط 3 فسوف يستعرض المحادثة التي رقمها 3 وهذا سوف نتداركه من خلال الصفحة الثانيه حيث سوف نمنع اي عميل من الاطلاع على محادثات منهيه يعني ارشيف المحادثات

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

سوف اترك لكم مسألة الكود هذه كتمرين وهي ليست صعبه بالطبع كل متطلباتها موجوده مسبقا في نفس الشرح سواء انشاء كود عشوائي او حقل جديد وغيره



ان شاء الله في الدرس القادم سوف ننتقل للصفحة الثانيه وهي صفحة اجراء الحوار






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 25-06-2007, 04:08 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#8 (permalink)  

ألف شكر أخي أحمد ..

جاري التطبيق ..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 25-06-2007, 08:45 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#9 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة asp2asp
ألف شكر أخي أحمد ..

جاري التطبيق ..
حياك الله اخوي وبنتظار نتائج التجربه عشان نكمل باذن الله تعالى






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 30-06-2007, 03:51 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2003-
#10 (permalink)  

طيب ممكن نبدأ من الصفر

كيف احصل على برنامج sql server 2005


صدقني اريد التعلم و متحمس جدا لموضوعك

لك مني كل التقدير و الاحترام






__________________
سبحان الله و الحمد لله و لا إله الا الله و الله أكبر
aja غير متواجد حالياً   قديم 03-07-2007, 03:17 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#11 (permalink)  

أخي واستاذي الأخ أحمد يوجد أخطاء كثيرة في الأكواد قد لاينتبه لها البعض قمت باكتشاف بعضها حالياً سوف أقوم بأكمالها غداً وارفاقها بإذن الله واعتذر عن تطفلي لكن علي ايضاحها للبعض

شكراً أستاذي الاخ أحمد






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 03-07-2007, 04:50 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#12 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة الثلج
أخي واستاذي الأخ أحمد يوجد أخطاء كثيرة في الأكواد قد لاينتبه لها البعض قمت باكتشاف بعضها حالياً سوف أقوم بأكمالها غداً وارفاقها بإذن الله واعتذر عن تطفلي لكن علي ايضاحها للبعض

شكراً أستاذي الاخ أحمد
بالتأكيد اخوي ياليت توضح لنا الاخطاء الموجوده
واسف مقدما على وجود هذه الاخطاء بالتأكيد الغير مقصوده






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 03-07-2007, 04:32 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#13 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة aja
طيب ممكن نبدأ من الصفر

كيف احصل على برنامج sql server 2005


صدقني اريد التعلم و متحمس جدا لموضوعك

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

بخصوص برنامج ال sql server تقدر تحصله من السوق سيديهات وتقدر تحمله من الانترنت سوي بحث عليه في جووجل






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 03-07-2007, 04:47 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#14 (permalink)  

أخ أحمد حاوت أني اكمل ما قدرت في تناقضات كثيرة بالأسماء أتمنى منك مراجعة الأستدعائات من القاعده

ومراجعة تعريفات المتغيرات


اقتباس:
Dim constring As String = ConfigurationManager.ConnectionStrings("live-support").ConnectionString
Dim con As New Data.SqlClient.SqlConnection(constring)
Dim dsEmployeesSessions As New Data.DataSet
Dim SQLStr As String = "select ID,EmployeeID from LiveSupportEmployeesSessions where IsOnLine Like 'Y'"
Dim cmd As New Data.SqlClient.SqlCommand
Dim adap As New Data.SqlClient.SqlDataAdapter
Cmd.CommandText = SQLStr
cmd.Connection = Con
Con.Open()
Adap.SelectCommand = Cmd
Adap.Fill(dsEmployeesSessions)
Con.Close()

If dsEmployeesSessions.Tables(0).Rows.Count = 0 Then
lblerror.Text = "لايوجد موظفين دعم فني متصلين حاليا"
Exit Sub
End If
بخصوص الكود الأول هذا هو معدل مع وضع تعريف الاتصال في ملف الكونفغ






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 03-07-2007, 11:42 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#15 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة الثلج
أخ أحمد حاوت أني اكمل ما قدرت في تناقضات كثيرة بالأسماء أتمنى منك مراجعة الأستدعائات من القاعده

ومراجعة تعريفات المتغيرات




بخصوص الكود الأول هذا هو معدل مع وضع تعريف الاتصال في ملف الكونفغ

بارك الله فيك اخوي الثلج

لكن مافهمتك تقصد اني مسميهم في قاعدة البيانات شكل وفي الكود كاتب شكل اخر ؟






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 04-07-2007, 02:09 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#16 (permalink)  

الأخ الثلج يقصد هذا السطر:

اقتباس:
EMall_LiveSupportEmployeesSessions
حيث أن التسمية مختلفة عما سبق تسميته

وجاري إكمال تطبيق






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 04-07-2007, 06:07 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#17 (permalink)  

حدثت معي بعض الأخطاء..

أتمنى منك أخي أحمد إرفاق الكود متكاملاً..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 04-07-2007, 07:22 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#18 (permalink)  

تقريباً هذا هو الكود الكامل مع إصلاح مايلزم، لكن تبقت مشكلة واحدة معلمة باللون الأحمر، حيث لا يوجد متغير سابق يصفها..

كود:
        'تعريف متغير الاتصال
        Dim Con As SqlClient.SqlConnection = New SqlClient.SqlConnection
        'تعريف نص الاتصال
        Dim ConStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
        'اسناد نص الاتصال لمتغير الاتصال
        Con.ConnectionString = ConStr

        'تعريف متغير نسند له جملة ال SQL
        Dim SQLStr As String = ""
        'تعريف الكومند والذي بواسطته سنقوم بتنفيذ جملة السكويل على القاعدة في خطوة لاحقه
        Dim Cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand
        Dim Adap As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter

        'جلب اسم موظف الدعم الفني المتواجد حالياً والذي سيتم تحويل هذا الزبون له
        'جلب الموظفين الاون لاين
        Dim dsEmployeesSessions As New DataSet
        SQLStr = "select ID,EmployeeID from LiveSupportEmployeesSessions where IsOnLine Like 'Y'"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Adap.SelectCommand = Cmd
        Adap.Fill(dsEmployeesSessions)
        Con.Close()

        If dsEmployeesSessions.Tables(0).Rows.Count = 0 Then
            ErrorLabel.Text = "لايوجد موظفين دعم فني متصلين حاليا"
            Exit Sub
        End If


        ViewState("EmployeesSessionsID") = dsEmployeesSessions.Tables(0).Rows(0)(0)
        ViewState("EmployeeIDV") = dsEmployeesSessions.Tables(0).Rows(0)(1)

        Dim IEm As Integer = Nothing
        For IEm = dsEmployeesSessions.Tables(0).Rows.Count - 1 To 0 Step -1

            'جلب عدد المحادثات التي يجريها هذا الموظف الان
            Dim dsConvNumber As New DataSet
            SQLStr = "select LiveSupportConversationsSessions.ID,LiveGuestSupportConversationsSessions.ID from LiveSupportConversationsSessions,LiveGuestSupportConversationsSessions where LiveSupportConversationsSessions.IsActive Like 'Y' and LiveGuestSupportConversationsSessions.IsActive Like 'Y' and LiveSupportConversationsSessions.EmployeeID=" & dsEmployeesSessions.Tables(0).Rows(IEm)(0) & " and LiveGuestSupportConversationsSessions.EmployeeID=" & dsEmployeesSessions.Tables(0).Rows(IEm)(0)
            Cmd.CommandText = SQLStr
            Cmd.Connection = Con
            Con.Open()
            Adap.SelectCommand = Cmd
            Adap.Fill(dsConvNumber)
            Con.Close()

            ViewState("ConvNumber" & IEm) = dsConvNumber.Tables(0).Rows.Count
            ViewState("EmployeesSessionsID" & IEm) = dsEmployeesSessions.Tables(0).Rows(IEm)(0)
            ViewState("EmployeeIDV" & IEm) = dsEmployeesSessions.Tables(0).Rows(IEm)(1)

            If ViewState("ConvNumber" & IEm) < ViewState("ConvNumber" & IEm - 1) Then
                ViewState("EmployeesSessionsID") = dsEmployeesSessions.Tables(0).Rows(IEm)(0)
                ViewState("EmployeeIDV") = dsEmployeesSessions.Tables(0).Rows(IEm)(1)
            End If

        Next

        Dim EmployeesSessionsIDV As Long = ViewState("EmployeesSessionsID")
        Dim EmployeeIDV As Long = ViewState("EmployeeIDV")

        'انشاء ملف المحادثه
        Dim rInt As Random = New Random
        Dim RandomInt As String = rInt.Next(1, 1000000000).ToString

        Dim FileName As String = RandomInt & "-" & Date.Now.ToString("mm-HH-dd-MM-yyyy") & ".htm"
        Dim dsPublicInfo As New DataSet
        'انشاء ملف ووضع فيه معلومات البطاقات
        Dim FPath As String = dsPublicInfo.Tables(0).Rows(0)(1) & "livesupport" & "\" & FileName
        Dim FilseSa As IO.FileStream = IO.File.Create(FPath)
        FilseSa.Close()



        'جلب رقم اخر محادثة تمت في جدول محادثات الزوار
        Dim dsLastConvInGTable As New DataSet
        SQLStr = "select MAX(ID) from LiveGuestSupportConversationsSessions"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Adap.SelectCommand = Cmd
        Adap.Fill(dsLastConvInGTable)
        Con.Close()

        'انشاء اسم عشوائي للمستخدم
        Dim GuestNameV As String = "زائر" & dsLastConvInGTable.Tables(0).Rows(0)(0)


        'زرع معلومات الجلسة الجديدة في قاعدة البيانات
        SQLStr = "insert into LiveGuestSupportConversationsSessions(EmployeesSessionsID,EmployeeID,GuestName,StartSessionTim  e,EndSessionTime,ConversationFileName,IsActive) Values(" & EmployeesSessionsIDV & "," & EmployeeIDV & ",'" + GuestNameV + "','" + Date.Now.ToString("hh:mm:ss - dd/MM/yyyy") + "','0','" + FileName + "','Y')"
        Cmd.CommandText = SQLStr
        Cmd.Connection = Con
        Con.Open()
        Cmd.ExecuteNonQuery()
        Con.Close()


        'جلب المعلومات الموجوده في الملف
        Dim HtmlPageCodeV As String = Nothing
        Dim ExistCodeV As New IO.StreamReader(FPath)
        HtmlPageCodeV = ExistCodeV.ReadToEnd()
        ExistCodeV.Close()

        'اضافة الكود على صفحة المحادثه
        HtmlPageCodeV &= "<html'>"
        HtmlPageCodeV &= "<head>"
        HtmlPageCodeV &= "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>"
        HtmlPageCodeV &= "</head>"
        HtmlPageCodeV &= "<body>"
        HtmlPageCodeV &= "<br>" & Date.Now.ToString("hh:mm:ss - dd/MM/yyyy")
        HtmlPageCodeV &= "</body></html>"

        'زرع معلومات المحادقه في بداية الملف
        Dim ReadHtmlFileV As New IO.StreamWriter(FPath)
        ReadHtmlFileV.Write(HtmlPageCodeV)
        ReadHtmlFileV.Close()

        'تحويل المستخدم لصفحة المحادثة مع رقم الجلسة
        Response.Redirect("live-conversation.aspx?id=" & SessionIdV)






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 04-07-2007, 07:32 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#19 (permalink)  

صحيح في اختلاف بأسامي الـ column

isactive لازم تكون isonline

واسامي الجداول اللي ذكرها أخي aps2asp

غيرتها عندي لكن تخوفت بعض الشيء أن اقوم بتغيير مقصدك من الكود فأحببت أن أدعه لك لكي تقوم بوضع نقاطك ولماستك عليه

وشكراً أستاذي احمد






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 04-07-2007, 10:13 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#20 (permalink)  

والله الكود يحتاج مراجعة، ولأنا لم نفهم آلية عمل البرنامج، فمن الصعب وضع حلول من رؤوسنا

أتمنى أخي أحمد أن تضع لنا الكود كاملاً، فنحن اجتهدنا ولكن لكونا مازلنا في البداية نحتاج توضيح أكثر وأن يكون الكود ملائم للشرح وتحملنا






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 04-07-2007, 10:17 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#21 (permalink)  

حياكم الله اخي الثلج واخي asp2asp
الكود موجود عندي في مشروع اتوقع اني فعلا ممكن اكون سميت اشياء في قاعدة البيانات وفي الكود كانت التسميه تختلف يمكن يكون حدث هذا

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

اوك اذا كان صعب عليكم انكم تتابعوا المشروع بهذه الطريقة رايح اعمله وانزله بالكود كامل مع قاعدة البيانات وانتم تدرسوها واذا في اي ملاحظة نتكلم عنها ان شاء الله

فقط اعطوني يومين اجهزه لان عندي الان في مشروع كامل وهو جزء من المشروع رايح اعمله كمشروع مستقل ان شاء الله






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 04-07-2007, 05:51 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#22 (permalink)  

في الانتظار أخي أحمد.. وجزاك الله خيرا ..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 04-07-2007, 08:18 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#23 (permalink)  

أخ أحمد عندي كم سؤل لاهنت

اقتباس:
Dim HtmlPageCodeV As String = Nothing
Dim ExistCodeV As New IO.StreamReader(FPath)
HtmlPageCodeV = ExistCodeV.ReadToEnd()
ExistCodeV.Close()

'اضافة الكود على صفحة المحادثه
HtmlPageCodeV &= "<html'>"
HtmlPageCodeV &= "<head>"
HtmlPageCodeV &= "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>"
HtmlPageCodeV &= "</head>"
HtmlPageCodeV &= "<body>"
HtmlPageCodeV &= "<br>" & Date.Now.ToString("hh:mm:ss - dd/MM/yyyy")
HtmlPageCodeV &= "</body></html>"

'زرع معلومات المحادقه في بداية الملف
Dim ReadHtmlFileV As New IO.StreamWriter(FPath)
ReadHtmlFileV.Write(HtmlPageCodeV)
ReadHtmlFileV.Close()
وش خزنا هنا بالملف غير التاريخ لم نخزن اي محادثه والتاريخ بالأصل مخزن بأسم الملف

اقتباس:
'انشاء اسم عشوائي للمستخدم
Dim GuestNameV As String = "زائر" & dsLastConvInGTable.Tables(0).Rows(0)(0)
ماني شايف تخزين اسم عشوائي كل اللي اشوفه رقم اعلى جلسه مع زائر


بحاول اتابع الكود واخبرك بالنتائج لكن ماني قادر أكمل لأن الجداول فارغه






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 08-07-2007, 06:36 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2006-
#24 (permalink)  

هلا اخوي الثلج

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

صح موجود التاريخ باسم الملف لكن هذا في داخل الملف نفسه لكي يظهر للمستخدم والموظف تاريخ ووقت بداية المحادثة بينهم


اقتباس:
ماني شايف تخزين اسم عشوائي كل اللي اشوفه رقم اعلى جلسه مع زائر
صح اخوي كلمة اسم عشوائي كنت اعني بها كلمة (زائر) بعدها رقم الجلسة
وليس رقم عشوائي او نص عشوائي كما فعلنا باسم الملف


اذا في شي مو مفهوم بلغني اخوي






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 09-07-2007, 05:24 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#25 (permalink)  

تسلم أخوي أحمد بس كيف نقدر نجرب عمل البرنامج اذا لم يكن هنالك موظف دعم داخل ولم يكن هنالك جلسات هل بأمكانك أكمال المشروع وصفحة دخول الدعم لكي نستطيع اكمل المشروع






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 09-07-2007, 05:28 PM
رد مع اقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة
<