صفحه 4 از 9 نخستنخست 12345678 ... آخرینآخرین
نمایش نتایج: از شماره 31 تا 40 , از مجموع 86

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

  1. #31
    عضو جدید
    تاریخ عضویت
    Sep 2009
    نوشته ها
    42
    تشکر تشکر کرده 
    49
    تشکر تشکر شده 
    20
    تشکر شده در
    15 پست

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

    آموزش مفیدی بود
    متشکرم

  2. # ADS




     

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

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

    سلام
    در ادامه آموزش قصد دارم به آموزش ساخت پروفايل يا صفحات شخصي براي هر كاربر بپردازيم.
    گريزي به آخرين مطلب بخش آموزش :
    خب يك جدول خيلي ساده براي اعضا در نظر مي گيرم
    1. شناسه اي منحصر به فرد براي هر عضو
    2. نام كاربري
    3. رمز عبور
    4. نام كاربر
    قسمت بولد شده رو توجه كنيد.
    در واقع ما براي هر كاربر يك شناسه در نظر مي گيريم و اين شناسه منحصر به فرد هست
    درست مانند شماره دانشجويي هر دانشجو
    وجود اين id اختصاصي باعث ميشه ما در جداول خودمون بتونيم به جاي تكرار مكرر نام كاربري يك كاربر خودداري كنيم
    مثلا اگر به همين اسكريپت قرار باشه يك جدول براي ارسال مطلب اضافه كنيم نيازي نيست در جدول نام كاربري نويسنده رو ذخيره كنيم و فقط كافيست شناسه كاربر رو ذخيره كنيم
    اين كار باعث ميشه از تكرار عمدي يا اجتناب ناپذير جلوگيري بشه
    و عمليات ويرايش راحت تر صورت بگيره
    (البته من يك استفاده ساده و كلي رو بازبان خودم گفتم و در عمل و اصول استفاده مهم تري هم دارد.)
    البته اين برنامه نويس هست كه بايد تشخيص در چه جايي تكرار مفيد هست و در چه جايي خير
    براي مثال در mybb به خاطر شرايط يك انجمن ،‌ در جدول تاپيك هم نام كاربري و آي دي كاربر هر دو باهم ذخيره مي شوند!
    خب به جاي حاشيه پردازي كد profile.php رو ميسازيم :
    کد PHP:
    <?php
    //session start function : بايد قبل از هر خروجي اي و فقط يك بار در كد فراخواني شود.
    session_start();
    if(!isset(
    $_SESSION['username']))
    die(
    'Please Login/register');
    echo 
    "<h1> Your personal Profile </h1>";
    echo 
    "welcome, ".$_SESSION['username'];
    $username $_SESSION['username'];
    $query "SELECT * FROM `user` WHERE `user`='$username' LIMIT 1";
    $mysql_q mysql_query($query) or die(mysql_error());
    if(
    mysql_num_rows($mysql_q) <= 0)
    die(
    'Invalid login session!');
    $data mysql_fetch_array($mysql_q);
    echo 
    "<br> Your name is : ";
    echo 
    $data['name'];
    echo 
    "<br>Your Personal id is :";
    echo 
    $data['id'];
    ?>
    خط اول : آغاز تگ php
    خط دوم : دستور session_start جهت ايجاد سشن آي دي جديد در صورت عدم وجو يا استفاده از سشن هاي موجود
    خط سوم : بررسي صحت وجود سشن نام كاربري
    خط چهارم : خروج اجباري از برنامه و نمايش خطا در صورت صحيح بودن شرط خط دوم (لوگين نبودن(
    خط پنجم : نمايش يك پيغام - از اين خط به بعد ظاهرا كاربر لوگين كرده كرده است
    خط ششم : نمايش نام كاربري كاربر
    خط هفتم : انتساب مقدار موجود در سشن نام كاربري به يك متغير براي راحتي استفاده در خط بعدي
    خط هشتم : يك كوئري - ترجمه فارسي كوئري :
    انتخاب كن تمام فيلد هاي جدول (همان ستاره) را از جدول user كه فيلد user در آن برابر متغير username ميباشد و حداكثر يك ركورد را انتخاب كن
    خط دهم : اجراي كوئري خط بالا
    خط يازدهم : تابع mysql_num_rows ورودي اجباري اي دارد كه همان متغيري است كه به mysq_query انتساب داديم
    اين تابع تعداد ركورد هاي انتخاب شده رو براي ما نشون ميده و اگر كوئري درست نباشه يك عدد منفي رو بر مي گردونه
    بنابراين در اين خطا و خط بعدي چك مي كنيم اگه نتيجه اگر صفر يا منفي بود يعني چنين كاربري در ديتابيس وجود ندارد
    مثلا ممكنه بعد از لوگين مدير كاربر رو از ليست حذف كرده باشه يا سشن جعلي باشه
    بنابراين با يك بررسي ساده ميتونيم اين موضوع رو تشخصي بديم
    در خط بعدي تابع mysql_fetch_array رو داريم
    توصيه اكيد مي كنم اگر ميخواهيد كاركر اين تابع رو به درستي درك كنيد ابتدا چند كاربر بسازيد و سپس كد زير رو در زير خط جاري وارد كنيد و. نتيجه رو براي هر كاربر بررسي كنيد
    کد PHP:
    print_r($data); 
    پ.ن : اين تابع رو قبلا و با ذكر همين نكته در پست : http://www.webhostingtalk.ir/f148/14...tml#post142185 توضيح دادم
    خب اين قسمت از آموزش مقدمه اي بر اصل مطلب بود
    تا آخر هفته براي تكميل موضوع، قسمت ارسال مطلب توسط كاربران رو هم اضافه مي كنيم.
    براحتي با همين كدهاي ساده ميتونيم امكاناتي مثل محدوديت دانلود براي كاربران يا كاربران خاص و از اين قبيل فراهم كنيم.
    پ.ن مهم : باز هم تاكيد مي كنم فعلا نكات امنيتي رو در نظر نمي گيريم.
    پ.ن 2 : لوكال سيستمم قطع بود ، كد رو تست نكردم ، اگر مشكلي گذارش بديد لطفا.
    قسمت بعدي رو كامل تر و عملي تر مي نويسم.
    سپاس
    ویرایش توسط Rezash : October 14th, 2010 در ساعت 22:11
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

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


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

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

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

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


  7. #34
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    نوشته ها
    257
    تشکر تشکر کرده 
    174
    تشکر تشکر شده 
    142
    تشکر شده در
    125 پست

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

    سلام میشه یه راهنمایی در مورد فارسی کردن تیبلها بکنید؟
    کد PHP:
    mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'"); 
    یا

    کد PHP:
    mysql_query("SET CHARACTER SET utf8;",$connection1); 
    یا

    کد PHP:
    mysql_query("SET CHARACTER SET utf8;"); 
    یا

    کد PHP:
    ENGINE=MyISAM DEFAULT CHARSET=utf8 

    من کدوم یک از اینا رو استفاده کنم؟ تا وقتی تیبل میسازم فارسی بشه؟



    کد PHP:
    if (mysql_query("create table $pagestable(
    id            int(9) unsigned not null auto_increment,
    userid            int(13) default '0' not null,
    block            text not null,

    primary key(id),
    key userid(userid)
    );ENGINE=MyISAM DEFAULT CHARSET=utf8"
    )) {
        echo 
    "table $pagestable created successfully<br>"; }
      else { echo 
    "<b>table $pagestable was not created ",mysql_error(),"</b><br>"; } 

    هر کردوم رو بعد mysql_query گذاشتم خطا میده
    Warning: require_once(vimax.php) [function.require-once]: failed to open stream: No such file or directory in /home/webhostingtalk/public_html/forum.php on line 2475

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

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

    من خودم به اين صورت عمل مي كنم و مشكلي ندارم :
    موقع ساخت جدول :
    کد PHP:
    CREATE TABLE `testing`.`test` (
    `
    test1INTNOT NULL ,
    `
    test2INTNOT NULL
    ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci 
    هنگام اتصال :
    کد PHP:
    mysql_query("SET CHARACTER SET utf8;");
    mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); 
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

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


  10. #36
    عضو انجمن
    تاریخ عضویت
    Aug 2009
    نوشته ها
    257
    تشکر تشکر کرده 
    174
    تشکر تشکر شده 
    142
    تشکر شده در
    125 پست

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

    کد PHP:
    ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci
    اینو گذاشتم درست شد دی:
    ممنون
    Warning: require_once(vimax.php) [function.require-once]: failed to open stream: No such file or directory in /home/webhostingtalk/public_html/forum.php on line 2475

  11. #37
    عضو انجمن aghaee آواتار ها
    تاریخ عضویت
    Dec 2009
    محل سکونت
    نت
    نوشته ها
    492
    تشکر تشکر کرده 
    497
    تشکر تشکر شده 
    319
    تشکر شده در
    214 پست

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

    سلام
    ممنون از آموزش عالی تون!

    حالا این فرم لاگین و ... از امنیت کامل برخوردار هست؟؟؟

    ممنون میشم امنیتش رو باهم کامل کنیم! جهت آموزش و یادگیری

    مثلا کد کردن پسورد و ...

    با تشکر
    ویرایش توسط aghaee : November 19th, 2010 در ساعت 18:44

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

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

    نقل قول نوشته اصلی توسط aghaee نمایش پست ها
    سلام
    ممنون از آموزش عالی تون!

    حالا این فرم لاگین و ... از امنیت کامل برخوردار هست؟؟؟

    ممنون میشم امنیتش رو باهم کامل کنیم! جهت آموزش و یادگیری

    مثلا کد کردن پسورد و ...

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

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


  14. #39
    عضو انجمن aghaee آواتار ها
    تاریخ عضویت
    Dec 2009
    محل سکونت
    نت
    نوشته ها
    492
    تشکر تشکر کرده 
    497
    تشکر تشکر شده 
    319
    تشکر شده در
    214 پست

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

    نقل قول نوشته اصلی توسط rezash نمایش پست ها
    خير ، به هيچ وجه امن نيست ! :دي
    بزودي نحوه امن كردنش رو ميذارم ، كاري نداره كافيه روي متغير هاي ورودي فيل تر گذاشت + يك چند كار جزيي كوچيك.
    خیلی عجله دارم برای یاد گیریش کی میزارید آموزش رو؟
    یه مبحثی هم هست که کد میکنه و... Md5 اینا چیه دیگه؟


    با تشکر

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

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

    سعي مي كنم تا فردا شب بذارم
    md5 يك الگوريتم برگشت ناپذير هست كه يك رشته ورودي رو ميگيره و مقدار 32 كاراكتري و منحصر به فردي رو به ما ميده.
    ما به جاي ذخيره كردن پسورد به صورت خام ، اون رو به صورت md5 شده و حتي استفاده از الگوريتم هاي ديگه مثل sha1 استفاده مي كنيم و اين مقدار رو ذخيره مي كنيم.
    اينجوري حتي اگه ديتابيس دست كسي بيوفته نميتونه به سادگي پسورد يوزر ها رو بدست بياره.
    اما مورد مهمتر sql_injection كه بايد در اينجا رعايت بشه كه قبلا چكيده اي ازش صحبت كرديم : www.webhostingtalk.ir/f148/16193/
    سپاس
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

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


صفحه 4 از 9 نخستنخست 12345678 ... آخرینآخرین

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

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

در حال حاضر 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

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

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