نحوه ارسال آدرس صفحه چگونه یک صفحه وب را تنها با یک کلیک برای خود ایمیل کنید. کد ارسال فرم HTML و PHP را در یک فایل قرار دهید

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

زبان نشانه گذاری HTML به خودی خود ساده است، فقط باید بفهمید که چگونه و کجا تگ های خاص را قرار دهید. با زبان برنامه نویسی PHP، همه چیز کمی پیچیده تر است.

ایجاد چنین فرمی برای یک برنامه نویس دشوار نیست، اما ممکن است برخی از اقدامات برای یک کد نویس HTML دشوار به نظر برسد.

ایجاد فرم ارسال html

خط اول بعدی خواهد بود

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

برگردیم به فرم. خط دوم شامل فیلدی برای وارد کردن نام کامل خواهد بود. دارای کد زیر:

نوع فرم متنی است، یعنی کاربر می تواند متنی را در اینجا از صفحه کلید وارد یا کپی کند. پارامتر name حاوی نام فرم است. در این صورت، fio است، با این نام است که هر چیزی که کاربر در این قسمت وارد می کند، منتقل می شود. پارامتر placeholder مشخص می کند که چه چیزی در این قسمت به عنوان توضیح نوشته خواهد شد.

خط بعدی:

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

خط بعدی دکمه ارسال خواهد بود:

و آخرین خط در فرم تگ خواهد بود

حالا بیایید همه چیز را کنار هم بگذاریم.





حالا بیایید فیلدها را به شکل اجباری کنیم. ما کد زیر را داریم:





فایلی ایجاد کنید که داده ها را از فرم 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 تغییر دهید. اگر نام فایل را تغییر دادید، فراموش نکنید که نام فایل و در خط را تغییر دهید

. فرم باید به همان صفحه مانند index.php پیوند داشته باشد. عنوان صفحه را به کد اضافه کردم.

خطاهای رایجی که هنگام ارسال فرم PHP از یک وب سایت رخ می دهد

اولین اشتباه، احتمالاً رایج‌ترین اشتباه، زمانی است که یک صفحه سفید خالی و بدون پیام می‌بینید. این به این معنی است که شما در کد صفحه اشتباه کرده اید. شما باید نمایش تمام خطاها را در PHP روشن کنید و سپس خواهید دید که خطا در کجا ایجاد شده است. افزودن به کد:

ini_set("display_errors","On");
error_reporting ("E_ALL");

فایل send.php فقط باید روی سرور اجرا شود، در غیر این صورت کد به سادگی کار نخواهد کرد. مطلوب است که این یک سرور محلی نباشد، زیرا همیشه برای ارسال داده ها به یک سرور پست الکترونیکی خارجی پیکربندی نشده است. اگر کد را روی سرور دیگری غیر از سرور اجرا کنید، کد PHP را دقیقاً در صفحه مشاهده خواهید کرد.

بنابراین برای کار درست توصیه می کنم فایل send.php را در هاست سایت قرار دهید. در آنجا، به عنوان یک قاعده، همه چیز از قبل پیکربندی شده است.

یکی دیگر از اشتباهات رایج زمانی است که اعلان "پیام با موفقیت ارسال شد" ظاهر می شود، اما نامه از طریق نامه دریافت نمی شود. در این مورد، باید خط را به دقت بررسی کنید:

اگر (پست (" [ایمیل محافظت شده]"، "سفارش از سایت"، "Name:".$fio.". ایمیل: ".$email ,"From: [ایمیل محافظت شده]\r\n"))

بجای [ایمیل محافظت شده] باید آدرس ایمیلی باشد که می‌خواهید به آن نامه بفرستید، اما به جای آن[ایمیل محافظت شده] باید یک ایمیل موجود برای این سایت باشد. به عنوان مثال، برای یک سایت سایت، این خواهد بود . فقط در این صورت نامه با داده های فرم ارسال می شود.

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

پست الکترونیک

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

اگر URL یک سایت یا صفحه را به صورت دستی تایپ کنید، پیوند به این صورت کار نخواهد کرد. برای رفع این مشکل، سعی کنید http:// یا www را در ابتدای پیوند بنویسید. یعنی به جای site.com باید http://site.com یا www.site.com بنویسید پس از آن لینک قابل کلیک خواهد بود.

همچنین می توانید پیوند را به کلمات خاصی در ایمیل پیوند دهید. برای این کار باید آنها را انتخاب کرده و بر روی نوار ابزار "Insert link" کلیک کنید و سپس آدرس صفحه مورد نظر را در پنجره مشخص کنید. اگر ایمیل شما از استفاده از برچسب های html پشتیبانی می کند، می توانید پیوندی مانند این را وارد کنید: کلماتی که پیوند را به آنها پیوند می دهید.

همکلاسی ها

قبل از ارسال لینک در Odnoklassniki، باید نرم افزار خاصی را دانلود کنید که به شما این امکان را می دهد. یکی از این برنامه ها GF Tools است. این کاملا رایگان است و استفاده از آن بسیار آسان است. همچنین می‌توانید متن پیوند را در پیامی که برای کاربر دیگری ارسال می‌کنید جای‌گذاری کنید. همچنین می توان آن را در یک پیام بر روی دیوار قرار داد.

در تماس با

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

راه های ارسال یک صفحه وب از طریق ایمیل چیست؟
به طرق مختلف، بسته به اینکه منظور نویسنده سوال چه بوده است.

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

من گمان می کنم که پاسخ صحیح تر ذخیره صفحه با استفاده از روش های استاندارد باشد. منوی "file" را در مرورگر فشار می دهیم، سپس "save as" را فشار می دهیم و صفحه وب را به طور کامل ذخیره می کنیم. اگر شخصی که این صفحه برای او ارسال می شود اینترنت داشته باشد، می تواند لینک های صفحه را دنبال کند، آنها کار می کنند.

در حالت اول، در صورت انتخاب یک قالب تصویر رایج - bmp، jpg، gif، باز کردن صفحه آسان تر خواهد بود. در حالت دوم، ممکن است برای نمایش صفحه ای که در یک مرورگر ذخیره شده اما در مرورگر دیگری باز شده است، مشکلاتی وجود داشته باشد، ممکن است به درستی نمایش داده نشود یا اصلاً باز نشود.

هر دو مورد به گونه ای طراحی شده اند که بایگانی شوند تا برای شخصی که دسترسی دائمی به اینترنت ندارد ارسال شود. در این صورت بهتر است ضمیمه نامه ایجاد شود.

اما اگر شخصی همیشه اینترنت دارد - چرا صفحه ای را برای او ذخیره کرده و ارسال کنید، یک پیوست ایجاد کنید؟ کپی کردن لینک صفحه مورد نظر در نوار آدرس و چسباندن آن در متن نامه بسیار ساده تر است.

برای انجام این کار، می توانید از خدمات آنلاین تخصصی برای بایگانی استفاده کنید، به عنوان مثال - Archive.today: archive today

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

یک فایل Zip را می توان به یک ایمیل ضمیمه کرد، یک پیوند به "عکس فوری" یک صفحه وب را می توان در فیلد ایمیل درج کرد و همه اینها را می توان از طریق ایمیل ارسال کرد یا به روش دیگری ذخیره کرد.

برای مثال، نسخه امروزی صفحه سؤالات متداول مسکو (به همراه یک فایل فشرده) در اینجا موجود است: امروز بایگانی کنید

همچنین می توانید از خدمات آنلاین برای ایجاد اسکرین شات استفاده کنید، مانند Web-capture: web-capture net

راه های زیادی برای "برش" یک صفحه وب وجود دارد.

اما Pocket به یک برنامه و یک حساب Pocket نیاز دارد. این بدان معنی است که شما باید برنامه دیگری را نصب کنید، وارد سرویس شوید، همگام سازی کنید، و غیره. اگر بتوانید همین کار را با استفاده از صندوق پستی خود انجام دهید، خوب است.

این ایده EmailThis است که دقیقاً به آن می گویند. با یک کلیک، این نشانک (یا پسوند .
اگر کاربر Chrome هستید) صفحه وب فعلی را به صندوق ورودی شما تحویل می دهد. و مانند Pocket، این ترویس همه تبلیغات و قالب‌بندی‌های غیردوستانه برای موبایل را حذف می‌کند و متن و تصاویری را برای شما به ارمغان می‌آورد که خواندن آن آسان است. (در صورت تمایل به بازگشت به سایت، لینک اصلی را نیز در پایین ارائه می دهد.)

پس از تکمیل تنظیمات اولیه (به زبان انگلیسی)، استفاده از EmailThis به معنای واقعی کلمه با یک کلیک فاصله دارد: زمانی که می خواهید صفحه ای را که در حال مشاهده هستید برای خود ارسال کنید، روی نشانک مارکلت (یا نماد برنامه افزودنی) کلیک کنید.

جالب اینجاست که این نشانک با هر دو مرورگر اندروید و iOS نیز سازگار است، اما استفاده از آن نیاز به تلاش بیشتری دارد. کاربران اندروید باید "ایمیل این" را در نوار آدرس تایپ کنند، در حالی که کاربران iOS باید نشانک های ذخیره شده خود را باز کرده و روی "این را ایمیل کنید" کلیک کنند.

البته، بسیاری از مرورگرهای تلفن همراه دارای گزینه "خواندن بعد" هستند که عالی کار می کند. اما اگر می خواهید صفحه به صندوق ورودی شما تحویل داده شود، این بهترین راه است.

متأسفانه EmailThis با مایکروسافت اج که از بوکمارکلت ها پشتیبانی نمی کند، سازگار نیست. اگر راه حلی پیدا کردید، حتما در نظرات به ما اطلاع دهید.

من این ابزار را با صفحات وب مختلف تست کردم. با اکثر آنها عالی کار کرد. من متوجه شدم که برخی از تصاویر جاسازی شده "برش" نمی شوند، احتمالاً به این دلیل که در یک میزبان شخص ثالث قرار داشتند. اما به طور کلی، من EmailThis را راهی سریع و آسان برای ارسال هر صفحه وب به صندوق ورودی من یافتم.

و من این گزینه را بیشتر از گزینه های مختلف "خواندن بعد" دوست دارم، زیرا صندوق ورودی من عملکرد یک لیست کارها را تکرار می کند. به این ترتیب، محتوای وب که به نظر من مهم است، فراموش یا نادیده گرفته نمی شود.

یادداشت ویراستار:این مقاله در ابتدا در 25 فوریه 2014 منتشر شد و امروز به روز شده است.