التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 2 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] جلب كوكيز العضوية بالكود (خاص لمنتديات Mybb فقط)
#1
السلام عليكم ورحمة الله وبركاته


بعد رؤتي لمشروع المبدعين sooriaty03 و سعود


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


برنامج المحرر لكتابة مواضيع المنتدى - النسخة النهائية


شفت انهم اعتمدو طريقة يدوية لإخذ الكوكيز

حيث يجب على المستخدم ان يأخذ كوكيز الدخول بواسطة متصفح Google Chrome




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

اولا اضف هذا الكلاس :-

PHP كود :
Public Shared Class MyBB
    
Public Shared Function GetLoginCookies(loginUrl As StringUsername As StringPassword As StringEnicode As Encoding) As String
        Dim data 
As Byte() = Enicode.GetBytes("username=" Username "&password=" Password "&submit=Login&action=do_login&url=")
        
Dim Loginrq As HttpWebRequest DirectCast(WebRequest.Create(loginUrl), HttpWebRequest)
        
Loginrq.Method "POST"
        
Loginrq.KeepAlive True
        Loginrq
.CookieContainer = New CookieContainer()
        
Loginrq.ContentType "application/x-www-form-urlencoded"
        
Loginrq.ContentLength data.Length
        Loginrq
.UserAgent "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0"

        
Using sr As Stream Loginrq.GetRequestStream()
            
sr.Write(data0data.Length)
            
sr.Close()
        
End Using
        Using Loginres 
As HttpWebResponse DirectCast(Loginrq.GetResponse(), HttpWebResponse)
            Return 
GetStringCookies(Loginres.Cookies)
        
End Using
    End 
Function

    Public 
Shared Function GetEncoding(url As String) As Encoding
        Dim rq 
As HttpWebRequest DirectCast(WebRequest.Create(url), HttpWebRequest)
        
Dim rs As HttpWebResponse DirectCast(rq.GetResponse(), HttpWebResponse)
        Return 
Encoding.GetEncoding(rs.CharacterSet)
    
End Function

    Private 
Shared Function GetStringCookies(cookies As CookieCollection) As String
        Dim result 
As String String.Empty
        For 
Each cook As Cookie In cookies
            result 
+= cook.Name "=" cook.Value ";"
        
Next
        
Return result
    End 
Function
End Class 

الدالة الرئيسية في الكلاس هي GetLoginCookies ، ولأستخدام الكوكيز المرجع منها

نكتب مثلا في حدث Form_load طلب لعرض صفحة المنتدى :-

PHP كود :
rivate Sub Form1_Load(sender As ObjectAs EventArgs)
    
Dim forumUrl As String "http://vb4arb.com/vb"
    
Dim loginUrl As String "http://vb4arb.com/vb/member.php"
    
Dim userName As String "الشاكي لله"
    
Dim password As String "......"
    
Dim downloadPath As String "c:/1/vb4arb.html"
    
Dim Enicode As Encoding MyBB.GetEncoding(forumUrl)

    
Dim rq As HttpWebRequest DirectCast(WebRequest.Create(forumUrl), HttpWebRequest)
    
rq.Method "GET"
    
rq.KeepAlive True
    rq
.Headers.Add("Cookie"MyBB.GetLoginCookies(loginUrluserNamepasswordEnicode))
    
rq.ContentType "text/html"
    
rq.UserAgent "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0"
    
Dim stored As String String.Empty

    
Using Getres As HttpWebResponse DirectCast(rq.GetResponse(), HttpWebResponse)
        
Using rd As New StreamReader(Getres.GetResponseStream())
            
Dim wr As New StreamWriter(downloadPath)
            
wr.Write(rd.ReadToEnd())
            
wr.Close()
        
End Using
    End Using
End Sub 

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

تفتح الصفحة وتلاقي :-

الرد }}}
تم الشكر بواسطة: sooriaty03 , مالكـ , mohammed moh , Amir_Alzubidy , Sajad


الردود في هذا الموضوع
جلب كوكيز العضوية بالكود (خاص لمنتديات Mybb فقط) - بواسطة الشاكي لله - 18-11-13, 04:10 AM

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم