آموزش اتصال پایگاه داده MySQL به PHP با استفاده از فرم عضویت

18 مهر 1397
mysql-php

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

فرم عضویت کاربران

در ابتدا یک فرم عضویت کاربران با استفاده از HTML و CSS ایجاد می کنیم. شما می توانید این فرم را بنا به سلیقه خودتان تغییر دهید. ولی ما رنگ بندی ثابتی را برای آن در نظر گرفته ایم. بنابراین داریم:

<!DOCTYPE html>
<html dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>فرم عضویت کاربران</title>
  <style>
    y {
      font-size: 14px;
      color: black;
      font-family: tahoma;
    }

    form {
      border: 3px solid #f1f1f1;
      width: 50%;
      margin-right: 25%;
      font-family: tahoma;
    }
    label{
      width: 100% !important;
    }
    input[type=text],
    input[type=password] {
      background-color: white;
      width: 100%;
      height: 100%;
      padding: 12px 20px;
      margin: 8px 0;
      display: inline-block;
      border: 1px solid #ccc;
      box-sizing: border-box;
      font-family: tahoma;
    }

    button {
      text-decoration: none;
      background-color: #8BC34A;
      border: none;
      color: #f1f1f1;
      padding: 15px 20px;
      width: 100%;
      font-family: 'arial';
      font-size: 25px;
      font-weight:bold;
      text-align: center;
      display: inline-block;
      margin: 4px 2px;
      -webkit-transition-duration: 0.2s;
      transition-duration: 0.4s;
      cursor: pointer;
    }

    .button:hover {
      background-color: #555;
      color: white;
    }

    .container {
      padding: 16px;
    }

    span.psw {
      float: right;
      padding-top: 16px;
    }

    span.psw {
      display: block;
      float: none;
    }
  </style>
</head>

<body>
<form name="form1" action="" method="post" enctype="multipart/form-data">
  <div class="container">
    <y>
      <p>
        <label for="username"><b>نام کاربری</b></label>
        <input id="username" type="text" placeholder="نام کاربری خود را وارد کنید" name="userName" required>
      </p>
      <p><label for="firstName"><b>نام</b></label> <input id="firstName" type="text" placeholder="نام خود را وارد کنید" name="firstName" required></p>
      <p><label for="lastName"><b>نام خانوادگی</b></label> <input id="lastName" type="text" placeholder="نام خانوادگی خود را وارد کنید" name="lastNane" required></p>
      <p><label for="address"><b>آدرس</b></label> <input id="address" type="text" placeholder="آدرس خود را وارد کنید" name="address" required></p>
      <p><label for="contactNumber"><b>شماره تماس</b></label> <input id="contactNumber" type="text" placeholder="شماره تماس خود را وارد کنید" name="contactNumber" required></p>
      <p> <button type="save" name="submit" value="add">ثبت نام</button></p>
      <label></label>
    </y>
  </div>
</form>
</body>

</html>

حال کدهای خود را سیو کنید و اگر همه چیز را به درستی انجام داده باشید خروجی شما مشابه تصویر زیر خواهد بود:

فرم عضویت در MySQL

حال باید نرم افزار xampp یا wamp را که برای کار با PHP روی سیستم خود نصب کرده اید اجرا نموده و وب سرویس Apache و Mysql‌ را مطابق تصویر زیر روی حالت Start یا شروع قرار دهید.

راه اندازی Xampp 3.2.2

سپس داخل فایل فوق که فرم عضویت را ایجاد کرده اید دستور زیر را بعد از تگ HTML تایپ کنید:

<?php
if (isset($_POST['submit'])) {
  extract($_POST);
  $servername = "localhost ";
  $username   = "root";
  $password   = "";
  $dbname     = "نام پایگاه داده ای که در phpmyadmin‌ایجاد کرده اید";

  $firstName = $_POST['firstName'];
  $username = $_POST['username'];
  $lastName = $_POST['lastName'];
  $address = $_POST['address'];
  $contactNumber = $_POST['contactNumber'];
  
  // ایجاد کانکشن
  $conn       = new mysqli($servername, $username, $password, $dbname);
  // بررسی کانکشن و ارتباط با پایگاه داده
  if ($conn->connect_error) {
    die("ارتباط قطع شد: " . $conn->connect_error);
  }
  $sql = "INSERT INTO `users` (firstName,username,lastName,address,contactNumber)

VALUES ('$firstName','$username','$lastName','$address','$contactNumber')";
  if ($conn->query($sql) === TRUE) {
    header('Location: login.php');
  } else {
    echo "Error: " . $sql . "<br>" . $conn->error;
  }
  $conn->close();
}
?>

توضیح کدهای آموزش اتصال پایگاه داده MySQL به PHP

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

سپس در ادامه پس از اینکه شرط برقرار بود نام سرور که در سیستم های داخلی localhost نام دارد، تنظیم می کنیم. مقدار username و password در سیستم های داخلی (روی کامپیوتر شما و در نرم افزارهای xampp‌ و wamp) برابر با root و پسورد خالی یا "" و در نهایت نام پایگاه داده MySQL که در phpmyadmin این نرم افزارها ساخته ایم درون متغییر dbname قرار می دهیم.

در خطوط بعدی مقادیر مربوط به firstName و username و lastName‌ و address و همچنین contactNumber را دریافت کرده و درون متغییرهایی با همان نام ذخیره می کنیم.

با استفاده از دستور new mysqli یک اتصال پایگاه داده MySQL و PHP ایجاد می کنیم که آرگومان های ورودی آن همان مقادیری هستند که در ابتدای برنامه مقدار دهی کرده ایم.

در خط بعدی اتصال پایگاه داده MySQL به PHP را بررسی می کنیم متد connect_error از کلاس mysqli را برای چک کردن این اتصال فراخوانی می شود. چنانچه اتصال برقرار نباشد یعنی مقدار خروجی conn->connet_error$ وجود داشته باشد آنگاه پیام ارتباط قطع شد و در ادامه متن خطا را نمایش می دهیم و با دستور die برنامه را متوقف خواهیم کرد. در غیر این صورت یک کوئری (Query) برای INSERT (وارد) کردن کاربر به جدول از پیش ساخته شده users مینویسیم. این دستور یادآوری می کند که مقادیری  از فرم دریافت کرده ایم و آنها را درون جدول users وارد یا INSERT‌ کنیم.

سپس در خط بعدی مقادیر را جایگزین کرده و اگر متد query به درستی کوئری را به پایگاه داده انتقال دهد کاربر را به صفحه دلخواه login (هر صفحه ای که شما دوست دارید) انتقال می دهیم. در غیر اینصور پیغام خطای اتصال MySQL به PHP را نمایش خواهیم داد.

و در پایان کار با استفاده از دستور close دروازه ی اتصال MySQL به PHP را میبندیم.

یک مطلب دیگر تحت عنوان آموزش ایجاد فرم ورود و عضویت در PHP در روکسو پلاس منتشر شده است که به صورت کامل و جامع نحوه ورود و عضویت کاربران در PHP و MySQL را ارائه کرده است. برای مطالعه آن لطفا روی لینک زیر کلیک کنید:

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

فایل این پروژه در پیوست انتهای همین مقاله منتشر شد.

نویسنده شوید
دیدگاه‌های شما (4 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Mani
01 مهر 1402
سلام میشه فایل های مربوط به این پروژه رو بزارید ممنون میشم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

مهدیه
14 آذر 1399
سلام خسته نباشید میخواستم بدونم چطور میتونم تو هاست از این کد ها استفاده کنم بدون سرور محلی خیلی ممنون میشم کوتاه توضیح بدید به جای اتصال به لوکال هاست از هاست اصلی سایتم استفاده کنم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
09 آذر 1398
با سلام و وقت بخیر بعد از اینکه همه ی این کار ها انجام شد ، می‌توان مقادیری که در پایگاه داده ثبت شده را در فرمت pdf ثبت کرد ؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

نادر
30 آذر 1397
با سلام و خسته نباشید ببخشید این کدها بر اساس php ورژن جدید است یا قدیمی ؟ با تشکر

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
30 آذر 1397
سلام وقت شما بخیر کدهای برای نسخه PHP ۵.۶ به بالا (+5.6) اجرا می شود.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.