ساخت فرم ثبت نام(Register) با PHP

۱۳۸۹/۱۱/۰۶

فرم عضویت در سایت نیز یکی دیگر از نیازها و ویژگی های یک سایت پویاست،با توجه به آموزش های قبلی که در سایت قرار گرفته بود و همچنین درخواستهایی برای آموزش این قسمت،تصمیم گرفتم تا نمونه از یک صفحه ثبت نام رو به صورت مجزا و ساده آموزش بدم.بهتر می بینم تا ابتدا به فایلهایی که برای این آموزش نیاز خواهد بود اشاره ی بکنم.

  • register-form: این فایل همان فرم ثبت نام ما را تشکیل خواهد داد که متشکل از فیلد های ورودیست.
  • register-exec:بعد از پر کردن فرم بالایی و ساب میت کردن اطلاعات به این صفحه منتقل شده و پس از صحت اطلاعات در دیتابیس ذخیره خواهد شد.
  • register-success:بعد این که ثبت نام با موفقیت انجام شد به این صفحه هدایت خواهیم شد.

به روال پست های قبلی من کد ها رو میزارم و اگه توضیحاتی بود داخل کد ها به صورت کامنت میزارم.و این آموزش ادامه پست قبلی هستش که حتما باید مطالعه بشه

خب یک فایل پی اچ پی با نام register-form ایجاد کرده و کد زیر رو داخلش قرار میدیم:






Login Form



0 ) {
                echo '
    '; foreach($_SESSION['ERRMSG_ARR'] as $msg) { echo '
  • ',$msg,'
  • '; } echo '
'; unset($_SESSION['ERRMSG_ARR']); } ?>
First Name
Last Name
Login
Password
Confirm Password
 

سپس فایلی به نام register-exec ساخته و کد های زیر رو داخلش قرار میدیم:

 0) {
                                $errmsg_arr[] = 'Login ID already in use';
                                $errflag = true;
                        }
                        @mysql_free_result($result);
                }
                else {
                        die("Query failed");
                }
        }
        
        //اگه اطاعات وارده شده دارای خطا باشند به فرم ثبت نام ریدایرکت میشن
        if($errflag) {
                $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
                session_write_close();
                header("location: register-form.php");
                exit();
        }

        //اگه اطاعات وارد شده دارای خطا نباشند اطلاعات در دیتابیس ذخیره میشه
        $qry = "INSERT INTO members(firstname, lastname, login, passwd) VALUES('$fname','$lname','$login','".md5('$password')."')";
        $result = @mysql_query($qry);
        
        //در اینجا بررسی میشه که آیا کوئری به صورت موفق انجام شد یا نه
        if($result) {
                header("location: register-success.php");
                exit();
        }else {
                die("Query failed");
        }
?>

سپس فایلی به نام register-success ساخته و کد زیر رو داخلش قرار بدید:





Registration Successful



Registration Successful

Click here to login to your account.

این سه فایل رو به همراه فایلهای آموزشی قبلی در یک پوشه قرار داده و سپس اجرا کنید.

امیدوارم به درد خور بوده باشه

56 دیدگاه در “ساخت فرم ثبت نام(Register) با PHP

  1. بازپینگ: آموزش ساخت صفحه ورود (لاگین) | PHPDevelopers.ir

  2. ممنون از این پست . بدردم خورد.
    من پی اچ پی رو شروع کردم.و دارم پیشرفت میکنم.اگه سوالی داشته باشم میتونم ازتون بپرسم.با تشکر از شما

    • سلام دوست عزیز
      ما اینجاییم که از همدیگه یاد بگیریم،سوالی بود بنده و دوستان در خدمتیم

  3. منظور بنده اینه که آیا می شه برای قسمت ثبت نام وردپرس چند سایته گزینه ای برای ورود رمز عبور دلخواه کاربر ایجاد کرد؟

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

  4. چطور می تونیم فایل php رو در صفحه فراخوانی کنیم؟
    در فایل register-form همه صفحه با html کار شده و فایل register-exec هم از طریق action فراخوانی میشه
    تا اینجا می تونیم صفحه رو با فرمت html. ذخیره کنیم
    اما اون قسمتی که برای ست کردن خطا در وارد کردن اطلاعات قراردادید رو میشه بصورت دیگه ای در صفحه وارد کرد؟ که فرمت صفحه همون html باقی بمونه؟
    چون الان صفحه از فرمت html خارج شده و برای اجرای کد نیاز هست که کل صفحه رو با فرمت php. ذخیره کنیم

    • htmlو php هیچ فرقی با هم ندارن یعنی خیلی راحت می تونید تگ های html رو در هر دو نوع استفاده کنید. پس بهتره از همون صفحه ی php استفاده کنید که بعدها شاید کارای دیگه ای هم بخواید بکنید.

  5. سلام
    خیلی کامل و جالب بود.
    من نیاز به یه فرم عضویت دارم که علاوه بر عضو کردن و ذخیره یوزر و ارسال اطلاعات به ایمیل عضو، اطلاعات رو به صورت حلقه ای از کاربر بگیره.
    مثلا نام و نام خانوادگی و ایمیل رو که گرفت، رشته و زیر رشته و شاخه و این چیزها رو هم بگیره و ذخیره بکنه.
    نمونه:
    نام: حمید
    نام خانوادگی: حمیدی
    رشته: اگر ریاضی بود> زیر شاخه: ۱-برق۲-کامپیوتر۳-صنایع ۴….. الی آخر………..اگر رشته هنر بود مثلا: زیر شاخه: تجسمی! ۲-موسیقی۳-طراحی پارچه الی آخر!!
    میتونید به من کمک کنید؟
    یا آموزشی از این مورد در سایت قرار بدین؟
    ممنون

    • برای این کار بهتره از ایجکس (ajax) استفاده کنید.
      دوتا dropdown می گذارید. اولی انتخاب رشته
      دومی انتخاب زیر شاخه
      وقتی اولی رو عوض کرد، محتوای دومی هم براساس اون عوض می شه.
      این لینک می تونه کمکتون بکنه:
      http://php-ajax-code.blogspot.com/2007/07/ajax-triple-dropdown-with-states-cities.html

  6. سلام
    این کد ها باید درکجا در نوت پد بنویسم یا نرم افزار خاصی دارد ،و دیتا بیس کجا باید طراحی کنم

    • شما از پایه آشنایی ندارید.
      باید پی اچ پی یاد بگیرید (از ابتدا از نصب وب سرور تا نوشتن یه سایت ساده) بعد بتونید از این کدها استفاده کنید.

  7. در پی اچ پی این کد را می نویسم جواب می دهد ولی می خواهم اچ تی ام آن را عوض کنم ارور می دهد و خودم صفحه طراحی کنم ارور می دهد باید با چه پسوندی آن عوض کنم .

  8. سلام، خوبی شما من سعید هستم یه دس کوچیکی داریم ت طراحی، قسمت امنیتی یه reg با چه مواردی کامل میشه ؟ مثلا بستن دریچه های ورودی textbox ها ! راهه حل می خوام تا نشه یه reg و به راحتی دور زد و با نوشتن یه کد مخملی از rees hack نتونن راحت کد و بفرستن تو database . لطفا اگه امنیت نویسی انجام دادی راهه حل بده !

  9. سلام
    من یک فرم ثبت نام پی اچ پی دارم که شامل چهار کادر است
    حالا می خواستم موقع ثبت فرم فرد یک کد را هم برای ثبت نام وارد کنه یعنی یک کد چهار رقمی را وارد کنه و ثبت نام کنه برای جلوگیری از اسپم
    یا با یک آی پی بیشتر از یکبار اجازه ثبت نام نداشته باشه
    میشه کمک کنید چگونه این کد را داخلش وارد کنم؟
    کمک کنید نیاز دارم

  10. سلام . لطفا برای سورس لاگین و قسمت پروفایل بالا ، آموزش ویرایش اطلاعات را نیز آموزش دهید . بسیار ممنون

  11. سلام
    واقعا مطلب خوبی بود و مرســـــــی !
    ولی چند تا سوال دارم :
    ۱- وقتی ما پسورد رو با تابع clean پاکسازی و ایمن میکنیم چرا دوباره توی درج تو جدول همونی که کاربر وارد کرده میزنیم ؟ ($_POST['password'] و بجاش $password رو نمیزنیم ؟
    ۲- اگه قراره پسورد md5 بشه دیگه چه نیازی هست clean بشه ؟
    ۳- همین الان یادم بودا !!!!! :دی

    • سلام دوست عزیز
      در مورد سوال اول حق با شما بود،کد اصلاح شد،باید md5(‘$password’) در جدول ذخیره میشد.
      در مورد سوال دوم هم:
      md5 ربطی به clean کردن نداره،ما اطلاعات وارد شده را از کارکترهای خاصی که در اس کیو ال اینجکشن مورد استفاده قرار میگیرند پاک میکنیم،و این دو تابع عملکرد یکسانی ندارند،کاربرد md5 در هش کردن داده هاست

  12. سلام از آموزشتون خیلی ممنونم
    خیلی واسم مفید بود
    ولی یه مشکل اساسی دارم
    من دقیقاً کد هارو مطابق کد شما نوشتم فقط اتصال به دیتابیس رو یه ذره تغییر دادم که با بقیه سایتم جور شه
    البته تو حالت عادی با اتصال شما هم تست کردم همین مشکل رو داشت
    تو فرم لاگین هیچ مشکلی ندارم و به خوبی لاگین میشه
    مشکل من اینجاست که وقتی از طریق فرم رجیستر یک کاربر جدید اضافه می کنم رمز عبور اشتباه کد میشه یعنی جوری کد میشه که فرم لاگین نمیشناسه
    مثلاً رمز پیشفرض که test هست و با لاگین مشکلی نداره کد شدش میشه ۰۹۸f6bcd4621d373cade4e832627b4f6
    ولی با فرم رجیستر وقتی رمز رو test میزنم کد شدش میشه ۲۴۳e61e9410a9f577d2d662c67025ee9
    به همین ترتیب تمام رمز ها اشتباه کد میشه یعنی من با هیچ رمز جدیدی نمیتونم وارد سیستم بشم.

    اگه زودتر جواب بدید ممنون میشم آخه خیلی عجله دارم
    اگه رفع نشد لطفاً بگید چطور بدون کد کردن بریزم تو جدول
    بازم ممنون

  13. راستی یه سایت دارم میزنم مال هتل
    این سایت سیستم رزرو آنلاین داره
    یعنی کاربر مشخصاتشو میده بعد اتاق رو انتخاب میکنه بعدم تاریخ شروع و تاریخ پایان
    حالا من میخوام یه لیست از تمام اتاقام داشته باشم که جلوی هر اتاق بنویسه رزرو نشده یا اگه شده از کی تا کی
    اینو میخوام بر اساس جدول رزروام چک کنه یعنی مثلاً واسه اتاق ۱۰۴ تمام رزرو هارو چک کنه اگه ۱۰۴ رو پیدا نکرد بنویسه رزرو نشده
    اگه پیداش کرد تاریخ شروع و پایانش رو چاپ کنه

    تو فرم رزرومم یه مشکل دارم اونم اینه که نمیدونستم چجوری چک کنم که طرف مقدار تکراری وارد نکنه اومدم فیلد شماره اتاق رو کلید کردم حالا اگه یه اتاق رزرو بشه دیگه کلاً نمیشه اون اتاق رو رزرو کرد.
    ولی من میخوام واسه روزای بعدش بشه
    در ضمن واسه این جداول فرم ویرایش و حذف و نمایش کل هم ساختم

    اگه بتونید راهنماییم کنید یا یه فرم رزرو واسم بذارید خیلی خیلی ممنون میشم
    فقط این یه پروژه درسیه وقت زیادی ندارم
    بازم ممنون

  14. سلام .
    خیلی معماری mvc رو تقریبا رعایت کردین اما در این برنامه اصلا از زیر برنامه استفاده نشده و کد ها یه خورده زیاد است .

  15. سلام منه سایتی با هاست ۲۰مگ خریدم ولی اصلا بلد نیستم قالب براش طراحی کنم با فرمت پی اچ پی
    و تو هاست سایتم قالب رو بارگذاری کنم تا وقتی ادرس رو وارد میکنم صفحه نخست سایت رو ببیسنم لطفا کمکم کنید

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

      • سلام.خسته نباشین
        من میخوام توی وبلاگم یه فرم ثبتنام بذارم. ولی هیچی بلد نیستم. چطور میتونم اطلاعاتی که کاربر توی فرم ثبتنام مینویسه را ذخیره کنم؟ کجا باید ذخیره کنم؟ آیا دیتابیس همون فایل اکسل هست؟ راهنماییم کنید لطفآ

  16. سلام .یه برنامه نوشتم میخوام اسم user رو که میگیره کد کنه.
    با دستور md5 بلدم .
    میخوام کد برگشت پذیر باشه به همون اسم.
    لطفاً جواب بدید.

    • دوست عزیز
      مطالبی در این مورد روی سایت وجود داره:
      http://www.phpdevelopers.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%87%D8%B4%DB%8C%D9%86%DA%AF-hashing-%D9%88-%D9%85%D8%AD%D8%A7%D9%81%D8%B8%D8%AA-%DA%AF%D8%B0%D8%B1%D9%88%D8%A7%DA%98%D9%87-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%A7/

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

    • دوست عزیز
      مطلبی با همین موضوع در سایت وجود داشت میتونید از این کمک بگرید:
      http://www.phpdevelopers.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%D8%A8%D8%A7-php/

  18. سلام من در بلاگفا وبلاگ دارم و بلاگفا این امکان رو نداره که من بتونم فرم عضویت رو قرار بدم لطفا من راهنمایی کنید با تشکر

  19. باسالم
    آموزشتون عالی بود
    ولی من یه سوال ذهنم رو گرفته اگه ما بخوایم تو همه صفحه که فرم داریم یعنی کاربر اطلاعات رو وارد می کنه کدهای php بزاریم وقتی می خوایم این کار رو انجام بدیم
    $fname = clean($_POST['fname']);
    $lname = clean($_POST['lname']);
    $login = clean($_POST['login']);
    $password = clean($_POST['password']);
    $cpassword = clean($_POST['cpassword']);

    خطا از نوع Notic میده که متغییر ها تعریف نشده اند. ما باید از چه طریقی مقادیر فرم رو به متغییرها نسبت بدیم.یا اصلا نسبت ندیم چه جوری از اطلاعات فرم استفاده کنیم.
    ———————————————————————————————————————-
    اینو به خاط این پرسیدم چون مثلا اگه بخوایم پیغام ثبت نام تکمیل شد رو بالای فرم قرار بدیم از چه طریقی انجام پذیر هست.اگه ممکنه یه راحل بگید.ولی مورد بالا رو می خوام بدونم چجوری اون کاری که گفتم مممکنه
    مرصی

  20. درود
    اقا من اینارو اپلود کردم در هاستم. ایمیل رو برام ارسال می کنه ولی فعال نمی شه ممنون می شم کمکم کنید.
    با تشکر

    بدرود

  21. سلام میشه لطف کنین یه اموزش در ارتبلط با ساخت فرم ثبت نام توسط php البته با استفاده از پایگاه داده اکسس بزارین ؟

  22. سلام و عرض خسته نباشید
    بنده میخواستم یک فرم ثبت نام بنویسم و میخواستم فیلد ایمیل از دیتا بیس چک شود و در صورت تکراری بودن هشدار داده شود و کدی که نوشتم به این صورت میباشد ولی عمل نمی کند لطفا” بنده را راهنمائی کنید :

    // Check the e-mail address  
            $result = mysql_num_rows(mysql_query("SELECT email FROM account WHERE email='$emailCHecker'"));
    if($result > 0)
    {
    {die_error("ایمیل تکراری میباشد");}
    }
    

    //Check the e-mail address

  23. لطفا آموزش ثبت سوال در وب سلیت با استفاده از دستورات php را به ایمیلم بفرستید.با تشکر از سایت خوبتون

  24. سلام
    ممنون از اموزش مفیدتون
    خیلی وقته دنبال یه همچین اموزشی میگشتم
    میخاستم برم کلاس خصوصی گفتن ۱۷۵تومن
    فقط میخاستم بدونم شما طراحی سایت هم کار میکنین,؟
    اگه کار میکنین چه جوری میتونم سفارش طراحی یه سایت بدم بهتون اگه ممکنه ایمیلتونو بدین
    با تشکر

    • خوشحالم مفید واقع شده
      طراحی هم تا حدودی کار میکنیم،چه من چه دوستانم
      ایمیلم:
      codeblocks1 [at]gmail[dot]com

  25. سلام من یه مشکلی دارم اینکه وقتی مقادیرو کاربر وارد میکنه این پیغام میده : Query failed و وقتی هم هیچی وارد نمیکنیم این پیغام :
    Warning: Cannot modify header information – headers already sent by (output started at C:\wamp2\www\SiSuf\config.php:6) in C:\wamp2\www\SiSuf\login-exec.php on line 42
    اصن درست کار نمیکنه نه فرم لاگین نه فرم رجیستر ، لطفآ کمک کنید ، مرسی

  26. با سلام
    فرم من با موفقیت نصب شده است اما در هنگام عضویت وقتی کل فیلد ها را پر کردم و بر روی دکمه ریجیستر کلیک می کنم هشدار زیر را میدهد من نمی دانم چیکار کنم لطفا زود راهنمایی کنید:
    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 استفاده کنید: