ارسال اطلاعات فرم توسط Action
با سلام
من جستجو هایی که انجام دادم در سایت نحوه پر کردن یک فرم رو یاد گرفتم و همین طور نحوه ارسال توسط کد جاوا اسکریپت!
اما مشکل من این هست که دکمه ارسال که روی صفحه وب هست یک Action را به یه صفحه وب دیگر (در یک آدرس دیگر در سرور)ارسال می کند که من مستقیماً نمی توانم به آن صفحه دسترسی داشته باشم!
می خوام بدونم برای Submit کردن یا زدن همون دکمه ارسال روی فرم باید از چه روشی استفاده کنم؟
متاسفانه روشهایی که تا الان از رو سایت مطالعه کردم جواب ندادن!
طاعات و عباداتتون قبول.
نقل قول: ارسال اطلاعات فرم توسط Action
باید اطلاعات فرم HTML مربوطه به صفحه مشخص شده Post کنید. Post یکی از روش های ارسال داده در پروتکل HTTP هست. در تاپیک های مختلف تالار دلفی درباره چگونگی Post کردن داده های یک فرم HTML صحبت شده.
نقل قول: ارسال اطلاعات فرم توسط Action
ارسال اطلاعات به یک سرور با استفاده از HTTP
این تاپیک بسیار مفید رو مطالعه کردم ولی جواب نمی ده!شاید چون داره یه رشته کد رو به صورت Hidden می فرسته ؟
چون به صفحه خطا منتثل میشم!
اون رشته کد رو به صورت run time چه جوری می تونم به دست بیارم ؟
چون اگه request بدم به سرور یه رشته جدید می فرسته؟
نقل قول: ارسال اطلاعات فرم توسط Action
نقل قول: ارسال اطلاعات فرم توسط Action
اگه submit کنم که میره تو صفحه خطا که نوشته خطا رخ داده
اگه هم پست کنم!با روشی که تو اون تاپیک شما گفتید
بازم میره تو یه صفحه خطای دیگه که شما اصلاً مجاز به دیدن این صفحه مستقیم نمی باشید و یه همچین
چیزایی!حالا نمی دونم شاید من دارم اشتباه پست می کنم؟
نقل قول: ارسال اطلاعات فرم توسط Action
ببین دقیق متن خطای روش دوم رو بنویس لطفا
نقل قول: ارسال اطلاعات فرم توسط Action
شاید هم فرم HTML مربوطه فیلدهای Hidden داره، و شما به آن فیلدها مقادیر مناسبی نمیدید، در نتیجه خطا دریافت می کنید.
نقل قول: ارسال اطلاعات فرم توسط Action
نقل قول:
نوشته شده توسط
ghabil
ببین دقیق متن خطای روش دوم رو بنویس لطفا
دقیقاً خطایی نمی ده !!! یعنی اصلاً کاری انجام نمی ده!!!
شاید من کد رو درست ننوشتم ؟
همین کد رو دقیقاً کپی کردم!
procedure THttpTestForm.btSendClick(Sender: TObject);
var
ARequestContent : TStringList;
AResponse: String;
begin
ARequestContent := TStringList.Create;
try
ARequestContent.Add('username=' + edName.Text);
ARequestContent.Add('password=' + edPass.Text);
AResponse := IdHTTPTest.Post('http://AWebSite.com/login.php', ARequestContent);
....
finally
ARequestContent.Free;
end;
end;
فقط به جای آدرس جلوی پست آدرس صفحه جاری رو می زارم!حالا نمی دونم این کد چیزی کم داره من نمی دونم ؟ یا اینکه آدرس رو اشنباه می زنم؟چون من با این کد آشنایی ندارم!عملاً کپی پیست کردم!حقیقتش اولین بار هست که با idHTTP کار می کنم!
نقل قول:
شاید هم فرم HTML مربوطه فیلدهای Hidden داره، و شما به آن فیلدها مقادیر مناسبی نمیدید، در نتیجه خطا دریافت می کنید.
آره آقای کشاورز فرم فیلد Hidden داره
نمونه اش
<input name="passlineEncoded" value="aWw4RFU2WmlnVStCdEN1VExlQ0ZvaWd0NGNKaG16M0o 1QVNKQlRYRlJnblhaRDJSeEpwZHRBPT0=" type="hidden">
اگه میشه راهنمایی کنید اینو چه جوری ارسال کنم ؟
چون run time نمی تونم دست پیدا کنم بهش اگه هم request بدم سرور یه چیز جدید میده همینو نمی ده!!!
نقل قول: ارسال اطلاعات فرم توسط Action
http://mytasvir.com/photo/gallery/14a94df5801e80.jpg
این ارور برای زمانی هست که به جای آدرس لاگین آدرس اون صفحه Action رو می دم!!!
نقل قول: ارسال اطلاعات فرم توسط Action
میتونی آدرس وب سایتی که براش ریکوست رو میخوای بفرستی رو بدی؟
نقل قول: ارسال اطلاعات فرم توسط Action
من الان مشکلم با اون فیلد Hidden هست!وگرنه فکر می کنم Submit جواب بده!
چون تست که کردم این میاد اطلاعات رو کد می کنه بعد Post می کنه!
تو URL یه SessionId می نویسه که پست میشه!
با توجه به فیلد Hidden که در پست شماره 8 نوشتم!
میشه راهنمایی کنید چطوری این فیلد رو باید پر کنم؟
توضیحات رو اونجا گفتم...
نقل قول: ارسال اطلاعات فرم توسط Action
نقل قول:
میشه راهنمایی کنید چطوری این فیلد رو باید پر کنم؟
این بستگی به اون سایت داره. شما باید خودتون کار آن را مهندسی معکوس کنید، و ببینید چه چیزی را با چه الگوریتمی کد می کند و در فیلد Hidden ارسال می کند، شما هم همان کار را تکرار کنید.
نقل قول: ارسال اطلاعات فرم توسط Action
مهندسی معکوس کار سختی هست منبع خوب در این زمینه ندارید معرفی کنید تا من آشنا بشم باهاش!؟
الگوریتم های معروف ؟ نمی دونم فکر می کنم درصد موفقیتم تو کرک کردن این کد خیلی پایین باشه!
نقل قول: ارسال اطلاعات فرم توسط Action
سلام
البته من سوادم به این حد نیست اما این فیلد مخفی رو شما میتونی از جستجو در سورس html صفحهای که نیازی به پیدا کردن تابع و مهندسی معکوس نداره .چون اکثرا این فیلد از طریق سروز پر میشه و همراه دیگر اطلاعات و قیلدهای فرم برات فرستاده میشه. شما میتونید صفحه فرم مورد نظر را در برنامه فراخوانی کنی بعد فیلدهاشو مخفی و غیر مخفی از سورس صفحه در اری و بعد این اطلاعات رو با همون تابعت پر کنی و بفرستی.:متفکر:
من خودمم همین مشکل رو با سایت بورس داشتم.از شانس بد دلفی بلد نیستم و از کداش سر در نمیازم بخاطر همین نتونستم از راهنمایی دوستان برای پست کردن اطلاعات استفاده کنم و بیخیال شدم.