انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت قسمت لاگین برای سایت (یکی بودن صفحه دریافت اطلاعات و پردازش اطلاعات) (PHP)

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

#1
سلام خسته نباشید

من یه فرم ساختم که نام کاربری و رمز ورود کاربر رو دریافت میکنه و POST میکنه به صفحه ی Login.php
و توی صفحه ی login.php چک میکنه که ایا همچین اطلاعاتی توی دیتابیس هست یا ن(تا اینجا مشکلی ندارم و بلدم)

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

فک کنم منظورمو سخت رسوندم
ولی میخام یه چیزی باشه تو مایه های سایت خودتون ینی وقتی لاگین میشه میره توی یه صفحه ی دیگه و خوش آمد میگه و بعدش redirect میشه توی صفحه ی قبل با این تفاوت که نام کاربری طرف رو نشون میده
چ جوری این کارو بکنم؟
پاسخ

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

#2
سلام.
بله ساخت دو یا چند فایل برای یک فرم و پردازش های مربوط به آن، انتخاب مناسبی نیست (البته نه همیشه) و تجربه نشان داده که اختصاص تنها یک فایل به این موارد (و بعد حالت بندی کدهای آن)، بهترین انتخاب است.
در زبان PHP ، معمولا در صفحه فرم، بر اساس متغیرهای ارسال شده به صفحه (با روش POST)، حالت بندی می کنیم. یعنی مثلا در فرم، یک field به صورت hidden تعریف می شود :

کد پی‌اچ‌پی:
<input type="hidden" name="my_form_process" value="1"/> 

بعد با کد PHP زیر چک می کنیم که آیا کاربر دکمه submit فرم را فشار داده یا نه :

کد پی‌اچ‌پی:
if(isset($_POST['my_form_process'])){ 

یا مثلا برای عدم submit فرم (به علامت ! دقت کنید) :

کد پی‌اچ‌پی:
if(!isset($_POST['my_form_process'])){ 

یک مثال :

کد پی‌اچ‌پی:
<?php
// ذخیره اطلاعات دریافت شده توسط فرم
if(isset($_POST['my_form_process'])){
    
$message $_POST['message'];
    
// پردازش اطلاعات دریافتی از فرم
    
?>
    نمایش نتیجه
    <?php
}
?>




<br /><br />
<div> 
    <form method="post" action="#">
        <input type="hidden" name="my_form_process" value="1"/>
        <br /><br />متن پیام :<br /><br />
        <textarea name="message" cols="100" rows="20"></textarea>
        <br /><br />
        <input type="submit" value="ارسال پیام">
    </form>
</div> 

مثال بالا، یک کد پایه است. یعنی می توانید حالت بندی ها را گسترش دهید، یعنی در ابتدای صفحه که اطلاعات دریافتی از فرم پردازش می شوند (البته تنها در حالتی که دکمه submit فرم را زده باشند)، اگر پردازش موفقیت آمیز بود، تعیین می کنیم که دیگر فرم نمایش داده نشود و کاربر، یک سری اطلاعات دیگر را ببیند و اگر موفقیت آمیز نبود، فرم نمایش داده می شود. این کار را می توان با تعریف یک متغیر که مقدار 0 یا 1 می گیرد، انجام داد و بر اساس حالت پیش آمده، یک مقدار را در آن ذخیره می کنیم. بعد در قسمت نمایش فرم، تعیین می کنیم که اگر مقدار آن برابر 1 بود، فرم نمایش داده شود.

کد پی‌اچ‌پی:
<?php
if($my_variable==1){
    
?>
    نمایش فرم
    <?php
}
?>

همچنین در بخش دریافت متغیرهای POST شده به صفحه، مسائل امنیتی دریافت مقادیر رعایت شوند.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#3
سلام
خیلی متشکرم درباره پاسختون
کارم راه افتاد ممنون
ببخشید یه سوال دیگه داشتم و اینه که:

الان خیلی سایتا مثلا همین سایت کلیدستان برای ورود و خروج کاربران از چه دستوراتی استفاده می کنند ؟زیرا یه سری قابلیت های دیگه داره مثل:
1- وقتی کاربر لاگین میکند اگر یک پنجره دیگر مثلا صفحه اصلی سایت را باز کند (به طور دستی ،  ن از روی لینک در سایت ) در آنجا هم لاگین شده

2- اگه کاربر پنجره رو ببنده و دوباره باز کنه بازم لاگینه و...
برای اینکار از کوکی استفاده میکنید یا لاگین بودن کاربر را بر اساس آی پی او انجا میدهید؟؟
 
پاسخ

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

#4
(۱۳۹۴/۰۸/۰۶, ۰۱:۵۹ ق.ظ)'nassa' نوشته: الان خیلی سایتا مثلا همین سایت کلیدستان برای ورود و خروج کاربران از چه دستوراتی استفاده می کنند ؟زیرا یه سری قابلیت های دیگه داره مثل:
1- وقتی کاربر لاگین میکند اگر یک پنجره دیگر مثلا صفحه اصلی سایت را باز کند (به طور دستی ،  ن از روی لینک در سایت ) در آنجا هم لاگین شده

2- اگه کاربر پنجره رو ببنده و دوباره باز کنه بازم لاگینه و...
برای اینکار از کوکی استفاده میکنید یا لاگین بودن کاربر را بر اساس آی پی او انجا میدهید؟؟

 

معمولا سیستم login و logout به صورت ترکیبی از موارد امنیتی مختلف می باشد، یعنی بر اساس میزان امنیتی که برای مدیر سایت اهمیت داشته است، این سیستم طراحی می شود. ولی این مورد که گفتید اگر فرد در یک صفحه login شود، سایر صفحات نیز وی را شناسایی می کنند، بر اساس مفهوم جلسه ها (session) در PHP می باشد :

کلید شماره 446

سیستم login و logout نمی تواند تنها بر اساس ip کاربر یا کوکی ها باشد، زیرا ip متغیر است و همچنین چون کوکی ها در کامپیوتر خود کاربر ذخیره می شوند، پس کاربر امکان دستکاری در اطلاعات آنها را خواهد داشت.
بنده به هیچ کاربری توصیه نمی کنم که خودش سیستم login و logout را کدنویسی کند. بهتر است به دنبال موارد آماده و  البته استاندارد برای آن باشید که تمامی نکات امنیتی در آنها رعایت شده باشد (و چون هزاران برنامه نویس از آنها استفاده می کنند، قبلا نقاط ضعف آنها شناسایی و برطرف شده است).


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان