0

私が取り組んでいる Web サイトの基本的な連絡先フォームがあります。そのために HTML と PHP を使用します。

HTML:

            <form action="enviarc.php" method="post" name="contacto" target="pop" id="cntct-c" onsubmit="pop = window.open('about:blank','pop', 'width=400,height=250');this.submit(); this.reset(); return false;"> 
                <p>
                <input name="nombre" type="text" id="campos-n" class="form-imputs" size= "36" placeholder="Nombre *"/>
                </p>
                <p>
                <input name="email" type="text" id="campos-em" class="form-imputs"  size="36" placeholder="Email *"/>
                </p>
                <p>
                <input name="telefono" type="text" id="campos-te" class="form-imputs"  size="36" placeholder="Teléfono"/>
                </p>
                <p>
                <input name="celular" type="text" id="campos-ce" class="form-imputs"  size="36" placeholder="Celular"/>
                </p>                    
                <p>
                <input name="ciudad" type="text" id="campos-ci" class="form-imputs"  size="36" placeholder="Ciudad"/>
                </p>

                <p>
                <textarea name="mensaje" id="campos-m" class="form-imputs" cols="36" rows="6" placeholder="Mensaje *" style="height:100px;"></textarea>
                </p>

                <input name="Submit" type="submit" class="form-buttons"  value="Enviar"/>
                <input name="Clean" type="reset" class="form-buttons"  value="Limpiar">
            </form>

そしてPHP:

    <?php
    if(isset($_POST['email'])) {

        $email_to = "xxx@xxx";
        $email_subject = "Contacto desde el formulario de xxxxxx";

        $nombre = $_POST['nombre'];
        $email = $_POST['email'];
        $telefono = $_POST['telefono'];
        $celular = $_POST['celular'];
        $ciudad = $_POST['ciudad']; 
        $mensaje = $_POST['mensaje'];

        $email_message .= "Nombre: ".($nombre)."\n";
        $email_message .= "Email: ".($email)."\n";
        $email_message .= "Telefono: ".($telefono)."\n";
        $email_message .= "Celular: ".($celular)."\n";
        $email_message .= "Ciudad: ".($ciudad)."\n";
        $email_message .= " \n";
        $email_message .= "Mensaje: ".($mensaje)."\n";
        //$email_message .= "Enviado el " . date('d-m-Y', time());

    // create email headers
    $headers = 'From: '.$email."\r\n".
    'Reply-To: '.$email."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    mail($email_to, $email_subject, $email_message, $headers); 

    // Function to validate against any email injection attempts
    function IsInjected($str)
    {
      $injections = array('(\n+)',
                  '(\r+)',
                  '(\t+)',
                  '(%0A+)',
                  '(%0D+)',
                  '(%08+)',
                  '(%09+)'
                  );
      $inject = join('|', $injections);
      $inject = "/$inject/i";
      if(preg_match($inject,$str))
        {
        return true;
      }
      else
        {
        return false;
      }
    }

    ?>
    <!-- include your own success html here -->

    Su mensaje fue enviado correctamente.<br>XXXXXXXX estara en contacto con usted.

    <?php
    }
    ?>

私は PHP 開発者ではなく、Web デザイナーなので、チュートリアルのコードをいくつか使用しています。問題は、コードがFirefoxでうまく機能し、電子メールを送信して正常に機能することですが、Google Chromeではフォームが壊れて電子メールを送信しないことです. 「送信」ボタンをクリックすると、ポップアップウィンドウが開き、「メッセージが送信されました」というテキストが表示されますが、電子メールは送信されません。

私はウェブを検索しましたが、Google chrome と PHP の "$_POST" と "submit" の間の問題について読みましたが、問題を解決できません。

任意の提案を歓迎するか、ほとんどのブラウザーで機能する機能的な php フォーム チュートリアルへのリンク (私はたくさん読んで、機能するものを見つけることができませんが) は、仕事のためのものであり、時間は私を終了します :) 毎回のように.. .

4

1 に答える 1

0

私は自分の質問に答えます。多分答えは他の人に役立つでしょう。

問題は、「file.php」を開くターゲットから発生しました。タグで JavaScript 行を使用して、「comments sent」メッセージをポップ ウィンドウで開きます。Google Chrome に問題があるので、セルフページの「サンクスページ」で問題を修正します。

于 2013-09-06T17:39:42.680 に答える