نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • جالب هست
  • روش های ارسال نامه پیاده سازی کلاس های نسل مدل و کنترلر، ایجاد View

روش های ارسال نامه پیاده سازی کلاس های نسل مدل و کنترلر، ایجاد View

05/22/06 83.2K

آیا تا به حال خواسته اید یک فرم را در وب سایت خود نصب کنید؟ بازخورد? حتما شما هم با فیلمنامه های مشابهی برخورد کرده اید. به اندازه کافی عجیب، اسکریپت های آماده برای ارسال فرم به ایمیل بسیار محبوب هستند (شما می توانید این را در هر آرشیو اسکریپت مشاهده کنید)، و تعداد زیادی از آنها وجود دارد. موارد ساده ای وجود دارد که هیچ چیز در آنها تغییر نمی کند، اما پیچیده و سیستم های بزرگ، که عملکردی در mysql به شما امکان می دهد هر فیلد را به صورت پویا تغییر دهید، حاوی مجموعه ای از تنظیمات ... اما آیا واقعاً به آنها نیاز است؟ به نظر من، نیاز به سیستم های مشابهخیلی مشکوک.

تست ارسال نامه به کامپیوتر خانگیشکست. برای انجام این کار، به یک هاست با پشتیبانی از php و توابع ارسال نامه نیاز دارید. من ارائه دهنده هاست runweb.ru را توصیه می کنم. این ارائه دهنده نرخ های عالی ارائه می دهد، بالاترین سرعتدسترسی و خدمات عالی

روش های ارسال نامه

دو راه اصلی برای ارسال نامه از سرور با استفاده از php وجود دارد.
من می خواهم هر دوی این روش ها را به ترتیب در نظر بگیرم.

اولین و ساده ترین استفاده از آن است توابع php mail(). عملکرد بسیار ساده و واضح است، اگرچه با ارسال نامه با استفاده از پست() همچنین دارای تعدادی معایب است. مهمترین چیز این است که نامه مستقیما ارسال نمی شود، بلکه از طریق php ارسال می شود. در همان زمان، برنامه php برخی از فیلدهای خود را با حرف جایگزین می کند. به عنوان مثال، شما نمی توانید فرستنده را به درستی مشخص کنید. در قسمت "از" (یعنی حرف از چه کسی آمده است) در بیشتر موارد نام سرور خواهد بود. مسئله این است که php هدرهای خود را در خط سرویس نامه "from" جایگزین می کند.

با این حال، ارسال نامه با تابع mail() ساده ترین است.
روش ارسال نامه از سرور بیایید این روش را با جزئیات بیشتری بررسی کنیم.

تابع mail() دارای نحو زیر است:

mail($to، $subject، $body، $headers);

$to آدرس گیرنده است. مثلا، " [ایمیل محافظت شده]". $subject - موضوع پیام. به عنوان مثال، "شما یک ایمیل دریافت کردید". $body - متن پیام. $headers - هر سرفصل پیام. به عنوان مثال، آدرس فرستنده به این صورت خواهد بود: "از جانب: [ایمیل محافظت شده]".

اینجا مثال کاملارسال نامه با mail():

پست (" [ایمیل محافظت شده]"، "موضوع"، "سلام! nیک ایمیل دریافت کردید."، "از: site_name");

لطفاً توجه داشته باشید که هنگام استفاده از این عملکرد در رایانه خانگی، ممکن است با خطا مواجه شود زیرا بدون سرور ایمیل نمی تواند ایمیل ارسال کند.

حال بیایید ببینیم چگونه می توانید با استفاده از sendmail ایمیل ارسال کنید.

sendmail است برنامه استاندارد سیستم عاملیونیکس که نامه می فرستد
php می تواند برنامه های یونیکس را با استفاده از ابزار pipes (به معنای واقعی کلمه "pipelines") اجرا کند. این تسهیلات یونیکس به شما امکان می‌دهد تا داده‌ها را از یک برنامه به برنامه دیگر ارسال کنید، دقیقاً مانند آنچه ما در یک فایل می‌نویسیم. فقط فایل در این مورد برنامه (به ویژه sendmail) است که داده ها را دریافت می کند.

برنامه sendmail گزینه های زیادی دارد که ما از برخی از آنها استفاده خواهیم کرد. برای استفاده از sendmail، باید یک جریان (لوله) به آن باز کنید. در php، این کار با استفاده از دستور ()popen انجام می شود که از نظر نحوی با دستور fopen() یکسان است. با استفاده از ()popen یک جریان برای sendmail باز می کنیم
برای نوشتن روی آن (پارامتر حالت "w" را به خاطر دارید؟)، پس از آن می توانید داده ها را به آن ارسال کنید فرمان منظم fputs(). بیایید ببینیم روش ارسال نامه از طریق sendmail چگونه به نظر می رسد:

هدرهای rfcحروف $from = " [ایمیل محافظت شده]"; $recipients = " [ایمیل محافظت شده]"; $headers = "نوع محتوا: text/plain; charset="windows-1251""; // sendmail را باز کنید و ایمیل بفرستید $mail = popen("/usr/sbin/sendmail -i -f$from -- $recipients", "w"); $text_headers = "از : $fromnsubject: $subject".$headers؛ fputs($mail, $text_headers); fputs($mail, "n")؛ fputs($mail, $body)؛ // بررسی خطاها $result = pclose($ mail) >> 8 & 0xff; if ($result) echo "sendmail error! کد خطا: $result"؛ ?>

در این برنامه اولین کاری که انجام می دهیم شرح هدرهای rfc است. rfc فیلدهای خدماتی هستند که حاوی تمام اطلاعات مربوط به نامه هستند. می توانید نمونه ای از rfc را ببینید، به عنوان مثال، در برنامهبا کلیک کردن کلیک راستماوس را روی متن نامه قرار دهید و "rfc-822 headers" را انتخاب کنید (نام مورد ممکن است متفاوت باشد). برای حذف آنها، مراحل را تکرار کنید. در هدر، فیلدهای "نوع محتوا" را توصیف می کنیم که نشان می دهد حرف متنی است و در ویندوز 1251 رمزگذاری شده است (استاندارد رمزگذاری ویندوز). "koi8-r" همچنین می تواند به عنوان رمزگذاری استفاده شود، که رمزگذاری استاندارد یونیکس است. در این مقاله، هدرهای احتمالی rfc را با جزئیات در نظر نخواهیم گرفت. کمی بعد این کار را انجام می دهیم
وقتی به کار با پست نزدیک تر می شویم. بنابراین، پس از اینکه متغیرهای سرویس و هدرهای پیام را توضیح دادیم، sendmail را باز می کنیم. به مسیر برنامه "/usr/sbin/sendmail" توجه کنید. در سرورهای مختلفممکن است متفاوت باشد!
اگر این خط کار نمی کند، از ISP خود بپرسید sendmail در کجا قرار دارد. پارامترهای بیشتر مشخص شده است: "-i -f$from - $recipients". اینها پارامترهای استاندارد برای ارسال نامه هستند و دو فیلد جایگزین آنها می شود: $from - از whom، $recipients - آدرس گیرندگان. در مورد ما، متغیر $recipients فقط یک آدرس دارد. در واقع، شما می توانید از چندین آدرس با مشخص کردن فاصله استفاده کنید:

$recipients = " [ایمیل محافظت شده] [ایمیل محافظت شده] [ایمیل محافظت شده]";

سپس سرصفحه‌های پیام را ابتدا در جریان می‌نویسیم (متغیر $text_headers)، سپس آنها را با یک خط جدا کرده و متن پیام را می‌نویسیم. آخرین مرحله- بستن جریان و بررسی خطا. اگر به درستی اجرا شود، صفر در متغیر $result قرار می گیرد و در صورت بروز خطا، شماره خطا روی آن نوشته می شود.

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

ایجاد فرم بازخورد

فرم بازخورد ما یک اسکریپت واحد خواهد بود. این اسکریپت یک فرم را نمایش می دهد و یک ایمیل ارسال می کند.

contact.php:

بازخورد اشتباه:$s"؛ ?>

ارتباط مستقیم
اسم شما: *
ایمیل شما: *
وبسایت شما:
پیغام تو: *

فیلدهایی که با ستاره (*) مشخص شده اند باید تکمیل شوند.> 8 & 0xff; ) else $result=(mail($recipients، $subject، $body، "from: ".$from."rn".$headers) ? FALSE: TRUE); if ($result) echo "پیام ارسال نشد!"; else echo "متشکرم، پیام شما ارسال شد. مدیر به زودی با شما تماس خواهد گرفت!"; ?>

حال بیایید ببینیم این برنامه چگونه کار می کند. اجرا با خط "if (!$a) show_form();" شروع می شود، زیرا قبل از آن تابعی مشخص شده است که البته اجرا نمی شود. در این خط بررسی می کنیم که آیا تلاشی برای پر کردن فرم صورت گرفته است (همانطور که می بینید متغیر $a از فرم ارسال شده است که در این خط تیک زده شده است). اگر چنین تلاشی وجود نداشته باشد، تابع show_form() فراخوانی می شود که فرم را نمایش می دهد.

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

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

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

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

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

امروز این فرصت را داشتم که با یک دانشمند مشابه در زمینه پایگاه داده صحبت کنم. مردی که با افتخار خود را حرفه ای می نامید پایگاه KIS را کاملاً ویران کرد و حتی فکر نمی کرد گناه خود را بپذیرد. او فقط داشت به روز رسانی می کرد و مشکلی پیش آمد. پشتیبان گیریقبل از نصب به‌روزرسانی‌ها، او نمی‌خواست این کار را انجام دهد (واقعاً، چرا؟) و وقتی مشکلی پیش می‌آمد، او واقعاً مغزش را جمع نمی‌کرد. من فقط یک نسخه از یک ماه پیش را آپلود کردم و از کار انجام شده گزارش دادم.

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

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

او احمقانه سعی کرد خود را توجیه کند و سؤالات من فقط باعث تعجب شد. تصور کنید، او به من گفت که این برنامه از هیچ جدولی استفاده نمی کند. همه چیز در یک فایل ذخیره می شود. این کلمات در نهایت برای یک نتیجه مثبت، تکه های ایمان را در من از بین برد. این او بود که در مورد FireBird به من گفت.

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

اگر سازمان شما آمادگی حفظ یک متخصص فناوری اطلاعات تمام وقت را ندارد، اکیداً توصیه می کنم که از مستندسازی استراتژی برای تعامل با فرد آینده. باید تکالیف خود را روی کاغذ مشخص کرد و فهرستی از امکانات زیربنایی که مسئولیت آن ها بر عهده او است را در اختیار داشت.

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

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

احساس ناامیدی می کنم وقتی به نظر می رسد که همه چیز بی معنی است و منجر به هیچ، فروپاشی زندگی نمی شود. این احساس تسلیم شدن است و هر فکر یا عملی که برای امید دادن یا تغییر باشد به عنوان بی فایده کنار گذاشته می شود. با احساس تنهایی همراه می شوم، زمانی که به نظر می رسد هیچکس با مشکلات و گرفتاری هایم به من نیاز ندارد.

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

امروز خودم را مشغول برخی فعالیت‌ها می‌کنم: مثلاً تمیز کردن خانه، بازی با رایانه.

من خودم کنجکاو هستم که چگونه احساسات زندگی می کنند، زیرا احتمالاً نمی دانم چگونه آنها را زندگی کنم.

ناامیدی.

من فقط یک بار تو زندگیم این حس رو تجربه کردم!

من 15 سال داشتم.

در بازدید بعدی از یکی از آموزش ها، من غرق در اعتماد مداوم به توانایی هایم بودم، هر از گاهی به موفقیت می رسیدم ...

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

ناامیدی برای من عدم تمایل به انجام هر کاری، افسردگی کامل و بی تفاوتی نسبت به همه چیز، افسردگی است.

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

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

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

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

این آموزش به شما نشان می دهد که چگونه ساده ترین فرم تماس HTML را ایجاد کنید.

اول از همه 2 فایل بسازید: contact_form.htmlو contact.php. فایل اول حاوی کد فرم تماس شما خواهد بود و فایل دوم اطلاعات فرم را پردازش می کند.

HTML

در زیر نمونه ای از کدهای HTML آورده شده است فرم تماس:

اسم شما

ایمیل شما

پیام