آموزش ایجاد فرم تماس با ما در php + ویدئو آموزش و سورس فایل
اصولا هر وب سایتی باید صفحه تماس با ما داشته باشه تا بازدیدکنندگان وب سایت بتونن پیامی که میخوان رو به مدیریت سایت ارسال کنند.
تو این جلسه ما یک صفحه تماس با ما که از قبل دانلود کردیم رو با استفاده از برنامه نویسی php بتونیم داخل دیتابیس ذخیره کنیم.
قبل از آموزش این جلسه پیشنهاد میشه جلسه قبل که مربوط به آموزش اتصال به دیتابیس با PHP هست رو مشاهده کنید.
همچنین دیدن این آموزش هم پیشنهاد میشه:
ساخت دیتابیس با php و ایجاد پایگاه داده در phpmyadmin
تو این آموزش با سه تا فایل سروکار داریم. یکی contact.html برای طراحی ظاهر فرم تماس با ما، دوم فایل db-connect.php که اطلاعات اتصال به دیتابیس در اون ذخیره شده و سومی فایل process.php که عملیات وارد کردن اطلاعات فرم تماس با ما در دیتابیس قرار انجام بشه.
اطلاعات صفحه contact.html
همونطور که گفتیم تو این صفحه قرار ظاهر فرم تماس با ما باشه و باکس هایی که کاربر قرار پر کنه و به سمت سرور ارسال کنه، که ما این فرم رو به صورت آماده دانلود کردیم و اطلاعات لازم رو به اون اضافه کردیم.
در این فرم دو نکته حائز اهمیت هست. اول تگ فرم که باید mrthod رو مشخص کرد که یا با GET یا POST ارسال میکنیم و همچنین ویژگی action که آدرس صفحه ای رو میدیم که قرار اطلاعات فرم پردازش بشه.
نکته دوم ویژگی name همه تگ هایی که قرار اطلاعات شون ارسال بشه. مقداری که به name میدیم باید یکتا باشه یعنی دو تگ نباید name یکسان داشته باشه.
اطلاعات صفحه db-connect.php
کد های این صفحه شامل کدهایی برای اتصال به دیتابیس هست و در هر صفحه ای که بخوایم پردازش و کار با دیتابیس باشه اونو فراخوان میکنیم. اگر نیاز به توضیح خط به خط کد ها دارین، تشریح کد ها رو در آموزش های قبل گفتیم.
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_name = "webcamp_contact_form";
$conn = new PDO("mysql:host=$db_host;dbname=$db_name",$db_username,$db_password);
$conn->exec("set names utf8");
اسم دیتابیسی که ساختیم webcamp_contact_form هست که شامل هفت column هست.
# | نام ستون | داده |
---|---|---|
1 | id |
جهت ذخیره id هر سطر و همچنین تیک auto increment رو هم برای این فیلد فعال میکنیم. |
2 | name |
جهت ذخیره نام و نشان فرستنده پیام |
3 | tel |
جهت ذخیره شماره تماس فرستنده پیام |
4 |
جهت ذخیره ایمیل فرستنده پیام |
|
5 | msg |
جهت ذخیره متن پیام فرستنده پیام |
6 | date |
جهت ذخیره تاریخ ارسال پیام |
7 | flag |
به صورت پیش فرض 1 هست که اگر 0 بشه یعنی عدم نمایش در پنل مدیریت |
اطلاعات صفحه process.php
و اما صفحه اصلی که قرار پردازش و وارد کردن اطلاعات در دیتابیس در این صفحه انجام بشه. ابتدا یه نگاهی به کدها بندازیم:
require_once "db-connect.php";
if(isset($_POST['contact'])){
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$msg = $_POST['msg'];
$date = date("Y-m-d");
try{
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*******************************************************************************/
$stmt = $conn->prepare("INSERT INTO `contact`( `name`, `tel`, `email`, `msg`, `date`) VALUES (:a1,:a2,:a3, :a4 , :a5 )");
$stmt->bindparam(":a1",$name);
$stmt->bindparam(":a2",$tel);
$stmt->bindparam(":a3",$email);
$stmt->bindparam(":a4",$msg);
$stmt->bindparam(":a5",$date);
$stmt->execute();
echo 'data has been saved in database';
return;
}//end try
catch(PDOException $e){
echo "error : " . $e->getMessage();
$err = $e->getMessage();
echo 'there is a problem and your message was not send.';
}//end catch
}
ابتدا صفحه اطلاعات اتصال به دیتابیس رو فراخوان کردیم.
سپس چک کردیم از طریق متد post با نام contact که همان نام دکمه submit صفحه html فرم هست ارسال شده است یا نه؟
اگه ارسال شده بود که همه مقادیری که ارسال شدن رو دریافت و داخل متغیر ذخیره میکنیم.
سپس یک کوئری برای insert کردن مینویسسم و در نهایت به متغیر های موجود در کوئری مقادیر رو با استفاده از تابع bindparam انتصاب میدیم.
اگر Insert موفقیت آمیز بود که این پیام نمایش داده میشه :
data has been saved in database
و اگر خطایی رخ بده وارد بلوک catch شده و خطا نمایش داده میشه.
پیشنهاد میشه که ویدئو آموزش این جلسه رو مشاهده کنید و همچنین لینک دانلود سورس این آموزش نیز در دسترس می باشد.
دیدگاه های شما:
خوشحال میشویم نظر خودتان را درباره این مقاله با ما به اشتراک بگذارید :