2012-06-03 32 views
-2

我爲您帶來另一個與表單有關的問題:表單不提交重音元音,有沒有辦法糾正這個問題?

1-下面粘貼的代碼是一個php處理的表單,它將信息提交給一個電子郵件。 它的工作原理完全不同之處在於,當字段被填充了字符A 後來我收到下面的一句話:

From : 
Sílv &#227 ; o 

e-Mail : [email protected] 
Subject : [Formulário de contato] : ão é í ó ú ça 
Message : ão é í ó ú ça ão é í ó ú ça ão é í ó ú ça ão é í ó ú ça 

數量#227;是ã的ASCII字符碼。所有其他重音元音均正確提交。 有沒有辦法糾正這個問題?

2-在另一件事情上,必須添加到代碼來處理單選按鈕和複選框?

謝謝

Quote 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1250"> 
<title>Líderes do Futuro</title> 

<!-- the cascading style sheet--> 
<link href="../css/style_contactform.css" rel="stylesheet" type="text/css" /> 

</head> 


<body> 
<div id="contentForm"> 

<!-- The contact form starts from here--> 
<?php 
$error = ''; // error message 
$name = ''; // sender's name 
$email = ''; // sender's email address 
$subject = ''; // subject 
$message = ''; // the message itself 
$spamcheck = ''; // Spam check 

if(isset($_POST['send'])) 
{ 
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$spamcheck = $_POST['spamcheck']; 

if(trim($name) == '') 
{ 
$error = '<div class="errormsg">Por favor complete seu nome</div>'; 
} 
else if(trim($email) == '') 
{ 
$error = '<div class="errormsg">Por favor complete seu nome digite seu e-mail</div>'; 
} 
else if(!isEmail($email)) 
{ 
$error = '<div class="errormsg">You have enter an invalid e-mail address. Please, try again!</div>'; 
} 
if(trim($subject) == '') 
{ 
$error = '<div class="errormsg">Please enter a subject!</div>'; 
} 
else if(trim($message) == '') 
{ 
$error = '<div class="errormsg">Please enter your message!</div>'; 
} 
else if(trim($spamcheck) == '') 
{ 
$error = '<div class="errormsg">Please enter the number for Spam Check!</div>'; 
} 
else if(trim($spamcheck) != '5') 
{ 
$error = '<div class="errormsg">Spam Check: The number you entered is not correct! 2 + 3 = ???</div>'; 
} 
if($error == '') 
{ 
if(get_magic_quotes_gpc()) 
{ 
$message = stripslashes($message); 
} 

// the email will be sent here 
// make sure to change this to be your e-mail 
$to = "[email protected]"; 

// the email subject 
// '[Contact Form] :' will appear automatically in the subject. 
// You can change it as you want 

$subject = '[Formulário de contato] : ' . $subject; 

// the mail message (add any additional information if you want) 
$msg = "From : $name \r\ne-Mail : $email \r\nSubject : $subject \r\n\n" . "Message : \r\n$message"; 

mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"); 
?> 

<!-- Message sent! (change the text below as you wish)--> 
<div style="text-align:center;"> 
<h1>Congratulations!!</h1> 
<p>Thank you <b><?=$name;?></b>, your message is sent!</p> 
</div> 
<!--End Message Sent--> 


<?php 
} 
} 

if(!isset($_POST['send']) || $error != '') 
{ 
?> 

<h2>Preencha todos os campos:</h2> 
<!--Error Message--> 
<?=$error;?> 

<form method="post" name="contFrm" id="contFrm" action=""> 


<label><span class="required">*</span> Full Name:</label> 
<input name="name" type="text" class="box" id="name" size="30" value="<?=$name;?>" /> 




<label><span class="required">*</span> Email: </label> 
<input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>" /> 

<label><span class="required">*</span> Subject: </label> 
<input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>" /> 

<label><span class="required">*</span> Message: </label> 
<textarea name="message" cols="40" rows="3" id="message"><?=$message;?></textarea> 

<label><span class="required">*</span> Spam Check: <b>2 + 3=</b></label> 
<input name="spamcheck" type="text" class="box" id="spamcheck" size="4" value="<?=$spamcheck;?>" /><br /><br /> 

<!-- Submit Button--> 
<input name="send" type="submit" class="button" id="send" value="" /> 

</form> 

<!-- E-mail verification. Do not edit --> 
<?php 
} 

function isEmail($email) 
{ 
return(preg_match("/^[-_.[:alnum:]][email protected]((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" 
,$email)); 
} 
?> 
<!-- END CONTACT FORM --> 


</div> <!-- /contentForm --> 

</body> 
</html> 

回答

1

My 2 cents:從我所做的測試,或者刪除<meta http-equiv="content-type" content="text/html; charset=windows-1250">完全,或更換12501252。測試返回字符ão而不是&#227;

+0

@Ron Wolpa檢查並驗證字符集。如果這是你的問題,UPvote並檢查接受這個答案。希望它能解決問題。 –

+1

從一個8位遺留字符集切換到另一個只會將問題推到別處。你應該考慮升級到21世紀,我。即UTF-8。 – tripleee

+0

我的2美分:從我做的測試......>不,不幸的是,將chartset更改爲1252,也沒有完全刪除doctype使其返回重疊了代字號的元音。 你做了什麼測試? –

2

複製/粘貼下面的代碼。另一個問題可能是您的CSS樣式表。嘗試刪除鏈接到.css並直接插入到<head>或根本沒有樣式。下面的代碼發送到2封電子郵件。在羅恩之後,我不知道我還有什麼可以幫忙的,因爲這對我來說工作得很好。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Líderes do Futuro</title> 

<!-- the cascading style sheet--> 
<link href="../css/style_contactform.css" rel="stylesheet" type="text/css" /> 

</head> 


<body> 
<div id="contentForm"> 

<!-- The contact form starts from here--> 
<?php 
$error = ''; // error message 
$name = ''; // sender's name 
$email = ''; // sender's email address 
$subject = ''; // subject 
$message = ''; // the message itself 
$spamcheck = ''; // Spam check 

if(isset($_POST['send'])) 
{ 
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$spamcheck = $_POST['spamcheck']; 

if(trim($name) == '') 
{ 
$error = '<div class="errormsg">Por favor complete seu nome</div>'; 
} 
else if(trim($email) == '') 
{ 
$error = '<div class="errormsg">Por favor complete seu nome digite seu e-mail</div>'; 
} 
else if(!isEmail($email)) 
{ 
$error = '<div class="errormsg">You have enter an invalid e-mail address. Please, try again!</div>'; 
} 
if(trim($subject) == '') 
{ 
$error = '<div class="errormsg">Please enter a subject!</div>'; 
} 
else if(trim($message) == '') 
{ 
$error = '<div class="errormsg">Please enter your message!</div>'; 
} 
else if(trim($spamcheck) == '') 
{ 
$error = '<div class="errormsg">Please enter the number for Spam Check!</div>'; 
} 
else if(trim($spamcheck) != '5') 
{ 
$error = '<div class="errormsg">Spam Check: The number you entered is not correct! 2 + 3 = ???</div>'; 
} 
if($error == '') 
{ 
if(get_magic_quotes_gpc()) 
{ 
$message = stripslashes($message); 
} 

// the email will be sent here 
// make sure to change this to be your e-mail 
// $to = "[email protected]"; 
$to = '[email protected], [email protected]'; 

// the email subject 
// '[Contact Form] :' will appear automatically in the subject. 
// You can change it as you want 

$subject = '[Formulário de contato] : ' . $subject; 

// the mail message (add any additional information if you want) 
$msg = "From : $name \r\ne-Mail : $email \r\nSubject : $subject \r\n\n" . "Message : \r\n$message"; 

mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"); 
?> 

<!-- Message sent! (change the text below as you wish)--> 
<div style="text-align:center;"> 
<h1>Congratulations!!</h1> 
<p>Thank you <b><?=$name;?></b>, your message is sent!</p> 
</div> 
<!--End Message Sent--> 


<?php 
} 
} 

if(!isset($_POST['send']) || $error != '') 
{ 
?> 

<h2>Preencha todos os campos:</h2> 
<!--Error Message--> 
<?=$error;?> 

<form method="post" name="contFrm" id="contFrm" action=""> 


<label><span class="required">*</span> Full Name:</label> 
<input name="name" type="text" class="box" id="name" size="30" value="<?=$name;?>" /> 




<label><span class="required">*</span> Email: </label> 
<input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>" /> 

<label><span class="required">*</span> Subject: </label> 
<input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>" /> 

<label><span class="required">*</span> Message: </label> 
<textarea name="message" cols="40" rows="3" id="message"><?=$message;?></textarea> 

<label><span class="required">*</span> Spam Check: <b>2 + 3=</b></label> 
<input name="spamcheck" type="text" class="box" id="spamcheck" size="4" value="<?=$spamcheck;?>" /><br /><br /> 

<!-- Submit Button--> 
<input name="send" type="submit" class="button" id="send" value="" /> 

</form> 

<!-- E-mail verification. Do not edit --> 
<?php 
} 

function isEmail($email) 
{ 
return(preg_match("/^[-_.[:alnum:]][email protected]((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" 
,$email)); 
} 
?> 
<!-- END CONTACT FORM --> 


</div> <!-- /contentForm --> 

</body> 
</html> 
+0

我試過上面的代碼,沒有** [tag:bom] **,它工作正常,所以這不是你的問題。另一件事,你是在** ASCII **上傳?可能是一個愚蠢的問題,但值得提問。 –

相關問題