PDA

نسخه کامل مشاهده نسخه کامل : تصحیح کد ارسال ایمیل



arman2000
28-09-2010, 13:16
سلام دوست عزيز
من برای دریافت اطلاعات از طریق باکس در صفحه html، از کد PHP (کد تماس باما: دو فایل با نام های email.php و mail.conf.php) استفاده کردم که بعد از کلیک دکمه ارسال (send)، به صفحه html دیگری که در اون نوشتهشده "پیام با موفقیت ارسال شد" می رود. عیبی که داره با زدن دکمه Back صفحه،اطلاعاتی رو که داخل باکس تایپ شده بود دوباره دیده می شه

کد فرم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

1- می خواستم راهنماییکنید تا بتونم کدها رو طوری تغییر بدم که در همون صفحه که باکس ودکمه ارسال هست بعد از کلیک دکمه send، اطلاعات فرستاده بشه و پنجره ای (Message) باز بشه با متن "پیام با موفقیت ارسال شد" که شامل دکمه OK باشه و بعد از کلیک اون (OK)، همون صفحه با باکس خالی دیدهشه (نه به یک صفحه html دیگه که موفقیت در ارسال رو نمایش میده بره).

2- اگه بخوایم علاوه بر متن، Attach هم ارسال بشه، چه تغییری باید در کد فایل .php و فرم صفحه htmlداد؟
کد فایل email.php

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد فایل mail.conf.php

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ممنون می شم راهنمایی بفرمایید

arman2000
07-10-2010, 00:24
ممنون می شم راهنمایی بفرمایید

arman2000
08-10-2010, 11:27
منتظر راهنمایی شما هستم

neopersia
08-10-2010, 14:18
دوست عزیز توجه نکردید کدهایی که گذاشتید چقدر مشکل دارن! موقع کپی و پیست کدتون خراب شده
در ضمن توضیحات بیش از حد نیاز و او همه استرینگ توی کد به سوال شما کمکی نمیکنه. من شخصاً وقتی این همه کد رو میبینم حوصله خودنش رو هم پیدا نمیکنم چه برسه به اینکه تستش کنم!

کد رو اصلاح کنید و قسمتهایی رو که ضروری نیستن ازش حذف کنید و بیشتر از یک سوال توی تاپیکتون نپرسید تا جواب بگیرید!

arman2000
08-10-2010, 21:45
سلام دوست من. شما ببخشید

برای لینک "تماس با ما" در صفحه html، از دو فایل php استفاده کردم که بعد از کلیک send، به صفحه html دیگری با محتوای "پیام با موفقیت ارسال شد" می رود. عیبی که داره با زدن Back صفحه،اطلاعاتی رو که داخل باکس تایپ شده بود دوباره دیده می شه. (خالی نمی شه)

کد فرم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


کد فایل email.php

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد فایل mail.conf.php

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

arman2000
10-10-2010, 11:06
منتظر راهنمایی شما هستم

neopersia
10-10-2010, 13:30
کدهاتون رو دوباره نخوندید که! ;)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا من متوجه میشم این اصلش بوده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما اصولاً وقتی کسی سوالی میپرسه باید طوری بپرسه که اونی که قراره جواب بده مجبور نباشه صورت مسئله رو حدس بزنه!

اینکه با زدن دکمه back اطلاعات نمایش داده میشن چه مشکلی میتونه ایجاد کنه؟ این یک رفتار عادی برای دکمه back در مرورگر هست!
میتونید فرم رو بعد از ارسال موفق به صفحه خودش ریدایرکت کنید تا یک فرم خالی رو نمایش بده اینجوری back هم کاری انجام نمیده
شما چطوری میخواید باشه؟

arman2000
10-10-2010, 14:13
دوست من ممنونم از پيشنهادتون

اين رفتار زماني عيب محسوب مي شه كه مثلا جواب مسابقه، پرسشنامه يا جدولي بعد از ارسال مي شه با زدن back فقط اسم ارسال كننده ها رو تغيير داد (بدون زحمت تكميل) كه تعداد فرستنده ها رو زياد مي كنه.

اگر به همون صفحه ريدايركت كنم يه پيغام لازم مي شه كه "ارسال موفق" رو نمايش بده. كد رو چه تغييري بدم تا پنجره ای(Message) باز بشه با متن "پیام با موفقیت ارسال شد"؟

neopersia
10-10-2010, 14:19
خوب اگر کسی اونجوری بخواد تعداد زیاد فرم ارسال کنه که دهها اکستنشن و پلاگین برای مرورگرها هست که فرم ارسال شده رو ذخیره میکنه و بعدا اتوماتیک پر میکنه، نیازی به دکمه back هم نداره!

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

arman2000
11-10-2010, 00:03
ممنون می شم اگه یه مثال بزنید (برای سشن یا کوکی)

arman2000
12-10-2010, 12:49
دوست من منتظر راهنمايي شما هستم

neopersia
12-10-2010, 17:35
ساده که بگم اینطوری میشه که شما تو اسکرپتی که فرم رو پردازش میکنه بعد از پردازش موفق فرم یک سشن ست کنید مثلاً این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد کاربر رو ریدایرکت کنید به صفحه فرم

توی صفحه نمایش فرم هم این رو قرار بدید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا اگر وقتی که یوزر به صفحه فرم ریدایرکت میشه اون سشن مقدار دهی شده باشه پیغام رو نشون میده و سشن رو حذف میکنه.

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

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

arman2000
13-10-2010, 01:23
تشکر دوست من عالی بود
اگر بخوایم قابلیت attach فایل هم اضافه کنیم چه تغییری در کدها باید داد؟

farhadfery
13-10-2010, 13:11
برای اینکه فرم دوباره ارسال نشود با js هم می توانید کار کنید. البته session مطمین تر است.