PDA

View Full Version : انتقال اطلاعات یک متغییر از یک فرم به فرم بعدی و فرم بعدی و ...



daniyal_13
پنج شنبه 19 فروردین 1395, 11:37 صبح
سلام، سال نو شما مبارک
فرض کنید من یک سایت دارم که صفحه هایی با نام index.php و level1.php و level2.php و level3.php و ... داره

من میخوام اینکار ها رو انجام بدم:
1 - اطلاعات رو از صفحه ی index.php به صفحه ی level1.php بفرستم

2 - و بعد از اینکه بر روی اطلاعات ارسالی از index.php تغییراتی داده شده اطلاعات به صورت اتومات به صفحه ی level2.php ارسال بشه (البته در صفحه ی level1.php نه form داریم نه کلید Submit و اصلا قرارم نیست leve1.php نمایش داده بشه، و در صورتی که ایرادی در اطلاعات بود کاربر رو به صفحه error.php هدایت کنه و با توجه به اطلاعات داده شده از کاربر پیغام به خصوص نمایش بده)

3 - و ارسال اطلاعات از level2.php با همون شرایط بالا به فرم level3.php ارسال بشه

4 - و ...

با قسمت اول مشکلی ندارم و میدونم از طریق Form و کلید Submit با گزینه GET و یا POST اینکار انجام

درباره Session هم میدونم ولی نمیدونم آیا این اصولی هست، چون فقط اطلاعات رو در همون صفحه لازم دارم و برای صفحه ی بعدی لازم ندارم و امنیت این کار چقدره؟ آیا یک کاربر حرفه ای میتونه اطلاعات Session رو تغییر بده در حین ارسال اطلاعات به صفحه ی دیگه ؟

درضمن من میخوام که اینکار از طریق POST انجام بشه (به خاطر امنیت بیشتر)

ممنون میشم کمکم کنید

من به تازگی وارد برنامه نویسی php شدم و اطلاعات زیادی ندارم

marys_farahani
شنبه 21 فروردین 1395, 10:10 صبح
باید با ایجکس این کار بکنید

Farshid007
یک شنبه 22 فروردین 1395, 14:12 عصر
1- برای انتقال اطلاعات دوراه دارید : الف - استفاده از متد های POST , GET که هرکردوم مزایا و معایب خودشونو دارن و از نظر امنیت کاملا نا امن هستند . ب - ذخیره کردن اطلاعات وارد شده توسط کاربر از صفحه یک (برای مثال ) در مکانی و خواندن آن اطلاعات در صفحه دو {در این روش می توانید اطلاعات را در کوکی ها یا نشست ها (Session) یا در پایگاه های داده و یا حتی در یک فایل معمولی در سرور و یا هر مکانی که امکان ذخیره اطلاعات باشه write کنید.}
2-برای این کار از جاوا اسکریپت باید کمک بگیرید (البته پیشنهاد ما استفاده از کتابخانه معروف جاوا اسکریپ یعنی JQuery به دلایل مختلف و فراوان می باشد )
چنانکه برای فیلترینگ کردن اطلاعات ورودی نیاز به اجرای اسکریپت داشته باشید (برای مثال : چک کردن اینکه این نام کاربری قبلا به ثبت رسیده است یا ن )باید از تکنولوژی Ajax کمک بگیرید که بازم پیشنهاد ما استفاده از کتابخانه JQuery می باشد.در ضمن اینکه تگ فرم یا دکمه submit ای در کار نیست اصن اشکالی نداره و انا هیچ ربطی به ای جاکس ندارن
3- به طریق مشابه انجام شود
4-...
محتویات نشست ها (یا همون session ) کاملا از دید کاربر پنهان هست و کاربران نمی توانند مقادیر ذخیره شده در سشن را ببیند زیرا سشن در سرور ذخیره می شود ن کلاینت (برعکس کوکی ) {توجه داشته باشید که می توان متوجه شد که یک سشن ایجاد شده است و حتی کاربران می توانند سشن را توسط مرورگر پاک کنند که زیرا تمامی سشن ها توسط یک کوکی با نام پیش فرض PHPSSID به مروگر فرستاده می شود البته بصورت رمز نگاری }
یعنی اگر کاربری بتواند سشنی را ببیند (مقدار و نام ) یا سشنی را در سرور ایجاد کند یعنی سایت شما هک شده که این کار هم بعید میدونم امکان شدنی باشد و میره تو سطح بالا که بنده نیز هیچ اطلاعاتی در این زمینه ندارم


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