Php 联系方式不包括';如果名称中有空格,则不发送
我正在查看一个网站的联系表单,但现在它不想发送,如果发件人姓名(如“John Smith”)中有空格,它只发送一个单词(“John”)。问题出在哪里,我对.php一无所知,但我正在寻找解决方法 编辑:好的,这是代码Php 联系方式不包括';如果名称中有空格,则不发送,php,forms,contact,Php,Forms,Contact,我正在查看一个网站的联系表单,但现在它不想发送,如果发件人姓名(如“John Smith”)中有空格,它只发送一个单词(“John”)。问题出在哪里,我对.php一无所知,但我正在寻找解决方法 编辑:好的,这是代码 <?php function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $type = "plain", $cc = "", $bcc = "") { requi
<?php
function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $type = "plain", $cc = "", $bcc = "") {
require_once "class.phpmailer.php";
$mail = new PHPMailer();
$mail->IsMAIL();
$mail->CharSet = "UTF-8";
$mail->From = $fromemail;
$mail->FromName = $fromname;
$mail->AddAddress($toemail, $toname);
$mail->AddReplyTo($fromemail, $fromname);
if ($cc) {
$cc = explode(", ", $cc);
foreach ($cc as $ccaddress) {
$mail->AddCC($ccaddress);
}
}
if ($bcc) {
$bcc = explode(", ", $bcc);
foreach ($bcc as $bccaddress) {
$mail->AddBCC($bccaddress);
}
}
if ($type == "plain") {
$mail->IsHTML(false);
} else {
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $message;
if(!$mail->Send()) {
$mail->ErrorInfo;
$mail->ClearAllRecipients();
$mail->ClearReplyTos();
return false;
} else {
$mail->ClearAllRecipients();
$mail->ClearReplyTos();
return true;
}
}
}
function descript($text, $striptags = true) {
// Convert problematic ascii characters to their true values
$search = array("40","41","58","65","66","67","68","69","70",
"71","72","73","74","75","76","77","78","79","80","81",
"82","83","84","85","86","87","88","89","90","97","98",
"99","100","101","102","103","104","105","106","107",
"108","109","110","111","112","113","114","115","116",
"117","118","119","120","121","122"
);
$replace = array("(",")",":","a","b","c","d","e","f","g","h",
"i","j","k","l","m","n","o","p","q","r","s","t","u",
"v","w","x","y","z","a","b","c","d","e","f","g","h",
"i","j","k","l","m","n","o","p","q","r","s","t","u",
"v","w","x","y","z"
);
$entities = count($search);
for ($i=0; $i < $entities; $i++) {
$text = preg_replace("#(&\#)(0*".$search[$i]."+);*#si", $replace[$i], $text);
}
$text = preg_replace('#(&\#x)([0-9A-F]+);*#si', "", $text);
$text = preg_replace('#(<[^>]+[/\"\'\s])(onmouseover|onmousedown|onmouseup|onmouseout|onmousemove|ondblclick|onfocus|onload|xmlns)[^>]*>#iU', ">", $text);
$text = preg_replace('#([a-z]*)=([\`\'\"]*)script:#iU', '$1=$2nojscript...', $text);
$text = preg_replace('#([a-z]*)=([\`\'\"]*)javascript:#iU', '$1=$2nojavascript...', $text);
$text = preg_replace('#([a-z]*)=([\'\"]*)vbscript:#iU', '$1=$2novbscript...', $text);
$text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU', "$1>", $text);
$text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU', "$1>", $text);
if ($striptags) {
do {
$thistext = $text;
$text = preg_replace('#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i', "", $text);
} while ($thistext != $text);
}
return $text;
}
$name=0;
$telefon=0;
$sender=0;
$syobshtenie=0;
$ename=0;
$etelefon=0;
$esender=0;
$esyobshtenie=0;
if($_POST['name']){
$name = "Запитване от ".$_POST['name'];
}
else { $name=1; $ename=1; }
if($_POST['sender']){
$sender = $_POST['sender'];
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $sender))
{
$sender="Email";
}
}
else { $sender=1; $esender=1; }
if($_POST['telefon']){
$telefon = $_POST['telefon'];
}
if($_POST['zapitvane']){
$zapitvane = $_POST['zapitvane'];
$syobshtenie = "<p>Запитване от ".$_POST['name']."
<br />Email: ".$sender."
<br />Телефон: ".$telefon."</p>".$zapitvane;
}
else { $syobshtenie=1; $esyobshtenie=1; }
if($name=="Име"){ $ename=1; }
if($telefon=="Телефон"){ $etelefon=1; }
if($sender=="Email"){ $esender=1; }
if($syobshtenie=="Моля, въведете съобщение до нас"){ $esyobshtenie=1; }
if($ename==0 && $esender==0 && $esyobshtenie==0 && $etelefon==0){
sendemail("VillaDes", "info@konsumator.com", "", $sender, $name, $syobshtenie, "", "", "");
echo '
<div class="active-error"" style="margin-top:5px;">Съобщението Ви беше изпратено.<br /><br />Приятен ден!</div>
<script>
document.getElementById("contact").reset();
</script>';
}
else {
echo '
<div class="border-15"></div><div class="active-error"><b>Моля, въведете:</b></div><div class="border-8"></div>';
if($ename==1) { echo '<div class="active-error">Име</div><div class="border-8"></div>'; }
if($esender==1) { echo '<div class="active-error">Е-поща</div><div class="border-8"></div>'; }
if($etelefon==1) { echo '<div class="active-error">Телефон</div><div class="border-8"></div>'; }
if($esyobshtenie==1) { echo '<div class="active-error">Запитване</div>'; }
}
echo '<script type="text/javascript">
$(document).ready(function() {
$("#close-email").click(function () { $("#mailresult").hide("fast"); } );
});
</script>';
?>
在您发布的代码中,您可以调用:
sendemail("VillaDes", "info@konsumator.com", "", $sender, $name, $syobshtenie, "", "", "");
您的sendemail功能接受:
sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message
因此,$fromname
将用作电子邮件的主题,而formname将为空。
php应该处理带有空格的主题,所以我认为这不是问题所在。
当您将$name
用作$fromemail
时,空格可能会出现问题。(不带空格的名称可以是本地邮箱??)
除此之外,您不需要class.phpmailer.php来发送电子邮件。
使用默认邮件功能:
$headers='From:“.$fromemail.”。“\r\n”。
'回复:“'.$fromname.'”'。“\r\n”。
“X-Mailer:PHP/”。phpversion();
邮件(“'VillaDes',$syobshdenie,”,$headers);
post code即使不是英文,也不是我们需要看到的单词。对于我来说,这个代码对于你的问题没有多大意义。如果您的发件人姓名中有空格,您会提到未发送的电子邮件。此代码根本不会将名称传递到发送者变量(我假设这是$fromname
)。这是原始代码还是你一直在尝试一些东西?是的,这是原始代码,尽管不是我写的。我要找出问题所在。所以问题是,如果你输入一个名字,比如约翰,管理员或者其他人,就会收到电子邮件。但是如果你的名字中有空格,网站会告诉你邮件已经发送了,但是管理员什么也没有收到。那么我应该做些什么改变才能发送邮件呢?我不知道用PHP邮件函数的代码phi>代码> sEnEdmail($ToMal../Cuffe)。现在你可以用名字空间发送。如果你没有PHP的知识,可以考虑使用类似的东西。
$headers = 'From: "'.$fromemail.'" <'.$fromname.'>' . "\r\n" .
'Reply-To: "'.$fromname.'" <'.$fromemail.'>' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail('"VillaDes" <info@konsumator.com>',$syobshtenie, "", $headers);