50 دیدگاه در “آموزش ساخت صفحه ورود (لاگین)

  1. با تشکر از آموزش خوبتون
    ببخشید دو سوال داشتم:
    ۱- برای جلوگیری از حملات بازسازی سشن باید چیکار کرد؟
    ۲- من در بعضی سایت ها مطالبی مبنی بر امن نبودن هش ام ذی ۵ خوندم، درسته؟ اگر اینطوره باید از چه روشی استفاده کرد؟

    • برای بخش اول می تونید از این تابع session_regenerate_id استفاده کنید. http://php.net/manual/en/function.session-regenerate-id.php و یه سری نکته های دیگه که می تونید سرچ کنید. به زودی یه پست در مورد امنیت ارسال می شه که سوالهاتون رو پاسخ می ده.
      سوال دوم هم درست نیست. MD5 بدون بازگشته و به هیچ وجه قابل بازیابی نیست. مگر اینکه از واژه هایی که توی واژه نامه ها هست استفاده بشه که خوب باز هم دسترسی بهشون همچین راحت نیست. ولی برای اطمینان از اینکه کد کاملن غیر قابل بازگشت باشه معمولن پسورد رو با یه رشته های دیگه ترکیب می کنن و بعد MD5 می کنن. مثلن میان پسورد رو با تایم استمپ ترکیب می کنن و یه رشته ی خاص دیگه که خود برنامه نویس می تونه تو ترکیبش دخالت کنه.

    • با عرض معذرت خدمت شما دوست عزیز،من کامنت شما رو تازه دیدم
      بله حواسم به آرایه ی خطا در فرم لاگین نبود و باز هم معذرت
      می تونید این کد رو بعد از تگ با دی در فرم لاگین اضافه کنید:

      0 ) {
                      echo '
        '; foreach($_SESSION['ERRMSG_ARR'] as $msg) { echo '
      • ',$msg,'
      • '; } echo '
      '; unset($_SESSION['ERRMSG_ARR']); } ?>
  2. سلام
    پست بسیار عالی بود
    این فایل هارو ایجاد کردم و در پوشه wwwroot هاست قراردادم و فایل دیتابیس رو هم با نام login.sql در پوشه db قرار دادم. اما وقتی فایل form-login.php رو فراخوانی کردم و یوزرنیم و کلمه عبور رو test وارد کردم، با خطا مواجه شد و نتونست به دیتا بیس وصل بشه
    در قسمت کنترل پنل سایت، دیتابیس رو MySQL قراردادم و یه یوزر و پسوورد هم گذاشتم و این اطلاعات رو در فایل config.php درج کردم و بجای localhost هم آدرس سایت رو قراردادم. اما بازهم نشد
    لطفا بفرمائید چه موارد دیگری رو باید انجام بدم
    سوالی هم در مورد دیتا بیس دارم
    اینکه در قسمت بالا ساختار دیتا بیس رو با نرم افزار خاصی ایجاد می کنید؟ منظورم این هست که در مورد aspx از SQL Server استفاده می شه که نرم افزار سنگینی هست و لی آیا MySQL هم وجود خارجی داره و کاربردی هست یا فقط بمنظور اجرای فایل ها نصب میشه؟
    وقتی شخصی از فرم register که نوشتید یک اکانت ثبت میکنه، اطلاعاتش در همین فایل دیتابیس پائین اون test که ایجاد کردید، اضافه میشه؟
    با تشکر

    • سلام دوست عزیز
      به علت تاخیر در جواب کامنتتون معذرت میخوام
      خب شما مشکل اساسی در ایجاد پایگاه داده دارین،شما باید ابتدا نرم افزاری برای ایجاد پایگاه داده نصب کنید یا از طریق ترمینال و دستورات این کار رو انجام بدید.
      برای مثال،شما با نصب نرم افزاری مثل wamp هم سرور مای اسکیوال نصب میکنید هم یوزر اینترفیسی برای کار کردن باهاش،که بتونید دتیابیس و جداول و همه کاراهای مربوط به بانک اطلاعاتی تون رو به صورت ویژوال انجام بدید.
      پس اگه با ویندوز کار میکنید نرم افزاری مثل wamp یا xamp رو نصب کنید،سپس phpmyadmin رو فراخوانی کنید و دیتابیس مورد نظرتون رو اونجا ایجاد کنید
      احتمالا شما از وب سرور asp برای php استفاده میکنید که جواب نمیده،برای فایلهای php از وب سرور خودش نظیره آپاچی استفاده کنید
      باز اگه سوالی بود در خدمتم
      سعی میکنیم مطالبی مبتدی در همین مورد براتون جور کنیم

      • در این نمونه که شما قرار دادید که پایگاه داده تشکیل شده و من فقط با نام login.sql سیو کردم
        IIS رو از روی سیستم حذف کردم و از EasyPHP استفاده می کنم
        این کدها و فایل هارو هم روی سرور هاست اصلی تست کردم با تنظیماتی که در توضیحات اشاره کردم
        MySQL رو بصورت نرم افزار مشاهده نکردم بلکه بصورت یک صفحخه وب اجرا میشه که تنظیماتی داره. نمی دونم درست هست یا نه
        با تشکر

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

    • برای این کار نیاز به پیش نیاز هایی هست که خوب لازمه مثل auth یا acl
      برای همین نیاز به یه آموزش کامل و مرحله به مرحله داره
      برای این کار برنامه ریزی شده ولی متاسفانه زمان کافی در دست نیست
      مطمئن باشید در تعطیلات عید دستی به سر و گوش این بخش هم خواهیم کشید
      با تشکر از توجه تون

      • آیا این موارد رو میشه با ووردپرس ایجاد کرد؟ یا نیاز به برنامه نویسی و فراگیری این پیش نیازها هست؟

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

    Warning: Cannot modify header information – headers already sent by (output started at c:program fileseasyphp1-8wwwloginconfig.php:12) in c:program fileseasyphp1-8wwwloginlogin-exec.php on line 101
    خطای فوق درصورتیکه یوزر و پسورد وارد نشده باشه ظاهر میشه و درصورتیکه یوزر و پسورد وارد کنیم این خطا ظاهر میشه
    Warning: session_regenerate_id(): Cannot send session cookie – headers already sent by (output started at c:program fileseasyphp1-8wwwloginconfig.php:12) in c:program fileseasyphp1-8wwwloginlogin-exec.php on line 125

    Warning: Cannot modify header information – headers already sent by (output started at c:program fileseasyphp1-8wwwloginconfig.php:12) in c:program fileseasyphp1-8wwwloginlogin-exec.php on line 137
    لطفا راهنمایی کنید که کجای کار م اشکال داره
    ممون

    • سلام دوست عزیز
      این خطا یکی از متداولترین خطاهایی هست که در شروع کار با پی اچ پی به وجود میاد.
      می تونید از لینک های زیر برای حل این مشکلتون استفاده کنید:
      http://www.tech-recipes.com/rx/1489/solve-php-error-cannot-modify-header-information-headers-already-sent/
      http://www.geeklog.net/faqman/index.php?op=view&t=38
      http://www.daniweb.com/forums/thread88479.html
      البته توصیه میشه از نرم افزاری مثل wamp یا xamp برای ویندوز استفاده بشه و در درایوی غیر از c نصب بشه،درایوی که ویندوز در اون نصبه،نصب نکنید
      تایع هدرتون header() رو پیدا کنید،مشکل شما مطمئنا در اون خط یا قبل از اونه.

    • قبل از session_start یه کاراکتری داره به خروجی ارسال می شه
      شما اول از هر چیز باید سشن رو استارت کنید

      • سلام دوست عزیز !

        مشکل شما اینه که فایل login-exec.php یا فایل های دیگه تون به صورت Unicode(UTF-8) ذخیره شده ! Session کلا با یونیکود مورد داره .

        برای اینکه مشکلت حل بشه از برنامه Notepad++ استفاده کنید و فایل رو داخل برنامه باز کن و از منوی Encoding گزینه Encode to ansi را انتخاب کن و فایلت رو دوباره سیو کن و روی لوکال هاست دوباره اجراش کن.

        برنامه notepad++ :
        http://dl.downloadha.com/Kave/2/Notepad++_5.8.3%20(www.Downloadha.com).zip
        پسورد فایل: http://www.downloadha.com

  5. فایل هایی که در دو بخش “ایجاد فرم لاگین و رجیستر” مطرح کردید رو ایجاد کردم ولی وقتی تست کردم نشد
    از WampServer هم استفاده میکنم
    این کدها رو در یک فایل زیپ قرار دادم که اگر ممکنه لطف کنید و یه بررسی بفرمائید
    http://blogfr.persiangig.com/RegisterLogin.zip
    با تشکر

    • من مشکلی در فایل های شما ندیدم،با این حال سورس برنامه رو برا دانلود گذاشتم
      موفق باشید.

  6. سلام دوستان
    از سورس PHP-Login که قرار دادید، فایل mysql.sql رو که در phpMyAdmin از قسمت import وارد می کنم با این خطا مواجه میشه:
    http://up.iranblog.com/images/88zbb8bj7a6uoi65g7.jpg
    لطفا راهنمایی بفرمائید
    با تشکر

  7. سلام دوستان
    کدی که در قسمت “آموزش ساخت ایمیل فعال سازی” توضیح دادید رو چطور میتونم به قسمت “سورس کد PHP-Login” اضافه کنم؟
    من خیلی مسلط نیستم ولی هر کاری کردم درست جواب نداد…
    ممکنه شما لطف کنید این نمونه رو کامل کنید؟
    با تشکر از توسعه دهندگان PHP

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

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

  9. با سلام
    استاد عزیز من می خواستم اسکریپتی بسازم که کاربرها پس از لاگین کردن اطلاعات خودشونو ببینند و بتوانند ویرایش یا حذف کنند البته با استفاده از دیتابیس ممنون میشم اگه کمکم کنی. با تشکر

  10. سلام . اگر ممکن است بنده را راهنمایی کنید . اگر در سایتی بخشهای مختلفی مانند اخبار ، مقالات ، فروشگاه و … باشد در هر قسمت باید کدهای زیر را وارد کرد تا از جلسه خارج نشود و یا راه دیگری هست؟

    ممنون

  11. سلام . اگر ممکن است بنده را راهنمایی کنید . اگر در سایتی بخشهای مختلفی مانند اخبار ، مقالات ، فروشگاه و … باشد در هر قسمت باید کدهای زیر را وارد کرد تا از جلسه خارج نشود و یا راه دیگری هست؟

    ممنون

  12. سلام . اگر ممکن است بنده را راهنمایی کنید . اگر در سایتی بخشهای مختلفی مانند اخبار ، مقالات ، فروشگاه و … باشد در هر قسمت باید کدهای زیر را وارد کرد تا از جلسه خارج نشود و یا راه دیگری هست؟

    http://up1.iranblog.com/images/44q.jpg
    ممنون

  13. سلام خدمت پی اچ پی کاران عزیز
    ببخشید تو برنامه login-exec.php خط ۵۸ چرا اپسورد رو دوباره با post فراخوانی کردین. پس فایده انجام پردازش های تابع clean و ساخت متغیر جدید password$ چی بوده؟

  14. با سلام
    ممنون از مقالات خوبتون
    اگر درست فهمیده باشم : اطلاعات کاربرهای معمولی سایت داخل یک جدول می باشد و بعد از کانکت اولیه به mysql اعتبار آنها چک می شود
    حال من یک نگرانی در مورد اتصال از طریق PHP با سرور دارم، منظورم همون کانکت اولیه با root (یا هر کاربرmysql) به mysql می باشد که به صورت متنی است.
    آیا می تواند یک مشکل امنیتی ایجاد کند؟ حال از طرف هکر ها یا از طرف مدیر یا صاحب “هاست”، فرضا فایل حاوی کاربر mysql را باز کرده کاربر و کلمه عبور را بخوانند سپس با لاگین کردن به mysql، جداول را باز کرده لیست ایمیلها رو بردارند.

  15. ضمن عرض سلام و خسته نباشید به شما…
    میشه جواب منو به ایمیلم بفرستید؟
    سوال؟من اگه بخوام پی اچ پی رو در حد حرفه ای یاد بگیرم باید چیکار کنم؟جایی هست بشه رفت کنار یه سری حرفه ای نشست یاد گرفت؟پی اچ پی رو بلدم ولی این چیزایی که اینجا از شما دیدم فهمیدم در حد صفرم.خواهش می کنم راهنماییم کنین.

  16. با سلام
    ممکنه بنده را راهنمایی کنید چرا دائما برای برنامه ام پیغام (سرور قادر به انتخاب دیتابیس نیست) یا (خطا در برقراری ارتباط با سرور) می دهد .ایراد از چیه

    • مشکل ممکن چندین دلل داشته باشد
      شما ابتدا از نصب کامل سرور دیتابیستون مطمئن بشید
      بعد، از درست بودن نام کاربری و پسوردتون مطمئن بشید
      با اگه مشکل داشتین خطا رو به صورت کامل برامون ارسال کنید تا بشه بهتر کمک کرد
      ــــــــــــــــــــــــــــــــ
      در ضمن بنده و دوستان مشکلات خاص خودمون رو داریم بعضی وقتا میشه چندین ماه هم نمیتونیم به سایت سر بزنیم
      در کل شرمنده اگه دیر شد

      • تشکر از راهنمایتون
        مشکل برنامه ام همانطور که شما فرمودید عدم اتصال فرم login به دیتابیس بود

  17. سلام من بعد از اجرا به این مشکل برمیخورم . میشه بگی چی کنم؟
    Notice: Undefined index: ERRMSG_ARR in D:xampphtdocsshabPHP-Loginlogin-form.php on line 26
    in araye ro ye dusti balatar goft tarif kon ke shoma kardi ama baz in error has chera?

    • خیلی سخت نیست
      یه if می زاری که اگه سشن ست شده باشه بنویسه لاگین و اگه ست نشده باشه بنویسه لاگ اوت.

  18. سلام ٰمخلص برو بچهای زنجانی.آقا من نمیدونم error زیر رو حل کنم:
    Notice: Undefined index: cnt in C:\wamp\www\khojasteh\index1.php on line 3 ممنون

  19. ہیلو

    میں خریداری کے لئے ایک ڈیٹا بیس کی ضرورت ہے
    ویب سائٹ shonping RU
    ڈیٹا بیس سے تمام میں چاہتا ہوں کہ صرف

    ای میل + ٹیبل: صرف پاس ورڈ ٹیبل پر مشتمل

    اگر آپ دلچسپی رکھتے ہیں، براہ مہربانی مندرجہ ذیل شامل

    ای میل: ronitarronitar yahoo.com @

    یا
    اسکائپ: ronitarronitar

    1 نوٹ: LR بمقابلہ مطلوبہ ڈیٹا بیس خریداری سائٹ $ ۱۰

    مجھے امید ہے کہ آپ کو لکھنے

    شکریہ

  20. با سلام
    من در هنگام عضویت با هشدار زیر مواجه می شوم لطفا راهنمایی کنید:
    Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: YES) in /home/u379448296/public_html/register-exec.php on line 13
    Failed to connect to server: Access denied for user ‘root’@’localhost’ (using password: YES)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: