我在使用验证码时遇到问题。 它根本不会显示像äöüß这样的特殊角色。 现在它以某种方式在发送时删除它们。 联系表格在http://interdomo.de/kontakt/kontaktformular.php在线 我已经在(页面和表单)
中添加了UTF-8字符集以下是联系表单的php脚本:
$from="";
$anbebot="";
$name="";
$email="";
$nachricht="";
$check_1=0;
$check_2=0;
$check_3=0;
$fehler=0;
$email_fehler=0;
$nachricht_fehler=0;
$captcha_fehler=0;
if( isset($_GET["from"]) && ( $_GET["from"]=="Buchhaltung" || $_GET["from"]=="Autohausberatung" ) ){ $from=$_GET["from"]; }
if( isset($_GET["angebot"]) && $_GET["angebot"]==1 ){$check_1=1;}
if( isset($_GET["angebot"]) && $_GET["angebot"]==2 ){$check_2=1;}
if( isset($_GET["angebot"]) && $_GET["angebot"]==3 ){$check_3=1;}
if (isset($_POST["submit"])){
function repl($vari){
$vari = trim(preg_replace("/[^A-Z a-z 0-9 ÄÖÜäöüß \\n\\r@&€;\/\(\)-=~.,;:*|#\"\'\/?!%]/", " ", $vari));
return $vari;
}
$name= repl($_POST["name"]);
$email= repl($_POST["email"]);
if (!preg_match('/^[0-9A-Za-zÄÖÜÄÖÜß ]([-_.]?[0-9A-Za-zÄÖÜäöüß])*@[0-9A-Za-zÄÖÜäöüß]([-.]?[0-9A-Za-zÄÖÜäöüß])*\\.[a-z]{2,4}$/',$email) ){
$fehler=1;$email_fehler=1;
}
$nachricht= repl($_POST["nachricht"]);
if (strlen($nachricht)<=8){$fehler=1;$nachricht_fehler=1;}
if (isset($_SESSION['captcha_spam']) && $_POST["sicherheitscode"] <> $_SESSION['captcha_spam']){
$fehler=1;$captcha_fehler=1;
}
if( isset($_POST["check_1"]) && $_POST["check_1"]==1 ){$check_1=1;}
if( isset($_POST["check_2"]) && $_POST["check_2"]==1 ){$check_2=1;}
if( isset($_POST["check_3"]) && $_POST["check_3"]==1 ){$check_3=1;}
if( isset($_POST["from"]) && ( $_POST["from"]=="Buchhaltung" || $_POST["from"]=="Autohausberatung" ) ){ $from=$_POST["from"]; }
}
if (isset($_POST["submit"]) && $fehler<>1 && isset($_SESSION['captcha_spam']) && $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
$zeit=date("H:i");
$datum=date("d.m.Y");
$mailtext="Anfrage vom $datum um $zeit Uhr\n";
if (isset($from) && ($from=="Buchhaltung" || $from=="Autohausberatung" ) ){
$mailtext.="\n----------------------------------\n";
$mailtext.="Anfrage zu: $from";
}
$mailtext.="\n----------------------------------\n\n";
if ( $check_1==1 || $check_2==1 || $check_3==1 ){
$mailtext.="Ich bin an folgendem/n Angebot/en interessiert:\n";
if($check_1==1){$mailtext.=" - individuelles Angebot erstellen\n";}
if($check_2==1){$mailtext.=" - Festpreisangebot anfordern\n";}
if($check_3==1){$mailtext.=" - kostenlose Kurzanalyse anfordern\n";}
$mailtext.="\n";
}
$mailtext.="Name: $name\n";
$mailtext.="E-Mail: $email\n\n";
$mailtext.="Nachricht:\n";
$mailtext.="$nachricht\n";
$email = trim(preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $email ));
$mailtext = trim(preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mailtext ));
$mailheaders = "From:$email";
//echo("<pre>$mailtext</pre>");
mail("email@email.com","Kontaktformular",$mailtext,$mailheaders);
echo("<div id='response'>Vielen Dank für Ihre Anfrage.<br>Wir werden uns so schnell wie möglich um Ihr Anliegen kümmern.</div>");
}
我现在还要在这里添加html代码:
<form method="post" action="kontaktformular.php#response" accept-charset="UTF-8">
<input type="hidden" name="from" value="<?php echo($from); ?>" />
<legend>
<h2>Ich bin an folgendem/n Angebot/en interessiert:</h2>
</legend>
<div class="form-group">
<input type="checkbox" name="check_1" value="1" <?php if($check_1==1){echo("checked='checked'");} ?> /> individuelles Angebot erstellen<br />
</div>
<div class="form-group">
<input type="checkbox" name="check_2" value="1" <?php if($check_2==1){echo("checked='checked'");} ?> /> Festpreisangebot anfordern<br />
</div>
<div class="form-group">
<input type="checkbox" name="check_3" value="1" <?php if($check_3==1){echo("checked='checked'");} ?> /> kostenlose Kurzanalyse anfordern<br /><br />
</div>
<div class="form-group">
<label>Name:</label>
<input type="text" name="name" value="<?= $name; ?>" class="form-control">
</div>
<div class="form-group">
<label>E-Mail:</label>
<input type="text" name="email" value="<?= $email; ?>" class="form-control" style="<? if ($email_fehler==1){echo("border:1px solid #ff0000;");}else{echo("border:1px solid #999999;");} ?> background-color:#eeeeee;">
</div>
<div class="form-group">
<label>Ihre Nachricht:</label>
<textarea name="nachricht" rows="5" class="form-control" style=" <? if ($nachricht_fehler==1){echo("border:1px solid #ff0000;");}else{echo("border:1px solid #999999;");} ?> background-color:#eeeeee;"><? echo stripslashes($nachricht); ?></textarea>
</div>
<div class="form-group">
Sicherheitscode:
<table class="table">
<tr>
<td><img src="../captcha/captcha.php" border="0" title="Sicherheitscode" style="padding-bottom:6px; padding-right:6px;"></td>
<td>Bitte geben Sie hier den Sicherheitscode ein.</td>
</tr>
</table>
</div>
<div class="form-group">
<input type="text" name="sicherheitscode" size="5" class="form-control" style="<? if ($captcha_fehler==1){echo("border:1px solid #ff0000;");}else{echo("border:1px solid #999999;");} ?>">
</div>
<div class="form-group">
<input type="Submit" name="submit" class="sendbutton" onMouseOver="this.style.cursor='pointer';" value="Nachricht senden" style="border:1px solid #999999; width: 200px;">
</div>
</form>
答案 0 :(得分:0)
问题在于php文件的格式。 它是用一个旧程序构建的,并设置为ANSI,我用notepad ++打开代码并将其保存为utf-8并且一切正常。