فرم ارسال مطلب به ایمیل

haya

New Member
تو یه سایت فرمی رو دیدم که از طریق اون کاربر میتونه اطلاعاتی رو به ایمیل شما ارسال کنه ، اما چطور میشه کاری کنم که تا بعضی از فیلهای مورنظر تا پر نشه ارسال نشده و پیغامی مبنی بر پر کردن فیلدها رو بده.
لینک زیر اموزش مورد نظر هست.
http://gooyait.blogfa.com/post-32.aspx
 

echessdesign

مدیر انجمن طراحی وب
درود بر شما
با این کد می تونید مطمین بشید که آدرس ایمیل رو درست وارد می کنه
HTML:
<html>
<head>
<script type="text/javascript">
function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "[email protected]_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

</script>
<script language="javascript">
  function validate() {
    if (! isValidEmail(document.forms[0].email.value)) {
        alert("Please enter a valid email address");
        return false;
    }
    alert("Email address OK!");
    return true;
  }
</script> 
</head>
<body>
<form name="testForm" onSubmit="validate()">
Enter email address: <input type="text" name="email"/>
<input type="submit" name="sub" value="Validate Email"/>
</form>
<body>
</html>

//////////////////////////////////////////////

این هم نمونه کدی هست که فیلد های فرم رو چک می کنه:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<style type="text/css">
H1 {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 22px;
	color : #000066;
}
H2 {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 18px;
	color : #000066;
}
H3 {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 14px;
	font-weight : bold;
	color : #000066;
}
BODY {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 13px;
}
TD,P,A {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 13px;
}
A:HOVER {
	text-decoration : none;
}
B {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 13px;
	font-weight : bold;
	color : #000066;	
}
.Legal {
	font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size : 10px;
}
B.menusection {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 12px;
	font-weight : bold;	
	color : #000066;
}
A.header {
	font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size : 9px;	
}
A.articleheader {
font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size : 9px;	
}
A:HOVER.articleheader {
	text-decoration : none;
}
HR.articlebodydivider {
	color : #0066FF;
}
H1.articlehead {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 18px;	
	font-weight : bold;
    color:#660000;	
	background-color : #FFFFFF;
}
CODE {
font-family : Courier,monospace;font-size: 10pt;color : #800000;
}
CODE.htm {
font-family : "Courier New", Courier, monospace;	font-size : x-small;	color : #000080;
}
CODE.comment {
	font-family : "Courier New", Courier, monospace;
	font-size : x-small;
	color : Gray;
}
.testimonial{
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size : 13px;
}
.formItemNameM{
	font-family : Arial, Helvetica, sans-serif;
	font-size : 12px;
	font-weight : bold;	
	color : #330000;	
	text-align: right;
}
.formItemName {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 13px;
	font-weight : bold;	
	color : #000066;	
	text-align: right;
}
.Error {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 13px;
	font-weight : bold;
	color : #990000;
}
.projected {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 14px;
	font-weight : bold;
	color : #600000;
}
.projectedx {
	font-weight : bold;
	color : #600000;
}
.projectedxx {
	font-weight : bold;
	color : #600000;
	background-color : #FFFF99;
}

.SmallNote {
	font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size : 10px;
	color : #000099;
}
B.SiteMapHead1 {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 14px;
	font-weight : bold;	
	color : #000066;	
}
B.SiteMapHead2 {
	font-family : Arial, Helvetica, sans-serif;
	font-size : 12px;
	font-weight : bold;	
	color : #000066;	
}
</style>

<script type="text/javascript">
function Validator(frmname)
{
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  alert("BUG: couldnot get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
  if(!this.formobj)
	{
	  alert("BUG: the form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];
  if(!itemobj)
	{
	  alert("BUG: Couldnot get the input object named: "+itemname);
		return;
	}
	if(!itemobj.validationset)
	{
	  itemobj.validationset = new ValidationSet(itemobj);
	}
  itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
  this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
}
function vdesc_validate()
{
 if(!V2validateData(this.desc,this.itemobj,this.error))
 {
    this.itemobj.focus();
		return false;
 }
 return true;
}
function ValidationSet(inputitem)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
  this.vSet[this.vSet.length]= 
	  new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
   for(var itr=0;itr<this.vSet.length;itr++)
	 {
	   if(!this.vSet[itr].validate())
		 {
		   return false;
		 }
	 }
	 return true;
}
function validateEmailv2(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}
function V2validateData(strValidateStr,objValue,strError) 
{ 
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 
    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
           if(eval(objValue.value.length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : Required Field"; 
              }//if 
              alert(strError); 
              return false; 
           }//if 
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
               }//if 
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
               }//if               
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alpha-numeric characters allowed "; 
                }//if 
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only digits allowed "; 
                }//if               
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": Enter a valid Email address "; 
                 }//if                                               
                 alert(strError); 
                 return false; 
               }//if 
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }//if               
               alert(strError); 
               return false;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
            if(!objValue.value.match(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name+": Invalid characters found "; 
              }//if                                                               
              alert(strError); 
              return false;                   
            }//if 
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dontselect command for non-select Item"); 
              return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": Please Select one option "; 
              }//if                                                               
              alert(strError); 
              return false;                                   
             } 
             break; 
         }//case dontselect 
    }//switch 
    return true; 
}
</script>
</head>
<body>
<form action="" name="myform" >
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td align="right">First Name</td>
    <td><input type="text" name="FirstName"></td>
</tr>
<tr>
    <td align="right">Last Name</td>
    <td><input type="text" name="LastName"></td>
</tr>
<tr>
    <td align="right">EMail</td>
    <td><input type="text" name="Email"></td>
</tr>
<tr>
    <td align="right">Phone</td>
    <td><input type="text" name="Phone"></td>
</tr>
<tr>
    <td align="right">Address</td>
    <td><textarea cols="20" rows="5" name="Address"></textarea></td>
</tr>
<tr>
    <td align="right">Country</td>
    <td>
	   <SELECT name="Country">
		<option value="" selected>[choose yours]
		<option value="008">Albania
		<option value="012">Algeria
		<option value="016">American Samoa
		<option value="020">Andorra
		<option value="024">Angola
		<option value="660">Anguilla
		<option value="010">Antarctica
		<option value="028">Antigua And Barbuda
		<option value="032">Argentina
		<option value="051">Armenia
		<option value="533">Aruba	
	  </SELECT>
	</td>
</tr>
<tr>
    <td align="right"></td>
    <td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
<script language="JavaScript" type="text/javascript">
//You should create the validator only after the definition of the HTML form
  var frmvalidator  = new Validator("myform");
  frmvalidator.addValidation("FirstName","req","Please enter your First Name");
  frmvalidator.addValidation("FirstName","maxlen=20",
	"Max length for FirstName is 20");
  frmvalidator.addValidation("FirstName","alpha");
  
  frmvalidator.addValidation("LastName","req");
  frmvalidator.addValidation("LastName","maxlen=20");
  
  frmvalidator.addValidation("Email","maxlen=50");
  frmvalidator.addValidation("Email","req");
  frmvalidator.addValidation("Email","email");
  
  frmvalidator.addValidation("Phone","maxlen=50");
  frmvalidator.addValidation("Phone","numeric");
  
  frmvalidator.addValidation("Address","maxlen=50");
  frmvalidator.addValidation("Country","dontselect=0");

</script>
<P>
Back to article:<br>
<a href="javascript-form-validation.phtml">JavaScript Form Validations Made Easy!</a>
</P>
</body>
</html>
به این صفحه نیز یک سری بزن.
در ضمن ورود شما رو به جمع مجید انلاینی ها خیر مقدم میگم.
پاینده باشید.
 
آخرین ویرایش:

echessdesign

مدیر انجمن طراحی وب
محمد رضا جان، متشکرم از یاد آوری شما
اصلاح شد، پاینده باشید.
 

haya

New Member
از echessdesign خیلی ممنونم مشکلم حل شد اما مشکل دیگه اینکه یک فایل به اسم email.php هست ( توی لینکیه که اول تاپیک قرار دادم ) که بعد از ارسال فرم از طریق اون اطلاعات ارسال میشه و در آدرس بار هم نشون داده میشه ، که با هر بار خوندن اون یه ایمیل ارسال میکنه. چطور کاری کنم که :
1 - در ادرس بار اسم email.php دیده نشده.
2- با هر بار خونده شدن از طریق بروز ایمیل ارسال نکنه.
( اگه راه حل دیگه ای هم وجود داره ممنون میشم که راهنماییم کنید.
 

echessdesign

مدیر انجمن طراحی وب
درود بر شما
در رابطه با سوال اول: تا اون جا که من اطلاع دارم، بسته به مرورگر، آدرس email.php رو نشون می ده. مثلا Opera ادرس صفحه redirect شده رو نمایش می ده.
متاسفا منوجه منظور شما از سوال دوم نشدم.
سوالات خود را در رابطه با PHP می توانید در انجمن مربوپط به آن مطرح فرمایید.
پاینده باشید.
 

haya

New Member
در رابطه با همین مطلب از طریق iframe فورم مورد نظر رو فراخوان می کنم اما مشکلم اینه که ابعاد فرم میخواهم خودگار باشه یعنی خودکاربه ابعاد فرم تغییر کنه
دیگر اینکه در بعضی مواقع ایمیل به bulk یاهو می رود ! چه باید بکنم.
متشکرم
 

echessdesign

مدیر انجمن طراحی وب
درود بر شما
1- لطفا کد مورد نظر را قرار دهید.
2- همچین موردی نه از دست شما بر می یاد نه از دست هیچ کس دیگه!
شما می تونید یک سرور کوچک برای spaming اجاره کنید و شروع به ارسال ایمیل به تعداد انبوه ، تازمانی که آدرس IP شما فیلتر نشود ادامه دهید. بعضی برنامه های ارسال ایمیل گروهی هستند که ایمیل Sender را با یک فاصله: info @yahoo.com منظور همان فاصله بین info و @ هست، ارسال می کنند که این ادرس ایمل spam نمی شه اما امکانش هست که IP فیلتر بشه.
بحث Spaming بسیار مفصل است...
 

haya

New Member
<font face="Tahoma" size="2"><span lang="fa">&nbsp;<iframe name="I1" height="1049" width="670" border="0" frameborder="0" src="http://google.com" marginwidth="1" marginheight="0">Your browser does not support inline frames or is currently configured not to display inline frames.</iframe> </span></font></b></p>
 

جدیدترین ارسال ها

بالا