الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لمبدعي البرمجة

مغلق
بدأه الحسناء في 25 أكتوبر 2003 · 21 رد · 2,541 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني , و أخواتي مبدعو البرمجه لدي سؤال عن البرمجة واتمنى اني الاقي رد عندكم

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

انا احتسسسسسسسسسسسست ادور

اختكم الحسناء.....

#2

مثل هذا يحتاج الى برنامج يقوم بعمل WebServer والشرح التالى به مثال ل webserver بسيط

اولا انشاء فورم جديد واضيفى اداة winsock و اجعلي خاصية index لها = 0

ثانيا انشاء ثلاثة تيكس بوكس txtname, TxtAge,TxtJob

كود الفورم

Option Explicit
Dim Connections As Integer

Private Sub Form_Load()
Connections = 1
Winsock1(0).Close
'اختيار المنفذ 80 الذي يعمل علية المتصفح
Winsock1(0).LocalPort = 80
'انتظار الاتصال
Winsock1(0).Listen
End Sub

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'استقبال الاتصال
If Index = 0 Then
    Connections = Connections + 1
    'انشاء اداة
    'winsock
    'جديدة لاستقبال الاتصال
    Load Winsock1(Connections)
    
    'استقبال الاتصال
    Winsock1(Connections).LocalPort = 0
    Winsock1(Connections).Accept requestID
End If
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
On Error GoTo ErrSend

Dim StrData As String
Dim Page As String
Dim RetVal() As String
Dim RetStr As String
Dim Buffer() As Byte

Winsock1(Index).GetData StrData$

If Mid$(StrData$, 1, 3) = "GET" Then 'طلب الصفحة
    'استخلاص اسم الصفحة المطلوبة
    Page = Mid$(StrData$, 6, InStr(6, StrData$, " ") - 6)
    
    'فتح الصفحة و ارسالها
    ReDim Buffer(FileLen(App.Path & "\" & Page))
    Open App.Path & "\" & Page For Binary As #1
        Get #1, , Buffer()
    Close #1
    Winsock1(Index).SendData Buffer()
    
ElseIf Mid$(StrData$, 1, 4) = "POST" Then 'استقبال البيانات من الصفحة
    'تاكيد اسم الصفحة
    Page = Mid$(StrData$, 7, InStr(7, StrData$, " ") - 7)
    If Page = "1.htm" Then
        'استخلاص البيانات المرسلة
        RetStr = Mid$(StrData, InStrRev(StrData, vbCrLf, Len(StrData) - 1) + 2)
        'ازالة اي حروف زائدة
        If Right$(RetStr, 2) = vbCrLf Then RetStr = Mid$(RetStr, 1, Len(RetStr) - 2)
        
        'تقسيم البيانات
        RetVal = Split(RetStr, "&")
        
        'البيانات قسمت و يمكن استخدام
        'اي كود من اكواد قواعد البيانات
        'لاضافة البيانات
        
        TxtName = Mid$(RetVal(0), 6)
        TxtAge = Mid$(RetVal(1), 5)
        TxtJob = Mid$(RetVal(2), 5)
        
        'ارسال رسالة للمستخدم
        Winsock1(Index).SendData "<b>شكرا</b>"
    Else
        GoTo ErrSend
    End If
End If

Exit Sub
ErrSend:
If Err.Number = 53 Then Winsock1(Index).SendData "صفحة غير موجودة"
End Sub

Private Sub Winsock1_SendComplete(Index As Integer)
    'اغلاق الاتصال عند نهاية الارسال
    Winsock1(Index).Close
End Sub

و كود صفحة انترنت بها مجموعة بيانات بسيطة هي الاسم,السن,المهنة

انشئ صفحة انترنت باسم 1.htm

ثم احفظيها بجانب المشروع

كود الصفحة

<HTML>

<form action="http://127.0.0.1/1.htm" method="post" >
<table>
	<tr>
  <td>الاسم</td>
  <td><input type="text" name="name" size="44"></td>
	</tr>
	<tr>
  <td>السن</td>
  <td><input type="text" name="age" size="44" ></td>
	</tr>
	<tr>
  <td>المهنة</td>
  <td><input type="text" name="job" size="44" ></td>
	</tr>
</table>
<input type="submit" value="موافق">
<input type="reset"  value=" الـغاء ">
</form>


</HTML>

للاختبار

1- تشغيل مشروع الفجوال و التاكد من وجود الملف 1.htm بنفس مسار المشروع

2-فتح متصفح الانترنت لديك وفى شريط العنوان اكتبي http://127.0.0.1/1.htm

3-سوف يقوم البرنامج بارسال الصفحة المطلوبة

4-بعد كتابة البيانات اضغطى علي زر "موافق" بصفحة الانترنت

5-يستقبل البرنامج البيانات و يضعها بالتيكست بوكس بالترتيب الاسم,السن,المهنة

ملحوظة

http://127.0.0.1 هو رقم الابي الفتراضي

http://127.0.0.1/1.htm اسم صفحة الانترنت اللي بها البيانات

Ali Sayed

#3

واااااااااااااااااااااااااااااااااااااو ممتاز

انا بجرب الطريقه وارد عليك ثاني

يعطيك الف صحه وعافيه اخوووووووووووووووووووي

ومشكور الف شكر علي المجهود الممتاز

فعلا الف شكر

اختكم الحسناء

#4

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

أختكم الحسناء

#5

يلزمك جهاز سيرفر و يوضع عليه البرنامج

Ali Sayed

#6

ممكن توضح اكثر اخوي انا ابغا المستخدم يدخل بيناتهمن الانتر نت مو من شبكه محليه وشكرا جزيييييييييييييييييييييييييييلا

اختكم الحسناء

#7

يكون لديك جهاز يعمل بصورة مستمرة كسيرفر و عليك شراء اسم نطاق لكي يقوم المستخدم بكتابة اسم النطاق بالمتصفح بدلا من http://127.0.0.1/1.htm فيكون مثلا http://www.arabteam2000.com/1.htm

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

Ali Sayed

#8

مشكووووووووووووووور اخي جزيل الشكر رغم ان الشرح كان مختصر وانا للاسف ما اتمكنت من الاستيعاب التام للموضوع

لكن اشكرك علي مجهودك الرائع

واتمني من اي احد من اخوننا المبرمجين ان يفيدنا بما يعرفه عن الموضوع ولا يبخل علينا

كما اتسائل عن كيفية االحصول علي اداة winsock حيث انها ليست مضافة لدي في المكتبة

واشكرك

اخي voooodoooo جزيل الشكر مرة اخرى علي تعاونك

وتحياتي لكم جميعا

اختكم الحســـــــــــــــــــــــــــــــــــــــــــناء

#9

المتميز vooodo اوفى باكثير

من قائمة project ثم component ثم microsoft winsock control

او بدون القوائم اضغطى ctrl+t ثم microsft winsock control

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#10

مشكووووووووووووووووووووووووووووورين وما قصرتو والله ابد

مشكور اخوي win98 & voooodooo ما قصرتم والله

اختكم الحســـــــــــــــــــــــــــــناء

#11

لمزيد من المعلومات عن ال winsock

إليكم هذة الوصلة www.winsockvb.com

تم تعديل هذه المشاركة بواسطة win98_eg في 30 أكتوبر 2003 في 02:22

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#12

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

اخواني فريق الابداع

انا اسفه لازعاجكم بالاسئله المتكرره مراارا وتكرارا

وسؤالي التالي استميحكم عذرا اذا وجدتم متسعا للاجابة عليه مع شكري الجزيل لكم

سؤالي يتعلق بصفحة الانتر نت المذكوره اعلاه 1.htm

فعند اختباري لها وادخال البينات اليها قد لاحظت الاتي:

الصفحه تعمل جيد

الصفحه ترسل البينات باللغه الانقليزيه الي تطبيق الفيجول بصورة صحيحة

واخيرا الصفحه تقوم بارسال البينات باللغه العربية الي تطبيق الفيجول علي شكل رموز بصوره خاطئه كتالي مثلا $%#%$$^^$%^

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

واشكركم جزيل الشكر

أختكم الحســـــــــــــــــــــــــــــــــــــــــــــــــــناء

#13

اعتقد انة يجب عليك تغيير ال encoding فى صفحة البيانات إلى 1256

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#14

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

كيف يمكن الاستفسار عن حقل بالغة العربية

تم تعديل هذه المشاركة بواسطة win98_eg في 31 أكتوبر 2003 في 04:19

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#15

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

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

وفعلا يشرفني ان اكون جزء من هذه الأسره المبدعه ولو اني الجزء المزعج بالاسئله دائما لكن معليش : )

ولا ادري كيف اعبر عن شكري الخاص الي الاخ العضو الفعال vooodooooooo انت فعلا محرجني وين ما رحت سئلت لقيتك جاهز بالاجوبه

الي الامام دائما..................

كم ابعث بشكري الخاص ايضا الى العضو win98 واقول انك WinXP او 3000 سيرفر علي الاقل ما شاء الله عليك : )

خالص شكري وتقديري

أختكم الحســــــــــــــــــــــــــــــــــــــــــــناء

#16

بالنسبة لمشكلة كتابة البيانات بالعربي

يمكنك حلها يتتغيير الكود في الفورم و الصفحة الي

كود الفورم

Option Explicit
Dim Connections As Integer

Private Sub Form_Load()
Connections = 1
Winsock1(0).Close
'اختيار المنفذ 80 الذي يعمل علية المتصفح
Winsock1(0).LocalPort = 80
'انتظار الاتصال
Winsock1(0).Listen
End Sub

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'استقبال الاتصال
If Index = 0 Then
    Connections = Connections + 1
    'انشاء اداة
    'winsock
    'جديدة لاستقبال الاتصال
    Load Winsock1(Connections)
    
    'استقبال الاتصال
    Winsock1(Connections).LocalPort = 0
    Winsock1(Connections).Accept requestID
End If
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
On Error GoTo ErrSend

Dim StrData As String
Dim Page As String
Dim RetStr As String
Dim Buffer() As Byte

Winsock1(Index).GetData StrData$

If Mid$(StrData$, 1, 3) = "GET" Then 'طلب الصفحة
    'استخلاص اسم الصفحة المطلوبة
    Page = Mid$(StrData$, 6, InStr(6, StrData$, " ") - 6)
    
    'فتح الصفحة و ارسالها
    ReDim Buffer(FileLen(App.Path & "\" & Page))
    Open App.Path & "\" & Page For Binary As #1
        Get #1, , Buffer()
    Close #1
    Winsock1(Index).SendData Buffer()
    
ElseIf Mid$(StrData$, 1, 4) = "POST" Then 'استقبال البيانات من الصفحة
    'تاكيد اسم الصفحة
    Page = Mid$(StrData$, 7, InStr(7, StrData$, " ") - 7)
    If Page = "1.htm" Then
        'استخلاص البيانات المرسلة
        RetStr = Mid$(StrData, InStr(1, StrData, vbCrLf & vbCrLf) + 4)

        'تقسيم البيانات
        TxtJob = Mid$(RetStr, InStr(1, RetStr, "job=") + 4)
        RetStr = Replace(RetStr, vbCrLf & "job=" & TxtJob, "")
        TxtAge = Mid$(RetStr, InStr(1, RetStr, "age=") + 4)
        RetStr = Replace(RetStr, vbCrLf & "age=" & TxtAge, "")
        TxtName = Mid$(RetStr, InStr(1, RetStr, "name=") + 5)
        
        'ارسال رسالة للمستخدم
        Winsock1(Index).SendData "<b>شكرا</b>"
    Else
        GoTo ErrSend
    End If
End If

Exit Sub
ErrSend:
If Err.Number = 53 Then Winsock1(Index).SendData "صفحة غير موجودة"
End Sub

Private Sub Winsock1_SendComplete(Index As Integer)
    'اغلاق الاتصال عند نهاية الارسال
    Winsock1(Index).Close
End Sub

كود الصفحة

<html > 
<form action="http://127.0.0.1/1.htm" method="post" enctype="text/plain">
<table>
	<tr>
  <td>الاسم</td>
  <td><input type="text" name="name" size="44"></td>
	</tr>
	<tr>
  <td>السن</td>
  <td><input type="text" name="age" size="44" ></td>
	</tr>
	<tr>
  <td>المهنة</td>
  <td><input type="text" name="job" size="44" ></td>
	</tr>
</table>
<input type="submit" value="موافق">
<input type="reset"  value=" الـغاء ">
</form>


</HTML>

Ali Sayed

#17

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

شكرا جزيييييييييييييييييييلا اخ فوووووووودوووووووووووووو

عن جد مدري كيف اشكرك علي تعاونك

انا عن جد محتاجه هذا الدعم والمساعده منكم ولكم مني جزيل الشكر

والان دعني اطلعك علي احداث التجربه النهائيه لهذه العمل

فقد قمت برفع الصفحه الي الانترنت تحت عنوان

http://www.geocities.com/thugz_cryz

واصبح اسمها thugz_cryz.html

حيث اني غيرت اسمها في الموقع المستضيف الي Indx.html

واصبحت بذلك الصفحه الرئيسيه للموقع

وقد قمت بادخال الاسم الجديد في الفورم في الاسطر التاليه

واصبح الجزء القديم

     'تاكيد اسم الصفحة
   Page = Mid$(StrData$, 7, InStr(7, StrData$, " ") - 7)
   If Page = "1.htm" Then
       'استخلاص البيانات المرسلة
       RetStr = Mid$(StrData, InStr(1, StrData, vbCrLf & vbCrLf) + 4

والكود الجديد

   'تاكيد اسم الصفحة
   Page = Mid$(StrData$, 7, InStr(7, StrData$, " ") - 7)
   If Page = "thugz_cryz.html" Then
       'استخلاص البيانات المرسلة
       RetStr = Mid$(StrData, InStr(1, StrData, vbCrLf & vbCrLf) + 4

وكذالك في كود صفحة الانتر نت تغير الكود

<form action="http://127.0.0.1/1.htm" method="post" enctype="text/plain">

الي

<form action="http://www.geocities.com/thugz_cryz.html" method="post" enctype="text/plain">

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

وتم ذلك

ثم اختبرت ارسال البينات من صفحة الانترنت من جهاز اخر علي الشبكه وكانت الشبكه متصله بلانترنت

ولم يتم وصول البينات الي التطبيق :(

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

واطلب من كل من يعرف او لديه مسعاده بعدم التردد بصفه عامه

وبصفه خاصه اطلب من الخبراء النشطين هنا فووووودووووووو و win98

بالمساعده اذا امكن في انجاح هذه التجربه

واخيرا لكم مني جزيييييييييييييييييييييييييييييييييييييييييل الشكر

أختكم الحسناء :)

#18

المشكلة بكود صفحة الانترنت فبها خطأن

الاول هو الجهة التى ترسل لهل البيانات

<form action="http://www.geocities.com/thugz_cryz.html" method="post" >

في هذا الكود ترسل البيانات الي سيرفر geocities وليس جهاز السيرفر بالمعمل وكل ما عليك هو تغيير http://www.geocities.com/ الي رقم IP جهاز السيرفر بالمعمل

الثانى

<form action="http://www.geocities.com/thugz_cryz.html" method="post" >

تنقص

enctype="text/plain"

حيث اني شاهدت الصفحة و وجدتها تنقص هذا الجزء من الكود

Ali Sayed

#19

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

اشكرك شكرا جزيلا اخي فوووووودووووو

واتمني لك التوفيق دائما

ويشرفني ان اكون بك علي اتصال دائما عبر ايميلي

سوف ارسله اليك فير سالة خاصه

ولك مني جزيل الشكر

أختكم الحسناء

#20

مشكورررين

#21

أنا أرى أنه من الصعب أن تضع / تضعى برنامجك على سيرفر وأن تشترى نطاقو........

لذا ارى انه من المناسب استخدام ال Visual basic sript

لمزيد من التفاصيل برجاء مراسلتى على elfarkarim@hotmail.com

وشكرا

#22

شكرا اخي The Solution Developer

واتمني ان تكون التفاصيل هنا في المنتدي لتعم الفائده الجميع

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

واشعر بالخجل قليلا من استئثاري بالمعلومات لشخصي انا دون ان تعم الفائده الجميع

فارجوك انت وكل مبدعين فريق العمل في هذا الصرح .... تكريس جهودكم لتعم الفائده الجمييع

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

اختكم الحسناء

هذا الموضوع مغلق.

مواضيع مشابهة