گاهی اوقات شما به یک صفحه ارتباط با ما نیاز دارید تا کاربران یا بازدید کنندگان بتونن با شما در ارتباط باشن . برای ساختن همچین صفحه ای می تونید از کدهای زیر استفاده کنید .
تو این آموزش به دو فایل زیر نیاز داریم :
1. contact.php
2. send_contact.php
مرحله اول :
فایل contact.php رو باز کنید و کدهای زیر رو بنویسید :
<html>
<body>
<form action="send_contact.php" method="post">
subject: <input type="text" name="subject"><br>
message: <textarea name="message" cols="50" rows="4" id="detail"></textarea><br>
name: <input type="text" name="name"><br>
email: <input type="text" name="email"><br>
<input type="submit" value="Submit" name="submit">
</form>
</body>
</html>
از این کدها برای ساختن فرم تماس با ما استفاده کردیم . پس از اینکه فایل رو درست کردید صفحه ای به شکل زیر خواهید داشت :
مرحله دوم :
کدهای زیر رو هم داخل send_contact.php وارد کنید :
<?php
if (isset($_POST['submit'])) {
$to = "your_email@example.com";
$from = "your_email@your_domain.com";
$subject = $_POST['subject'];
$message = $_POST['message'];
$name = $_POST['name'];
$email = $_POST['email'];
$body = "Name: $name\r\n E-Mail: $email\r\n Message:\r\n $message";
$headers = 'From: ' . $from . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (@mail($to, $subject, $body, $headers)) {
$message = "Email Sent Successfully!";
} else {
$message = "Error: Sending email failed.";
}
}
?>

فایلهای این آموزش کاملا پیاده سازی و تست شده است.
این دسخط هم میتونه آموزش کمکی خوبی باشه: آموزش ساخت فرم تماس با ما و ارسال به ایمیل با PHP و Ajax
چطور میتونم به این فرم این قابلییتو اضافه کنم که با انجام فرستادن ایمیل یک کد رهگیری به شخصی که پیام را میفرستد برگرداند؟
سلام
برای فرم تماس حتما باید در دیتا بیس جدول بسازیم؟؟
سلام،
خیر، این فرم تماس به صورت ایمیل ارسال میشه و نیازی به دیتابیس نداره.
سلام ، بله شما درست می فرمایید شاید به سرور ارسال نکند اما این اطلاعات دریافتی از سوی کاربر در پایگاه داده دخیره شده و سپس به مدیر سایت برای مشاهده اطلاعات ورودی ارسال خواهد شد شاید بگویید بدون پایگاه داده هم می توان هر پروژه وب را برنامه نویسی کرد اما همان گونه HTML بدون CSS هیچ است ، همان گونه هم PHP بدون پایگاه داده،برای ذخیره سازی اطلاعات هیچ است. شاید خنده دار باشد این مثل مرد بی زن می ماند و واقعا هم همین طور است. با تشکر
سلام , کاملا متوجه شدم یعنی این دستور اطلاعات دریافت شده از کاربر را به صورت پیام تبدیل خواهد کرد و با کاراکتر n\ یک سطر جدید ایجاد می نماید یعنی ابتدا نام کاربر سپس ایمیل او و از آخر پیام دریافتی از سوی کاربر و تمام اینها توسط n\ در یک سطر جدید چاپ و سپس به سرور ارسال می شود می توان گفت : کار n\ همانند کلید Enter در نرم افزار یا ویراشگر قدرتمند Word است حتما می دانید ملاک تشخیص پاراگراف در Word کلید Enter صفحه کلید می باشد. آیا من درست متوجه شدم . باشکر
بله، درسته.
فقط اینکه به سرور نمیفرسته به کاربر ایمیل میکنه. و کلید اینتر همه جا بسته به سیستم عامل همان n\ یا r\ یا r\n\ است.
سلام خدمت شما ببخشید دستور $body = “From: $name\n E-Mail: $email\n Message:\n $message”; دقیقا چه کاری یا کارهایی انجام می دهد؟ با تشکر
ظاهرش یکم پیچیده شده، باید ساده تر مینوشتیم.
داره اسم و ایمیل و متن پیام رو به عنوان متن پیام در میاره که بفرسته. اگه یه بار اجرا کنید، میبینید که یه متنی براتون ارسال میشه که اینا هستن.
از لحاظ کد هم n\یعنی خط جدید و وقتی از ” استفاده کنید هنگام نمایش تبدیل میشه به newline.
با سلام ببخشید این کد لوکال که نمیشه تستش کرد باید توی سرور امتحان کرد. wamp server
با سلام و تشکر فراوان برای این مطلب،
سوالی که برام پیش اومده اینه که اگر بخوام به جای استفاده از دستور submit به عنوان دکمه ارسال کننده از دستور Image استفاده کنم،
مرسی
سلام مهندس
همه چیز عالی کار میکنه فقط دو تا مشکل دارم:
1. فیلدها اگر خالی یا محتوای اشتباه نوشته بشه بازم ارسال میشه.
2. پیام های ارسالی توی پوشه اسپم ایمیل میره.
با تشکر
سلام من تمام موارد را متوجه شدم اما دستور $body = “From: $name\n E-Mail: $email\n Message:\n $message”; را متوجه نشدم لطفا آن را به من توضیح دهید.
این برای متنی هست که ایمیل میشه. شما این متن رو میبینید تو ایمیل ارسال شده.
با عرض سلام.
من یک فرم نظرات درست کردم ، مشابه با فرم کانتکت شما، با این تفاوت که من نمیخوام نظرات به ایمیل فرستاده بشه. میخوام که نظرات با تایید ادمین در سایت گذاشته بشه . لطفا راهنمایی کنید. ممنون می شم !
سلام ممنون از راهنمایی هاتون
میشه کمک کنید لطفا
من با این ارور مواجه میشم
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\mail\contactform.php on line 9
ضمنا توی سی پنل تنظیم خاصی وجود داره ؟ ادامه سوال قبل
سلام استاد
این فایلهارو ساخت و اجرا کردم اما توی صفحه تماس وب سایت وقتی ارسال میکنم روی please waite قفل میشه و حتی ایمیلی دریافت نمیکنم ضمنا ادرس جی میلم رو بعنوان گیرنده دادم برنامه لطفا راهنمایی کنید -با تشکر
سلام،
لطفا دوباره مطلب رو بررسی کنید، این مطلب اصلا please wait نداره!!
سلام و عرض ادب و تشکر بابت سایت خوبتون
من الان این فرم رو توی یه هاست رایگان گذاشتم و ایمیل ارسال کردم ارسال هم شد ایمیل منتها در صفحه ایمیل،تایتل یه اسم عجیب غریب داره حالا راهی هست که درست بشه یا نه؟
سلام مجدد
اقا من رو هاست تست کردم شد
اما نمیشه کاری کرد که بعد از زدن کلید ثبت وارد صفحه دیگه ای نشه؟
یا اینکه تو همون صفحه یه پیام بده؟
ممنون
آقا این چه وضعشه ؟!
آخه چرا شما اینقد خوبید؟ هاااااا ؟
مرسی :دیییییییی
🙂 لطف دارید شما.
کردم،
اما نفرستاد
سلام،
رو لوکال هاست کار میکنه؟
چون من تست کردم نشد !
سلام،
رو لوکال ایمیل نمیتونید بفرستید. مگر اینکه ایمیل سرور رو run کرده باشید. و یا از یک ایمیل سرور خارجی استفاده کنید.
سلام
کد بالا برای وردپرس همراه جواب می ده
سلام، متوجه منظورتون نشدم!!
اگه میشه خودتون یه فیلد توی html اضاف کنید
تویphpهم کدشو اضاف کنید… ممنون میشم..
خیلی کشش داده این
فقط میخوام یه action واسه این فیلده به کده اضاف بشه
فایل ضمیمه :