PDA

View Full Version : سوال: اتصال و دریافت اطلاعات از وب و کار با کوکی



mehrdad1991h
پنج شنبه 17 مرداد 1392, 01:08 صبح
من نیاز دارم اطلاعات (سورس) صفحه ی وبی را به دست بیاورم
صفحه ی وب مورد نظر این صفحه می باشد

http://site.com/homepage.php

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

http://site.com/login.php?user=test1&pass=testPASS1

خوب الان بعد از ارسال به صفحه ی مورد نظر منتقل میشویم
ولی از اونجا که کوکی ذخیره نشده فرد شناسایی نمیشه و به اطلاعات و صفحه ی مورد نظر درست لود نمیشه....

الان من میخوام بدونم چگونه میتونم اطلاعات را بفرستم و کوکی را هم ذخیره کنم که دقیقا بتونم به صفحه ی مورد نظر دسترسی داشته باشم
نکته : نمیخوام صفحه ی وب برازر در برنامه ام قرار بدم و صفحه ی لاگین را در برنامه لود کنم و بعد یوزر و پسورد را (دستی یا خودکار) پر کنم و ارسال کنم و به صفحه ی مد نظر دسترسی پیدا کنم

میخوام مستقیما با لینکی که میفرستم کوکی ذخیره بشه و اطلاعات صفحه ی مد نظر لود شود
راهی هست ایا ؟
اصلا این روند امکان پذیر هست یا حتما باید صفحه را لود کنم تا بتونم کوکی ذخیره کنم ؟

کسی نظری پیشنهادی ندارد ؟

مثلا میشه لینک و اطلاعات را ارسال کنم و کوکی را دریافت و ذخیره کنم سپس به وسیله ی کوکی دریافت شده
سپس صفحه ی وب مورد نظر را با کوکی دریافتی باز کنم ؟ یا چنین چیزی....

لطفا راهنمایی فرمایید

پاس

plus
پنج شنبه 17 مرداد 1392, 01:37 صبح
امکان پذیره. شما باید با نحوه کار Session، و روش ارسال و دریافت کوکی در HTTP آشنایی داشته باشید.وقتی شما اطلاعات مربوط به لاگین رو به فرم لاگین میفرستین، در هاست مقصد، یک Session برای شما ساخته میشه و ID اون به عنوان یک Cookie به Browser (یا هر سیستم دیگه ای که Request رو فرستاده) میفرسته، مثلا به این صورت:

HTTP 200 OK
Content-Type: text/html
...
...
Set-Cookie:sessionid=123456

این بخش مربوط به Response Headerی هست که هاست به شما میده.حالا شما باید session آیدی رو ذخیره کنید، و توی درخواست بعدی، در Request Header به هاست ارائه بدین تا اون شما رو بشناسه:

GET /IBSng/user/home.php HTTP/1.1
Host:....
..
..
Cookie:sessionid=123456

با ارائه این اطلاعات به هاست، اون شما رو میشناسه و اطلاعات مربوط به صفحه درخواست شده رو، به شما برمیگردونه.
البته من کلیت رو براتون گفتم ممکنه اشتباهات تایپی در مورد محتوات هدر ها داشته باشم.توصیه میکنم اول در مورد HTTP Protocol مطالعه کنید و بعد یک نرم افزار HTTP Debugger نصب کنید، با Browser به سایت مورد نظر برید، لاگین کنید و توی نرم افزار HTTP Debugger اطاعات رد و بدل شده بین Browser و هاست رو مشاهده کنید تا روش کار دستتون بیاد.

mehrdad1991h
پنج شنبه 17 مرداد 1392, 11:39 صبح
امکان پذیره. شما باید با نحوه کار Session، و روش ارسال و دریافت کوکی در HTTP آشنایی داشته باشید.وقتی شما اطلاعات مربوط به لاگین رو به فرم لاگین میفرستین، در هاست مقصد، یک Session برای شما ساخته میشه و ID اون به عنوان یک Cookie به Browser (یا هر سیستم دیگه ای که Request رو فرستاده) میفرسته، مثلا به این صورت:

HTTP 200 OK
Content-Type: text/html
...
...
Set-Cookie:sessionid=123456

این بخش مربوط به Response Headerی هست که هاست به شما میده.حالا شما باید session آیدی رو ذخیره کنید، و توی درخواست بعدی، در Request Header به هاست ارائه بدین تا اون شما رو بشناسه:

GET /IBSng/user/home.php HTTP/1.1
Host:....
..
..
Cookie:sessionid=123456

با ارائه این اطلاعات به هاست، اون شما رو میشناسه و اطلاعات مربوط به صفحه درخواست شده رو، به شما برمیگردونه.
البته من کلیت رو براتون گفتم ممکنه اشتباهات تایپی در مورد محتوات هدر ها داشته باشم.توصیه میکنم اول در مورد HTTP Protocol مطالعه کنید و بعد یک نرم افزار HTTP Debugger نصب کنید، با Browser به سایت مورد نظر برید، لاگین کنید و توی نرم افزار HTTP Debugger اطاعات رد و بدل شده بین Browser و هاست رو مشاهده کنید تا روش کار دستتون بیاد.

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