PDA

View Full Version : سوال: پرکردن و ارسال ( سابمیت) صفحه وب توسط XMLHTTP ؟؟؟



VB6_nevis
سه شنبه 03 مرداد 1391, 19:17 عصر
سلام دوستان

من میخام توسط XMLHTTP یه صفحه لوگ این رو که دارای یوزر و پسورد و یه چک باکس هست رو پر کنم و سابمیت کنم

با وب بروزر اینکار رو کردم ولی چون احتیاج به ارسال فرامین ای جکس در صفحات بعد دارم مجبور شدم از XMLHTTP استفاده کنم


میتونم اول با وب بروزر فرم رو سابمیت کنم و بعد از XMLHTTP استفاده کنم؟؟چطوری میشه؟

اگر کسی راه حلی داره لطفا کمکم کنه ممنون میشم

محسن واژدی
سه شنبه 03 مرداد 1391, 19:44 عصر
من میخام توسط XMLHTTP یه صفحه لوگ این رو که دارای یوزر و پسورد و یه چک باکس هست رو پر کنم و سابمیت کنم سلام علیکم

بسته های http را با همه کنترل های xmlhttp، webbrowser, winsock,... میتوانیم ارسال کنیم

VB6_nevis
سه شنبه 03 مرداد 1391, 19:54 عصر
ممنون ولی جوابم رو نگرفتم

درواقع من دوتا سوال دارم

1.چجوری با Inet دستورات ای جکس رو بفرستم و جوابش رو دریافت کنم و تحلیل کنم

2.چجوری با MSXML2 یه صفحه که دوتا فیلد یوزر و پسورد و یه چک باکس داره رو پر کنم و سند کنم

یا اینکه اول باید از وب بروزر استفاده کنم بعدش از MSXML2 اگه جواب مثبته چجوری اینا رو بهم ارتباط بدم؟

محسن واژدی
چهارشنبه 04 مرداد 1391, 10:25 صبح
سلام علیکم

در Webbrowser با کدی مشابه زیر میتوانیم بسته http را ارسال کنیم:
Sub Command1_Click()
Dim PostData() As Byte
Dim Headers As String
PostData = "Uid=abc&Password=123"
PostData = StrConv(PostData, vbFromUnicode)
Headers = "Content-Type: application/x-www-form-urlencoded" & vbCrLf
WebBrowser1.Navigate "http://blogfa.com/Desktop/login.aspx", , , PostData, Headers
End Sub

کد بالا درخواست login حاوی user-name و password را به سایت blogfa ارسال میکند


یا در Inet
Private Sub Command1_Click()
Inet1.Execute "http://blogfa.com/Desktop/login.aspx", "POST", "Uid=abc&Password=123", "Content-Type: application/x-www-form-urlencoded"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Caption = State
If State = icResponseCompleted Then
Debug.Print Inet1.GetHeader
Debug.Print String(50, "-")
Debug.Print Inet1.GetChunk(32000)
End If
End Sub

و در XMLHttp
Private Sub Command1_Click()
'Dim xmlhttp As New ServerXMLHTTP
Dim xmlhttp
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
Dim sParams$
sParams$ = "Uid=abc&Password=123"
With xmlhttp
.open "POST", "http://blogfa.com/Desktop/login.aspx"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "Content-Length", Len(sParams$)
.send sParams$
.waitForResponse 20
Debug.Print .getAllResponseHeaders
Debug.Print .responseText
End With
End Sub



2.چجوری با MSXML2 یه صفحه که دوتا فیلد یوزر و پسورد و یه چک باکس داره رو پر کنم و سند کنم

در مورد ارسال فیلدها و چک باکس های فرم میتوانیم بصورت بالا آنرا را به ترتیب و با & از هم جدا کنیم، در پارامترهای بالا Uid نام فیلد username و Password نام فیلد password هست، و اگر فرضا یک چک باکس برای به یاد داشتن userو password هم در فرم ارسالی وجود داشت آنرا به ادامه لیست پارامترهای ارسالی اضافه میکنیم، اگر نام چک باکس remained_login و انتخاب شده باشد میشود:
Uid=abc&Password=123&remained_login=1



یا اینکه اول باید از وب بروزر استفاده کنم بعدش از MSXML2 اگه جواب مثبته چجوری اینا رو بهم ارتباط بدم؟
در webbrowser اگر صرفا بخواهیم درخواستی ارسال کنیم با کدی شبیه کدی که در بالا عرض شد میتوانیم اینکار را انجام دهیم وگرنه فیلدهای موجود در صفحه بازشده را کامل و فرم صفحه را ارسال میکنیم

موفق باشید

VB6_nevis
پنج شنبه 05 مرداد 1391, 14:02 عصر
خوب حالا من با xmlhttp انجام میدم فقط یه مشکل دارم

فیلد پسورد رو پر میکنه ولی فیلد یوزر رو نه من اون uid رو با name که از توی صفحه اسمش رو گرفتم عوض کردم ولی بازم فیلد پر نمیشه

یه سوال دیگه Content-Type و .... رو چجوری پیدا کنم که چی باید باشه؟

محسن واژدی
پنج شنبه 05 مرداد 1391, 15:23 عصر
فیلد پسورد رو پر میکنه ولی فیلد یوزر رو نه من اون uid رو با name که از توی صفحه اسمش رو گرفتم عوض کردم ولی بازم فیلد پر نمیشهسلام
چرا باید مقدار دهی شود، شاید در فیلد user-name از id بجای name استفاده شده باشد


یه سوال دیگه Content-Type و .... رو چجوری پیدا کنم که چی باید باشه؟ وقتی content-type را برابر "application/x-www-form-urlencoded" قرار دهیم بسته با محتویات صفحه ست میشود

موفق باشید

VB6_nevis
پنج شنبه 05 مرداد 1391, 15:58 عصر
<input type="text" name="name" value="" class="text">

ولی پر نمیشه:(( راه دیگه ای نداره

میخام توی تراوین لوگ این کنم ولی با XMLHTTP چون میخام ای جکس بفرستم


<div class="innerLoginBox">
<form name="login" method="POST" action="dorf1.php">
<table class="transparent loginTable">
<tr class="account">
<td class="accountNameOrEmailAddress">
??? ????? ? ?? ???? ????? </td>
<td>
<input type="text" name="name" value="" class="text" /><br />
<div class="error RTL">
</div>
</td>
<td>
</td>
</tr>
<tr class="pass">
<td>
??? ???? </td>
<td>
<input type="password" maxlength="20" name="password" value="xxxxxxxxxx" class="text" /><br />
<div class="error RTL">
</div>
</td>
<td>
</td>
</tr>


این تکه کدی هست که به من برمیگرده وقتی سند میکنم

محسن واژدی
پنج شنبه 05 مرداد 1391, 16:56 عصر
کد زیر هم بررسی کنید:
WebBrowser1.Document.getElementById("name").Value = "abc"

VB6_nevis
پنج شنبه 05 مرداد 1391, 17:02 عصر
با وب بروزر نوشتم لاگ این هم میکنه ولی مشکلم واسه فرستادن و دریافت ای جکس هست که با وب بروزر نمیشه انگار واسه همین میخام با XMLHTTP کار کنم:(

با Inet یا WebBrowser میشه ای جکس فرستاد و نتیجه رو دریافت کرد؟

---------------------------------------------------------------------------------------------

این دستور لاگ این که با XMLHTTP واسه بلاگفا نوشتین فقط فرم رو پر میکنه یا اینکه لاگ این هم میشه؟ یا واسه لاگین شدن دستور دیگه ای لازمه؟ منظورم کلیک روی دکمه ورود هست

---------------------------------------------------------------------------------------------

هرجوری بود یوزر رو هم ارسال کردم و سند کردم ولی وقتی صفحه بعد رو میخام باز کنم بازم میره توی صفحه لاگ این

VB6_nevis
یک شنبه 08 مرداد 1391, 17:35 عصر
دوستان کسی نمیتونه راهنمایی کنه؟؟

میخام توی تراوین لاگین کنم و بعد توی صفحه نقشه دستورات ای جکس بفرستم

محسن واژدی
یک شنبه 08 مرداد 1391, 19:00 عصر
سلام علیکم
همانطور که اطلاع دارید Ajax را میتوانیم بگوییم صرفاً تکنیکیست که مانع از بار شدن تمام صفحه می شود و نتیجه دریافت شده توسط مرورگر نمایش داده میشود و ارتباطی با بسته های ارسالی ندارد

موفق باشید

VB6_nevis
دوشنبه 09 مرداد 1391, 18:40 عصر
بله این رو میدونم ولی دستورات ای جکس رو نمیشه با وب بروزر فرستاد

توی یه سایت خوندم با آی نت هم نمیشه و فقط با xml میشه

واقعا نمیدونم چکار کنم دیگه همون دستوراتی رو که نوشتی نوشتم با یکم تغییرات که فیلد یوزر و پسورد هم پر شد ولی وقتی صفحه بعدش رو میارم بازم همون صفحه قبل میاد که میگه باید لاگ این کنی

007rap
چهارشنبه 21 خرداد 1393, 01:13 صبح
agha mokham hangid hamon socket kar konam behtare bye vb6 nakhastimet dorod bar shoma k nemihangid

007rap
چهارشنبه 21 خرداد 1393, 01:24 صبح
اقا من ی چند تا راهنمایی ازتون طلب کنم و از حضورتون مرخص شم

من 1 دامنه 1 سرور دارم و این سرور من sql داره میخوام واسه 10 تا از دوستام 1 مسنجر بسازم که بتونیم با هم در یک اتاق چت و حتی بصورت خصوصی چت کنیم حالا میشه با vb6 یا وب نت یک مسنجر ساخت که بشه تو sql ثبت نام کرد , با یک یوزر و پسورد از طریق همون مسنجر ی که ساخته میشه چت کرد از کجا استارت بزنم چیکار کنم نظر شما چیه ؟؟؟ روش درستر چیه؟؟؟