نحوه ارسال آدرس صفحه چگونه یک صفحه وب را تنها با یک کلیک برای خود ایمیل کنید. کد ارسال فرم HTML و PHP را در یک فایل قرار دهید
یکی از توابع مورد درخواست در سایت، فرم درخواست یا سفارش است که داده های آن به ایمیل صاحب سایت ارسال می شود. به عنوان یک قاعده، چنین فرم هایی ساده هستند و شامل دو یا سه فیلد برای ورود داده ها هستند. چگونه می توان چنین فرم سفارشی ایجاد کرد؟ این نیاز به استفاده از زبان نشانه گذاری HTML و زبان دارد برنامه نویسی PHP.
زبان نشانه گذاری HTML به خودی خود ساده است، فقط باید بفهمید که چگونه و کجا تگ های خاص را قرار دهید. با زبان برنامه نویسی PHP، همه چیز کمی پیچیده تر است.
ایجاد چنین فرمی برای یک برنامه نویس دشوار نیست، اما ممکن است برخی از اقدامات برای یک کد نویس HTML دشوار به نظر برسد.
ایجاد فرم ارسال html
خط اول بعدی خواهد بود
حالا بیایید همه چیز را کنار هم بگذاریم.
حالا بیایید فیلدها را به شکل اجباری کنیم. ما کد زیر را داریم:
فایلی ایجاد کنید که داده ها را از فرم HTML بپذیرد
این فایلی به نام send.php خواهد بود
در فایل، در مرحله اول، باید داده ها را از آرایه پست دریافت کنید. برای این کار دو متغیر ایجاد می کنیم:
$fio = $_POST["fio"];
$email = $_POST["ایمیل"];
قبل از نام متغیرها در php علامت $ قرار می گیرد و در انتهای هر خط یک نقطه ویرگول قرار می گیرد. $_POST آرایه ای است که داده های فرم به آن ارسال می شود. در فرم html روش ارسال=post مشخص شده است. بنابراین، دو متغیر از فرم های html. برای اهداف محافظت از سایت خود، باید این متغیرها را از چندین فیلتر عبور دهید - توابع php.
تابع اول تمام کاراکترهایی را که کاربر سعی می کند به فرم اضافه کند تبدیل می کند:
در این حالت متغیرهای جدیدی در php ایجاد نمی شوند بلکه از متغیرهای موجود استفاده می شود. کاری که فیلتر انجام خواهد داد تبدیل کاراکتر "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
اگر کاربر بخواهد آن را به فرم اضافه کند، تابع دوم url را رمزگشایی می کند.
$fio = urldcode($fio);
$email = urldcode ($email);
با تابع سوم، در صورت وجود، فاصله های ابتدا و انتهای رشته را حذف می کنیم:
$fio = trim($fio);
$email = trim($email);
توابع دیگری نیز وجود دارند که به شما امکان می دهند متغیرهای php را فیلتر کنید. استفاده از آنها بستگی به این دارد که چقدر می ترسید یک مهاجم سعی کند کد برنامه را به این فرم ارسال داده به ایمیل html اضافه کند.
داده های ارسال شده از فرم HTML به فایل PHP را اعتبار سنجی کنید
برای بررسی اینکه آیا این کد کار می کند، اگر داده ها در حال انتقال هستند، می توانید به سادگی آن را با استفاده از تابع echo روی صفحه نمایش دهید:
echo $fio;
پژواک"
";
echo $email;
خط دوم در اینجا برای جدا کردن خروجی متغیرهای php به خطوط مختلف مورد نیاز است.
ارسال داده های دریافتی از فرم HTML به ایمیل با استفاده از PHP
برای ارسال داده به نامه، باید از تابع ایمیل در PHP استفاده کنید.
mail("به کدام آدرس ارسال شود"، "موضوع نامه"، "پیام (بدن نامه)"،"از: نامه از کدام ایمیل ارسال می شود \r\n");
به عنوان مثال، باید داده ها را به ایمیل مالک یا مدیر سایت ارسال کنید [ایمیل محافظت شده]
موضوع ایمیل باید واضح باشد و پیام ایمیل باید حاوی مواردی باشد که کاربر در فرم HTML مشخص کرده است.
پست (" [ایمیل محافظت شده]"، "برنامه از سایت"، "Name:".$fio.". ایمیل: ".$email ,"From: [ایمیل محافظت شده]\r\n");
شما باید یک شرط اضافه کنید که بررسی کند آیا فرم با استفاده از PHP به آدرس ایمیل مشخص شده ارسال شده است یا خیر.
اگر (پست (" [ایمیل محافظت شده]"، "سفارش از سایت"، "Name:".$fio.". ایمیل: ".$email ,"From: [ایمیل محافظت شده]\r\n"))
{
echo "پیام با موفقیت ارسال شد"؛
) دیگر (
}
بنابراین، کد برنامه فایل send.php که دادههای فرم HTML را به ایمیل ارسال میکند، به شکل زیر خواهد بود:
$fio = $_POST["fio"];
$email = $_POST["ایمیل"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldcode($fio);
$email = urldcode ($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
// پژواک "
";
//echo $email;
اگر (پست (" [ایمیل محافظت شده]"، "برنامه از سایت"، "Name:".$fio.". ایمیل: ".$email ,"From: [ایمیل محافظت شده]\r\n"))
( echo "پیام با موفقیت ارسال شد"؛
) دیگر (
echo "خطاهایی در هنگام ارسال پیام رخ داده است"؛
}?>
سه خط برای بررسی اینکه آیا دادهها به فایل ارسال میشوند یا خیر، نظر داده میشوند. در صورت لزوم، می توان آنها را حذف کرد، زیرا آنها فقط برای اشکال زدایی مورد نیاز بودند.
کد ارسال فرم HTML و PHP را در یک فایل قرار دهید
در نظرات این مقاله، بسیاری از مردم می پرسند که چگونه می توان هم فرم HTML و هم کد PHP برای ارسال داده ها به نامه را در یک فایل، نه دو فایل، ساخت.
برای پیاده سازی این کار، باید کد HTML فرم را در فایل send.php قرار دهید و شرطی را اضافه کنید که وجود متغیرها در آرایه POST را بررسی کند (این آرایه از فرم ارسال می شود). یعنی اگر متغیرهای آرایه وجود نداشته باشند، باید فرمی را به کاربر نشان دهید. در غیر این صورت، باید داده ها را از آرایه گرفته و برای مخاطب ارسال کنید.
بیایید ببینیم که چگونه کد PHP را در فایل send.php تغییر دهیم:
//بررسی وجود متغیرها در آرایه POST
if(!isset($_POST["fio"]) و !isset($_POST["ایمیل"]))(
?> ) دیگر (
//نشان دادن فرم
$fio = $_POST["fio"];
$email = $_POST["ایمیل"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldcode($fio);
$email = urldcode ($email);
$fio = trim($fio);
$email = trim($email);
اگر (پست (" [ایمیل محافظت شده]"، "برنامه از سایت"، "Name:".$fio.". ایمیل: ".$email ,"From: [ایمیل محافظت شده]\r\n"))(
echo "پیام با موفقیت ارسال شد"؛
) دیگر (
echo "خطاهایی در هنگام ارسال پیام رخ داده است"؛
}
}
?>
وجود متغیری را در آرایه POST با تابع isset() PHP بررسی می کنیم. علامت تعجب قبل از این تابع در یک شرط به معنای نفی است. یعنی اگر متغیر وجود نداشته باشد، باید فرم خود را نشان دهیم. اگر علامت تعجب قرار نمی دادم، آنگاه شرط به معنای واقعی کلمه خواهد بود - "اگر وجود دارد، پس فرم را نشان دهید". و این در مورد ما اشتباه است. طبیعتاً می توانید نام آن را به index.php تغییر دهید. اگر نام فایل را تغییر دادید، فراموش نکنید که نام فایل و در خط را تغییر دهید