-
تصحیح کد ارسال ایمیل
سلام دوست عزيز
من برای دریافت اطلاعات از طریق باکس در صفحه html، از کد PHP (کد تماس باما: دو فایل با نام های email.php و mail.conf.php) استفاده کردم که بعد از کلیک دکمه ارسال (send)، به صفحه html دیگری که در اون نوشتهشده "پیام با موفقیت ارسال شد" می رود. عیبی که داره با زدن دکمه Back صفحه،اطلاعاتی رو که داخل باکس تایپ شده بود دوباره دیده می شه
کد فرم
[HTML]<FORM onsubmit="return CheckForm(this);" action=email.php method=post>
<INPUT size=25 name=name style="font-family: Tahoma; valign: middle; font-size: 13px; color: #000080; text-align:center"></P>
<INPUT style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; TEXT-ALIGN: center" type=submit value=" ارسال "></p>
<SCRIPT language=JavaScript>
<!--
function CheckForm(formID) {
if (formID.name.value == "") { alert("لطفا نام خود را وارد کنيد"); formID.name.focus(); return false; }
return true;
}
//
-->
</SCRIPT>[/HTML]
1- می خواستم راهنماییکنید تا بتونم کدها رو طوری تغییر بدم که در همون صفحه که باکس ودکمه ارسال هست بعد از کلیک دکمه send، اطلاعات فرستاده بشه و پنجره ای (Message) باز بشه با متن "پیام با موفقیت ارسال شد" که شامل دکمه OK باشه و بعد از کلیک اون (OK)، همون صفحه با باکس خالی دیدهشه (نه به یک صفحه html دیگه که موفقیت در ارسال رو نمایش میده بره).
2- اگه بخوایم علاوه بر متن، Attach هم ارسال بشه، چه تغییری باید در کد فایل .php و فرم صفحه htmlداد؟
کد فایل email.php
[PHP]<?
############################
include 'mail.conf.php';
############################
$top='<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="fa">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font face="Tahoma" size="1" color="#003366">به نام خدا</font></p>
<p style="margin-top: 0; margin-bottom: 0"><b>
<font face="Tahoma" size="1" color="#003366">محتویات فرم ارسال شده</font></b></p>
<p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="1"> </font></p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="500" height="20" bordercolor="#000000" id="table1">
<tr>
<td width="161" height="24" style="border-style: solid; border-width: 1px" bgcolor="#F4F4F4" bordercolor="#333333">
<p align="center" style="margin: 2px 5px"><b>
<font face="Tahoma" style="font-size: 9pt">نام گزینه</font></b></td>
<td height="24" style="border-style: solid; border-width: 1px" bgcolor="#F4F4F4" bordercolor="#333333">
<p align="center" style="margin: 2px 5px"><b>
<font face="Tahoma" style="font-size: 9pt"> اطلاعات وارد شده توسط
کاربر</font></b></td>
</tr>';
##############################
$body=' <tr>
<td width="161" style="border-style: solid; border-width: 1px" height="24" bordercolor="#333333">
<p align="center" style="margin: 2px 5px"><span lang="en-us">
<font face="Tahoma" style="font-size: 9pt">%field</font></span></td>
<td style="border-style: solid; border-width: 1px" height="24" bordercolor="#333333">
<p align="justify" style="margin: 2px 10px; "><span lang="en-us">
<font face="Tahoma" style="font-size: 9pt">%info</font></span></td>
</tr>';
##############################
$footer=' </table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"><b><font face="Tahoma" size="1"> </font></b></div>
<div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="500" height="20" bordercolor="#000000" id="table2">
<tr>
<td height="25" style="border-style: solid; border-width: 1px" bgcolor="#F2CC84" colspan="2" bordercolor="#333333">
<p style="margin-top: 0; margin-bottom: 0" align="center"><b>
<font face="Tahoma" size="1" color="#800000">مشخصات کاربر</font></b></p>
</td>
</tr>
<tr>
<td width="161" height="25" style="border-style: solid; border-width: 1px" bordercolor="#333333">
<p align="center" style="margin: 2px 5px">
<font face="Tahoma" style="font-size: 9pt">آدرس آی پی</font></td>
<td height="25" style="border-style: solid; border-width: 1px" bordercolor="#333333">
<p align="center" style="margin: 2px 5px"><span lang="en-us">
<font face="Tahoma" style="font-size: 9pt">%ip</font></span></td>
</tr>
<tr>
<td width="161" style="border-style: solid; border-width: 1px" height="25" bordercolor="#333333">
<p align="center" style="margin: 2px 5px">
<font face="Tahoma" style="font-size: 9pt">لینک معرف</font></td>
<td style="border-style: solid; border-width: 1px" height="25" bordercolor="#333333">
<p align="center" style="margin: 2px 5px"><span lang="en-us">
<font face="Tahoma" style="font-size: 9pt">%link</font></span></td>
</tr>
</table>
<p align="center" style="margin: 2px 5px"> <p align="center" style="margin: 2px 5px"> </div>
<p align="center" dir="ltr" style="margin-top: 2px; margin-bottom: 2px">
<span lang="en-us"><font face="Verdana" size="1" color="#333333">if you can,t
Read this , change the encoding to UTF-8</font></span></p>
<p align="center" style="margin-top: 2px; margin-bottom: 2px">
<span lang="en-us"><font size="1" face="Verdana">
<a href="http://www.siqma.com"><font color="#800000">Powered By: www.siqma.com</font></a></font></span></p>
<p align="center"> </p>
</body>
</html>';
##############################
if (isset($_POST***91;'email'***93;))
$email=$_POST***91;'email'***93;;
else
$email=$from;
if (isset($_POST***91;'subject'***93;))
$subject=$_POST***91;'subject'***93;;
##############################
$header='From: "'.$email.'" <'.$email.">\r\n"
.'Reply-To: "'.$email.'" <'.$email.">\r\n"
.'To:<'.$to.">\r\n"
."Mime-Version: 1.0\r\n"
."Content-type: text/html; charset=utf-8\r\n"
."Content-Transfer-Encoding: 7bit\r\n";
##############################
$main='';
foreach($_POST as $k => $v)
{
$lists=$body;
$lists=ereg_replace('%field',$k,$body);
$lists=ereg_replace('%info',$v,$lists);
$main .=$lists;
}
#############################
$ip= $_SERVER***91;'REMOTE_ADDR'***93;;
$link=$_SERVER***91;'HTTP_REFERER'***93;;
$footer=ereg_replace('%ip',$ip,$footer);
$footer=ereg_replace('%link',$link,$footer);
$body=$top.$main.$footer;
mail($to,$subject,$body, $header);
header("location: $redirect")
?>[/PHP]
کد فایل mail.conf.php
[PHP]<?
################################################## ###
$to='yourname@gmail.com';
$subject=Mail;
$redirect='http://page.htm';
$from='mail';
################################################## ###
?> [/PHP]
ممنون می شم راهنمایی بفرمایید
-
ممنون می شم راهنمایی بفرمایید
-
-
دوست عزیز توجه نکردید کدهایی که گذاشتید چقدر مشکل دارن! موقع کپی و پیست کدتون خراب شده
در ضمن توضیحات بیش از حد نیاز و او همه استرینگ توی کد به سوال شما کمکی نمیکنه. من شخصاً وقتی این همه کد رو میبینم حوصله خودنش رو هم پیدا نمیکنم چه برسه به اینکه تستش کنم!
کد رو اصلاح کنید و قسمتهایی رو که ضروری نیستن ازش حذف کنید و بیشتر از یک سوال توی تاپیکتون نپرسید تا جواب بگیرید!
-
سلام دوست من. شما ببخشید
برای لینک "تماس با ما" در صفحه html، از دو فایل php استفاده کردم که بعد از کلیک send، به صفحه html دیگری با محتوای "پیام با موفقیت ارسال شد" می رود. عیبی که داره با زدن Back صفحه،اطلاعاتی رو که داخل باکس تایپ شده بود دوباره دیده می شه. (خالی نمی شه)
کد فرم
[HTML]<FORM onsubmit="return CheckForm(this);" action=email.php method=post>[/HTML]
کد فایل email.php
[PHP]<?
############################
include 'mail.conf.php';
############################
if (isset($_POST***91;'email'***93;))
$email=$_POST***91;'email'***93;;
else
$email=$from;
if (isset($_POST***91;'subject'***93;))
$subject=$_POST***91;'subject'***93;;
#############################
$body=$top.$main.$footer;
mail($to,$subject,$body, $header);
header("location: $redirect")
?>[/PHP]
کد فایل mail.conf.php
[PHP]<?
################################################## ###
$to='yourname@gmail.com';
$subject=Mail;
$redirect='http://page.htm';
$from='mail';
################################################## ###
?> [/PHP]
-
-
کدهاتون رو دوباره نخوندید که! ;)
کد:
$_POST***91;'email'***93;
حالا من متوجه میشم این اصلش بوده:
اما اصولاً وقتی کسی سوالی میپرسه باید طوری بپرسه که اونی که قراره جواب بده مجبور نباشه صورت مسئله رو حدس بزنه!
اینکه با زدن دکمه back اطلاعات نمایش داده میشن چه مشکلی میتونه ایجاد کنه؟ این یک رفتار عادی برای دکمه back در مرورگر هست!
میتونید فرم رو بعد از ارسال موفق به صفحه خودش ریدایرکت کنید تا یک فرم خالی رو نمایش بده اینجوری back هم کاری انجام نمیده
شما چطوری میخواید باشه؟
-
دوست من ممنونم از پيشنهادتون
اين رفتار زماني عيب محسوب مي شه كه مثلا جواب مسابقه، پرسشنامه يا جدولي بعد از ارسال مي شه با زدن back فقط اسم ارسال كننده ها رو تغيير داد (بدون زحمت تكميل) كه تعداد فرستنده ها رو زياد مي كنه.
اگر به همون صفحه ريدايركت كنم يه پيغام لازم مي شه كه "ارسال موفق" رو نمايش بده. كد رو چه تغييري بدم تا پنجره ای(Message) باز بشه با متن "پیام با موفقیت ارسال شد"؟
-
خوب اگر کسی اونجوری بخواد تعداد زیاد فرم ارسال کنه که دهها اکستنشن و پلاگین برای مرورگرها هست که فرم ارسال شده رو ذخیره میکنه و بعدا اتوماتیک پر میکنه، نیازی به دکمه back هم نداره!
میتونید از سشن یا کوکی برای ذخیره یک متغیر استفاده کنید که در صورتی که در صفحه فرم این مقدار رو چک کنه و اگر مقدار معتبری داشت پیغان رو نشون بده.
-
ممنون می شم اگه یه مثال بزنید (برای سشن یا کوکی)