صفحه 1 از 9 12345 ... آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 86

موضوع: آموزش ساخت سيستم كاربري - ورود/عضويت

  1. #1
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    Post آموزش ساخت سيستم كاربري - ورود/عضويت

    آموزش ساخت سيستم كاربري
    اين مطلب رو در راستاي آموزش ساخت سيستم وبلاگ دهي مي نويسم و بعلاوه گفتم تو يك آموزش جدا باشه تا اگه كسي فقط دنبال همين بود هم راحت بهش برسه
    خيلي خلاصه مي گم
    كاربر وارد سايت ميشه
    بررسي مي كنيم آيا قبلا كاربر وارد سايت شده يا نه
    اگر وارد شده بود يعني login كرده بود كه مشخصات مربوط به خودش رو.نشونش مي ديم و گرنه فرم ثبت نام
    آموزش رو خيلي ساده و بدور از رعايت هر گونه نكات امنيتي بيان مي كنم
    انشالله فرصت كنم يك تاپيك امنيت هم تو انجمن ميذارم
    تعاريف رو از زبان خودم ميگم بنابراين ممكنه دقيقا برابر تعارف كتابي نباشه!
    سشن در لغت يعني جلسه. وقتي ما به يك سايت مي ريم مرورگر تمام كوكي هاي ذخيره شده در اون سايت رو به برنامه تحت وب ارسال مي كنه
    همين الان اگر به تنظيمات مرورگر بريد و كوكي هاي مرتبط با انجمن رو ببينيد ، مي بينيد كه يك كوكي به نام session id
    داريم.البته ممكنه در برنامه نام اين كوكي رو عوض كرده باشيم پس لزوما به همين نام نيست
    در واقع وقتي كه ما وارد يك سايت مي شيم ، اگر در برنامه تحت وب از سشن ها استفاده شده باشه يك جلسه جديد براي ما ايجاد ميشه و عموما در يك فولدر tmp كه در php.ini مشخص شده يك فايل براي هر كاربر ايجاد ميشه كه ما توسط شناسه سشن يا همون session id مي تونيم به اون سشن دسترسي داشته باشيم
    اما فرق كوكي با سشن چيه؟
    در كوكي ها تمام اطلاعات در كامپيوتر كاربر ذخيره ميشه و به راحتي قابل رويت هست و به همين خاطر اعتبار سنجي كاربر توسط كوكي ها تقريبا امري اشتباه هست
    يكي از دلايلي كه وقتي وارد سايتي ميشيم و ازمون مي پرسه براي چه مدت لاگين نگه دارمتون همينه كه چون ميشه كوكي ها رو به صورت fake ايجاد كرد و دسترسي غير مجاز ايجاد كرد
    البته طبيعتا اين مربوط به امنيت و ضعف در كد نويسي هست كه بحث ما نيست!
    در سشن ها فقط يك شناسه كد شده در قالب يك كوكي در سمت مرورگر كاربر ذخيره ميشه و بقيه اطلاعات به صورت index در همون فايلي كه در پوشه tmp براي كاربر ايجاد شده ذخيره ميشوند
    البته حتي اگر در سشن ها هم موارد امنيتي رو رعايت نكنيم با جعل شناسه جلسه ميشه امنيت سايت رو تهديد كرد ولي بررسي موارد امنيتي رو به تاپيك امنيت مي سپارم و روش هاي مقابل با اين تهديد هاي امنيتي رو در اونجا بررسي مي كنم و آموزش رو از اين كه هست پيچيده تر نمي كنم
    حالا كه با مفاهيم سشن و كوكي از زبان من(!) آشنا شديد بريم سمت كد نويسي
    تابع session_start
    sesison_start از جمله توابعي هست كه بايد قبل از هر خروجي ايي در برنامه استفاده بشه
    يعني اگر قبل از اين تابع در برنامه خروجي داشته باشيم ، تابع خطا ميده و درست اجرا نميشه
    دستورات و توابع header از اين قبيل هستند.
    با اينكه بحث ما نيست اما اين رو هم بد نيست كه بگم يكي از دلايل توصيه به استفاده از اديتور هاي استاندارد پي اچ پي همين هست كه اديتور هايي مثل notepad ويندوز قبل از كد php به خصوص در حال utf
    معمولا يك كاراكتر اضافي و غير قابل رويت در همون اديتور ايجاد مي كنند كه وقتي برنامه رو اجزا مي كنيم و خطاهايي مانند
    header already sent at line...
    يا اين قبلي مواجه ميشيم
    پس درست بعد از تگ php اينجوري برنامه رو آغاز مي كنيم
    کد PHP:
    <?php
    session_start
    ();
    //ادامه
    ?>
    حالا كه اين تابع رو زديم پي اچ پي مي گرده ببينه آيا اين كاربر براش سشن آي دي تعريف شده؟اگه شده آيا معتبر هست يا نه.
    اگر درست بود كه اطلاعات فايل ذخيره شده در پوشه tmp مطابق با اين شناسه در قالب يك آرايه پيش فرض به نام $_SESSION در برنامه قابل استفاده خواهند بود.
    و در غير اين صورت يك شناسه معتبر به كاربر تعلق مي گيره و يك جلسه جديد براي كاربر ايجاد ميشه
    تابع isset
    اين تابع ربطي به سشن ها نداره! با اين تابع مي تونيم بفهمين آيا يك متغير تعريف شده يا نه
    برنامه زير رو ببنيد:
    index.php
    کد PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['username']))
    echo 
    "welcome, ".$_SESSION['username'];
    else
    echo 
    "Please Login/register";
    ?>
    در خط سوم گفتم اگر در آرايه $_SESSION ايندكسي به اسم username كه يك اسم دلخواه و انتخابي توسط خودم هست؛وجود داشت يعني كاربر وارد شده و در غير اينصوت به كاربر اطلاعات ورود/عضويت رو نشون بده
    حالا يك فرم html ساده مي سازم
    login.html
    کد HTML:
    <form action="login.php" method=post>
    <input name=username value="" size="20">
    <input name=password value="" size="20" type="password">
    <input type=submit name=submit value="Login">
    </from>
    فرو html رو توضيح نمي دم
    فقط در خط اول به action دقت كنيد
    و method كه post هست و نه get
    نام كاربري و پسورد هم كه در فرم با نام هاي username و password مشخص شده اند
    فايل login.php
    کد PHP:
    <?php
    session_start
    ();
    if(isset(
    $_POST['username']) && isset($_POST['password']))
        if(
    $_POST['username'] == 'reza' && $_POST['password'] == 'test')
        {
        
    $_SESSION['username'] = 'reza';
        
    HEADER('LOCATION: index.php');
        }
        else
        die(
    'wrong username/password!');
    ?>
    در خط 3 بررسي كردم كه اين دو مقدار توسط فرم ارسال شده باشند
    بعد در خط 4 به بعد بررسي كردم اگه نام كاربر و پسورد دررست بود سشن يوزر نيم ايجاد بشه و كاربر به صفحه اصلي بازگشت داده بشه در غير اينصورت خطا بگيره
    چون خواستم ساده باشه براي يوزر نيم و پسورد فعلا از ديتابيس استفاده نكردم و ساده ترين حال ممكن رو پيش بردم!
    تا اينجا ما در فايل اصلي چك كرديم كاربر وارد شده يا نه
    در فايل login.html
    فرم ورود رو داشتيم
    و در فايل login.php اعتبار سنجي و تاييد هويت رو داشتيم
    در مرحله آخر اين آموزش هم logout رو بررسي مي كنيم
    براي logout كافيه سشن يوزر نيم رو حذف كنيم
    در اينجا تمام سشن هاي كاربر رو مي تونيم با تابع
    session_destroy();
    نابود كنيم!
    پس logout.php
    کد PHP:
    <?php
    session_destroy
    ();
    HEADER('LOCATION: index.php');
    ?>
    انشالله در ادامه مبحث عضو گيري رو هم ميگم و و استفاده از كدها رو با ديتابيس پيش م بريم تا كمي به واقعيت نزديك تر بشيم
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  2. تعداد تشکر ها ازRezash به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    محل سکونت
    اندیشه ، فاز 1
    نوشته ها
    389
    تشکر تشکر کرده 
    977
    تشکر تشکر شده 
    314
    تشکر شده در
    195 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    با تشکر فراوان ،
    خیلی وقت بود دنبال همچین چیزی می گشتم ، فقط ای کاش میشد ، یک سیستم خودتون مینوشتید و قرار میدادید ، یک سیستم ساده که یوزرنیم و پسوورد بخواد و وقتی درست بود وارد بشه و نبود همونجوری بمونه . اینجوری ما دانلود میکردیم و تک تک کد ها رو آنالیز میکردیم بیشتر میتونستیم روش تمرکز بگیریم .

    در کل دستتون دردنکنه .کارجالبی انجام دادید

  5. #3
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    خواهش مي كنم
    اتفاقا قصد همين كار رو دارم ، فرصت كنم ادامه آموزش رو مي نويسم و در آخر فايل ها + ساختار جدول رو مي ذارم.
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  6. تعداد تشکر ها ازRezash به دلیل پست مفید


  7. #4
    عضو دائم AmirHosein آواتار ها
    تاریخ عضویت
    May 2009
    محل سکونت
    ایالت متحده تهران
    نوشته ها
    1,295
    تشکر تشکر کرده 
    1,464
    تشکر تشکر شده 
    4,051
    تشکر شده در
    1,562 پست

    43 پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    من این رو ساختم تست هم کردم چیز جالبی هست اما دیتابیس یه چیز دیگس
    فایل های پیوست شده فایل های پیوست شده
    می گویند تقوا از تخصص لازم تر است، آ نرا می پذیرم، اما می گویم: آنکس که تخصص ندارد و کاری را می پذیرد، بی تقواست.
    مصطفی چمران
    AmirHosein -{(@)}- WebHostingTalk . ir

  8. تعداد تشکر ها ازAmirHosein به دلیل پست مفید


  9. #5
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    محل سکونت
    اندیشه ، فاز 1
    نوشته ها
    389
    تشکر تشکر کرده 
    977
    تشکر تشکر شده 
    314
    تشکر شده در
    195 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    نقل قول نوشته اصلی توسط Am!r نمایش پست ها
    من این رو ساختم تست هم کردم چیز جالبی هست اما دیتابیس یه چیز دیگس
    خیلی خیلی خیلی ممنون ، زحمت کشیدید .

    فقط یک سوال : چه جوری میشه داخل این کد تعداد زیادی یوزرنیم و پسوورد ذخیره کرد ؟

    یک سوال دیگه : خوب اینجوری ، اگر کسی فایل Login.php رو از روی هاست برداره تمام یوزنیم و پسوورد ها رو میتونه مشاهده کنه که ! راهی نداره کاری کرد کسی نتونه اون فایل رو ببینه و نشه اون رو از رو هاست دانلود کرد ؟


    با تشکر فراوان

    ---------- Post added at 03:29 PM ---------- Previous post was at 03:23 PM ----------

    میشه به روش دیتابیس هم توضیح بدید ؟

  10. #6
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    سلام
    انشالله در ادامه مبحث عضو گيري رو هم ميگم و و استفاده از كدها رو با ديتابيس پيش م بريم تا كمي به واقعيت نزديك تر بشيم
    منظورم از اينكه به واقعيت نزديك بشيم همين ها بود كه گفتيد!
    فقط مفاهيم اوليه رو توضيح دادم ، ان شالله فرصت كنم تو يك جلسه با ديتابيس ادامه ميدم و يكي هم براي تامين امنيتش

    ---------- Post added at 03:36 PM ---------- Previous post was at 03:35 PM ----------

    فقط یک سوال : چه جوری میشه داخل این کد تعداد زیادی یوزرنیم و پسوورد ذخیره کرد ؟
    تو شرطي كه نوشتم ميشه دستي اضافه كرد،ولي اينو گذاشتم باري register.php كه با ديتابيس توضيحش مي دم
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  11. تعداد تشکر ها ازRezash به دلیل پست مفید


  12. #7
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    محل سکونت
    اندیشه ، فاز 1
    نوشته ها
    389
    تشکر تشکر کرده 
    977
    تشکر تشکر شده 
    314
    تشکر شده در
    195 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    نقل قول نوشته اصلی توسط hello نمایش پست ها
    سلام

    منظورم از اينكه به واقعيت نزديك بشيم همين ها بود كه گفتيد!
    فقط مفاهيم اوليه رو توضيح دادم ، ان شالله فرصت كنم تو يك جلسه با ديتابيس ادامه ميدم و يكي هم براي تامين امنيتش

    ---------- Post added at 03:36 PM ---------- Previous post was at 03:35 PM ----------


    تو شرطي كه نوشتم ميشه دستي اضافه كرد،ولي اينو گذاشتم باري register.php كه با ديتابيس توضيحش مي دم

    کجاش میشه اضافه کرد ؟

    <?php
    session_start();
    if(isset($_POST['username']) && isset($_POST['password']))
    if($_POST['username'] == 'reza' && $_POST['password'] == 'test')
    {
    $_SESSION['username'] = 'reza';
    HEADER('LOCATION: index.php');
    }
    else
    die('wrong username/password!');
    ?>

    میشه خودتون دوتا کاربر اضافه کنید ، ببینیم کدوم کدها رو باید اضافه کرد ؟

    با تشکر فراوان

  13. #8
    عضو دائم AmirHosein آواتار ها
    تاریخ عضویت
    May 2009
    محل سکونت
    ایالت متحده تهران
    نوشته ها
    1,295
    تشکر تشکر کرده 
    1,464
    تشکر تشکر شده 
    4,051
    تشکر شده در
    1,562 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    نقل قول نوشته اصلی توسط alisc نمایش پست ها
    کجاش میشه اضافه کرد ؟

    <?php
    session_start();
    if(isset($_POST['username']) && isset($_POST['password']))
    if($_POST['username'] == 'reza' && $_POST['password'] == 'test')
    {
    $_SESSION['username'] = 'reza';
    HEADER('LOCATION: index.php');
    }
    else
    die('wrong username/password!');
    ?>

    میشه خودتون دوتا کاربر اضافه کنید ، ببینیم کدوم کدها رو باید اضافه کرد ؟

    با تشکر فراوان
    کمی صبر کنید آموزش با دیتابیس رو قرار میدن این فقط یه نمومه کوچک هست
    اندکی صبر
    می گویند تقوا از تخصص لازم تر است، آ نرا می پذیرم، اما می گویم: آنکس که تخصص ندارد و کاری را می پذیرد، بی تقواست.
    مصطفی چمران
    AmirHosein -{(@)}- WebHostingTalk . ir

  14. تعداد تشکر ها ازAmirHosein به دلیل پست مفید


  15. #9
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    Post پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    کد PHP:
    <?php
    session_start
    ();
    if(isset(
    $_POST['username']) && isset($_POST['password']))
    if(
    (
    $_POST['username'] == 'reza' && $_POST['password'] == 'test')
    OR
    (
    $_POST['username'] == 'user2' && $_POST['password'] == 'pass2')
    OR
    (
    $_POST['username'] == 'user3' && $_POST['password'] == 'pass3')
    )

    {
    $_SESSION['username'] = 'reza';
    HEADER('LOCATION: index.php');
    }
    else
    die(
    'wrong username/password!');
    ?>
    يا اگه به شكل بهتر و با آرايه ها و با استفاده از اين آموزش بخوايم بنويسيم اينطوري ميشه:
    http://www.webhostingtalk.ir/f148/آر...ر-php-13562/
    کد PHP:
    <?php
    $users 
    = array(
    'user1'=>'pass1',
    'user2'=>'pass2',
    'user3'=>'pass3',
    'user4'=>'pass4',
    'user5'=>'pass5',
    );
    $login false;
    if(isset(
    $users[$_POST['username']))
        if(
    $users[$_POST['username']] == $_POST['password'])
            
    $login true;
    if(
    $login)
    {
    $_SESSION['username'] = $_POST['username'];
    HEADER('LOCATION: index.php');
    }
    else
    die(
    'wrong username/password!');
    ?>
    البته اين روش ها در مقايسه با ديتابيس خيلي ضعيف تر هستند.
    ویرایش توسط Rezash : August 28th, 2010 در ساعت 18:04
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  16. تعداد تشکر ها ازRezash به دلیل پست مفید


  17. #10
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    محل سکونت
    اندیشه ، فاز 1
    نوشته ها
    389
    تشکر تشکر کرده 
    977
    تشکر تشکر شده 
    314
    تشکر شده در
    195 پست

    پیش فرض پاسخ : آموزش ساخت سيستم كاربري - ورود/عضويت

    hello عزیز ، ممنون ، لطف کردی .

    Am!r عزیز ، منتظر اموزش با دیتابیس هستیم .

صفحه 1 از 9 12345 ... آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 2
    آخرين نوشته: March 11th, 2013, 12:50
  2. پاسخ ها: 0
    آخرين نوشته: May 16th, 2011, 01:12
  3. آموزش ساخت يك سيستم وبلاگ دهي
    توسط Rezash در انجمن PHP-MySQL
    پاسخ ها: 12
    آخرين نوشته: December 17th, 2010, 18:09
  4. معرفی سيستم مديريت آموزشگاه اتود + نسخه نمايشی
    توسط amiri113 در انجمن مباحث دیگر
    پاسخ ها: 0
    آخرين نوشته: February 1st, 2010, 18:08

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •