2017-03-13 11 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として保存しました。

関連する問題