2017-03-13 2 views
-2

captcha와의 문의 양식에 문제가 있습니다. äöüß와 같은 특수 문자는 전혀 표시되지 않습니다. 지금은 전송하는 동안 제거하는 중입니다. 연락처 양식 http://interdomo.de/kontakt/kontaktformular.php 에서 온라인 난 이미 (페이지 양식) 여기 문의 양식 특수 문자

는 문의 양식의 PHP 스크립트 모두에 UTF-8 캐릭터 세트를 추가 한 :

 $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\\[email protected]&€;\/\(\)-=~.,;:*|#\"\'\/?!%]/", " ", $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 protected]","Kontaktformular",$mailtext,$mailheaders); 


     echo("<div id='response'>Vielen Dank f&uuml;r Ihre Anfrage.<br>Wir werden uns so schnell wie m&ouml;glich um Ihr Anliegen k&uuml;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

확인 http://stackoverflow.com/a/279279/3316645 – domsson

답변

0

문제는 PHP 파일의 형식이었다. 이전 프로그램으로 작성되었으며 ANSI로 설정되어 있으므로 메모장 ++로 코드를 열어 utf-8로 저장 했으므로 모두 정상적으로 작동합니다.