Pourquoi mon formulaire de contact fonctionne-t-il dans Brave mais pas dans les autres navigateurs ?
P粉360266095
P粉360266095 2024-02-21 18:28:10
0
1
381

Mon formulaire fonctionne dans Brave sur mon ordinateur, mais pas dans Safari ou Google sur mon ordinateur. Cela ne fonctionne pas non plus sur les appareils mobiles. Si cela ne fonctionne pas, une erreur POST 409 est renvoyée.

Voici mon code html.

<div class="row">
                            <div class="col-md-12 col-sm-12" id="result"></div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label for="userName" class="d-none"></label>
                                    <input class="form-control" type="text" placeholder="First Name:" required id="userName" name="userName">
                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label for="companyName" class="d-none"></label>
                                    <input class="form-control" type="tel" placeholder="Company Name"  id="companyName" name="companyName">
                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label for="email" class="d-none"></label>
                                    <input class="form-control" type="email" placeholder="Email:" required id="email" name="email">
                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <button type="submit" class="button gradient-btn w-100" id="submit_btn">subscribe</button>
                            </div>
                        </div>
                    </form>

Voici mon code php

<?php

use PHPMailer\PHPMailer\PHPMailer;

if($_POST)
{

    require_once "PHPMailer/Exception.php";
    require_once "PHPMailer/PHPMailer.php";
    require_once "PHPMailer/SMTP.php";

    $mail = new PHPMailer();


    $your_email = "[email protected]";  //Replace with recipient email address

    $to_Email       = $your_email;

    //check if its an ajax request, exit if not
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

        //exit script outputting json data
        $output = json_encode(
        array(
            'type'=>'error',
            'text' => 'Request must come from Ajax'
        ));

        die($output);
    }

    //check $_POST vars are set, exit if any missing
    if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"]))
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!'));
        die($output);
    }

    //Sanitize input data using PHP filter_var().
    $user_Name        = filter_var($_POST["userName"], FILTER_SANITIZE_STRING);
    $user_Email       = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL);
    $user_Phone =  $_POST["userPhone"];
    //$user_Subject =  $_POST["userSubject"];
    $user_Message     = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);

    //additional php validation
    if(strlen($user_Name)<3) // If length is less than 3 it will throw an HTTP error.
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
        die($output);
    }
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
        die($output);
    }

    if(strlen($user_Message)<5) //check emtpy message
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.'));
        die($output);
    }


       //Server settings
//    $mail->isSMTP();                                            // Send using SMTP
//    $mail->Host       = 'smtp.googlemail.com';                    // Set the SMTP server to send through
//    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
//    $mail->Username   = '[email protected]';                     // SMTP username
//    $mail->Password   = 'your password';                         // SMTP password
//    $mail->SMTPSecure = 'TLS';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//    $mail->Port       = 587;                                    // TCP port to connect to

    //Recipients
     $mail->setFrom($user_Email,$user_Name);
     $mail->addAddress($your_email, 'Theme Industry');     // Add a recipient
     $mail->addReplyTo($your_email, 'Information');


    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'New Contact Inquiry from your Website';
    $mail->Body  = "<h4 style='text-align: center;padding: 25px 15px;background-color: #0c6c9e;color: #FFFFFF;font-size:16px;width:90%;border-radius: 10px;'>Hi There! You have a new inquiry from your website.</h4><br><br>";


    $mail->Body .= "<strong>Name: </strong>". $user_Name ."<br>";
    $mail->Body .= "<strong>Email: </strong>". $user_Email ."<br>";
    $mail->Body .= "<strong>Phone: </strong>". $user_Phone ."<br>";
    $mail->Body .= "<strong>Message: </strong>". $user_Message ."<br>";

    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    if(!$mail->send())
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
        die($output);
    }else{
        $output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_Name .' Thank you for contacting us.'));
        die($output);
    }

}
?>

Voici mon code JavaScript

//contact us

    $("#submit_btn1 , #submit_btn").on('click', function () {

        let userName = $('#name1').val();

        let userEmail = $('#email1').val();

        let userMessage = $('#message1').val();

        let result;

        if(this.id === 'submit_btn'){

            result = $('#result');

            userMessage = $('#companyName').val();

            userName = $('#userName').val();

            userEmail = $('#email').val();

        }

        else{

            result = $('#result1');

        }

        //simple validation at client's end

        let postData, output;

        let proceed = true;

        if (userName === "") {

            proceed = false;

        }

        if (userEmail === "") {

            proceed = false;

        }

        if (userMessage === "") {

            proceed = false;

        }

        //everything looks good! proceed...

        if (proceed) {



            //data to be sent to server

            postData = {

                'userName': userName,

                'userEmail': userEmail,

                'userMessage': userMessage

            };



            //Ajax post data to server

            $.post('https://thordigi.com/contact.php', postData, function (response) {

                //load json data from server and output message

                if (response.type === 'error') {

                    output = '<div class="alert-danger" style="padding:10px; margin-bottom:25px;">' + response.text + '</div>';

                } else {

                    output = '<div class="alert-success" style="padding:10px; margin-bottom:25px;">' + response.text + '</div>';

                    //reset values in all input fields

                    $('.getin_form input').val('');

                    $('.getin_form textarea').val('');



                }



                result.slideUp("fast").html(output).slideDown();

            }, 'json');



        } else {

            output = '<div class="alert-danger" style="padding:10px; margin-bottom:25px;">Please provide the missing fields.</div>';

            result.slideUp("fast").html(output).slideDown();

        }



    });

Je suis bloqué sur ce problème depuis un moment, j'apprécierais donc vraiment toute aide !

P粉360266095
P粉360266095

répondre à tous(1)
P粉670838735

Il existe souvent des différences entre les différents navigateurs, et certains sont plus indulgents que d'autres. Des erreurs comme celle-ci sont généralement causées par quelque chose qui ne s'affiche pas correctement (votre code ne peut donc pas trouver le bon champ, etc.). Pour vérifier le code HTML, exécutez-le via le validateur w3c et voyez ce qu'il recommande.

Si cela ne vous aide pas, alors pour voir exactement ce que chaque navigateur envoie et reçoit, je vous recommande d'utiliser un proxy man-in-the-middle (tel que burp) pour intercepter la demande et la réponse. En examinant les données brutes, il est généralement rapidement évident où se situe le problème.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!