Envoi formulaire de contact ne marche pas

Eléphanteau du PHP | 13 Messages

14 mars 2021, 11:45

Bonjour,

J'ai créer un formulaire de contact avec PHP et je ne sais pas quelles sont mes erreurs dans mon code car quand j'essaye mon formulaire et que je clique sur le bouton "envoyer" rien ne se passe.

Je vous mets mon code PHP et HTML ci-dessous :
<?php

if(isset($_POST['mailform'])) {
    if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['mail']) AND !empty($_POST['numero']) AND !empty($_POST['message'])) {
        
        $header="MIME-Version: 1.0\r\n";
        $header.='From:"Jessica CIOSI"<[email protected]>'."\n";
        $header.='Content-Type:text/html; charset="uft-8"'."\n";
        $header.='Content-Transfer-Encoding: 8bit';
        $message='
        <html>
            <body>
                <div align="center">
                    <u>Nom et prénom de l\'expéditeur :</u>' . $_POST['nom'] . ' ' . $_POST['prenom'] . '<br />
                    <u>Mail de l\'expéditeur :</u>' . $_POST['mail'] . '<br />
                    <u>Numéro de téléphone de l\'expéditeur :</u>' . $_POST['numero'] . '<br />
                    <br />
                    '.nl2br($_POST['message']).'
                </div>
            </body>
        </html>
        ';
        mail("[email protected]", "CONTACT - Bijouterie RUBY", $message, $header);
        $msg="Votre message a bien été envoyé !";
    } else {
        $msg="Tous les champs doivent être complétés !";
    }
}

?>
<main class="main-contact">

    <section class="section-titre-contact">
        <div class="titre-contact">
            <h1>NOUS CONTACTER</h1>
        </div>
    </section>

    <section class="section-form-contact">

        <form class="form-contact" method="POST" action="">
            <div class="form-group">
                <label for="nom">Nom</label>
                <input class="input-form" type="text" id="nom" name="nom" placeholder="Votre nom" value="<?php if(isset($_POST['nom'])) { echo $_POST['nom']; } ?>">
            </div>
            <div class="form-group">
                <label for="prenom">Prénom</label>
                <input class="input-form" type="text" id="prenom" name="prenom" placeholder="Votre prenom" value="<?php if(isset($_POST['prenom'])) { echo $_POST['prenom']; } ?>">
            </div>
            <div class="form-group">
                <label for="email">Email</label>
                <input class="input-form" type="email" id="email" name="mail" placeholder="Votre email" value="<?php if(isset($_POST['mail'])) { echo $_POST['mail']; } ?>">
            </div>
            <div class="form-group">
                <label for="numero">Numero</label>
                <input class="input-form" type="text" id="numero" name="numero" size="14" maxlength="14" placeholder="Votre numéro de téléphone" value="<?php if(isset($_POST['numero'])) { echo $_POST['numero']; } ?>">
            </div>
            <div class="form-group">
                <label for="message">Votre message</label>
                <textarea name="message" id="message" cols="30" rows="10"><?php if(isset($_POST['message'])) { echo $_POST['message']; } ?></textarea>
            </div>
            <input class="bouton-contact" type="submit" value="ENVOYER" name="mailForm">
<?php 
            
            if(isset($msg)) {
                echo $msg;
            }    

            ?>
</form>
        
    </section>

</main>
Merci d'avance pour votre aide !

Mammouth du PHP | 2703 Messages

14 mars 2021, 14:57

il n'y a pas l'affichage de "Votre message a bien été envoyé !" ?

Eléphanteau du PHP | 13 Messages

14 mars 2021, 19:26

il n'y a pas l'affichage de "Votre message a bien été envoyé !" ?
Non rien ne s'affiche quand je clique sur le bouton "envoyer".

Eléphanteau du PHP | 13 Messages

14 mars 2021, 19:42

il n'y a pas l'affichage de "Votre message a bien été envoyé !" ?
J'ai modifié mon code comme ceci et le message "Votre message a bien été envoyé !" s'affiche après le clique sur le bouton "envoyer" mais je n'ai pas reçu de message dans ma boîte mail. Et quand je clique sur "envoyer" et que les champs ne sont pas tous remplis le message "Votre message a bien été envoyé !" s'affiche aussi...

Modification PHP :
<?php 
if( !empty($_POST)) {
    if ( isset($_POST['nom'])&& isset($_POST['prenom'])&& 
    isset ($_POST['mail']) && isset($_POST['numero']) && isset($_POST['message']) ) {
        $header="MIME-Version: 1.0\r\n";
        $header.='From: [email protected]'."\n";
        $header.='Content-Type:text/html; charset="uft-8"'."\n";
        $header.='Content-Transfer-Encoding: 8bit';
        $message='
        <html>
            <body>
                <div align="center">
                    <u>Nom et prénom de l\'expéditeur :</u>' . $_POST['nom'] . ' ' . $_POST['prenom'] . '<br />
                    <u>Mail de l\'expéditeur :</u>' . $_POST['mail'] . '<br />
                    <u>Numéro de téléphone de l\'expéditeur :</u>' . $_POST['numero'] . '<br />
                    <br />
                    '.nl2br($_POST['message']).'
                </div>
            </body>
        </html>
        ';
        mail("[email protected]", "CONTACT - Bijouterie RUBY", $message, $header);
        $msg="Votre message a bien été envoyé !";
    } else {
        $msg="Tous les champs doivent être complétés !";
    }
}
?>

Mammouth du PHP | 2703 Messages

14 mars 2021, 19:48

c'est https://www.php.net/manual/fr/function.empty.php qu'il faut utiliser.

rien dans la boite de spam ? pareil pour une adresse autre que chez gmail ? c'est testé en local ou sur un vrai hébergeur ?

Eléphanteau du PHP | 13 Messages

14 mars 2021, 22:12

c'est https://www.php.net/manual/fr/function.empty.php qu'il faut utiliser.

rien dans la boite de spam ? pareil pour une adresse autre que chez gmail ? c'est testé en local ou sur un vrai hébergeur ?
Rien dans boîte de spam aussi. Je test sur un serveur distant (hébergeur 000webhost).

Je vais consulter le lien que vous me conseillez pour en savoir plus merci.

Eléphanteau du PHP | 13 Messages

14 mars 2021, 22:36

c'est https://www.php.net/manual/fr/function.empty.php qu'il faut utiliser.

rien dans la boite de spam ? pareil pour une adresse autre que chez gmail ? c'est testé en local ou sur un vrai hébergeur ?
Re je viens de voir quelqu’un qui avait le même problème que moi sur le même hébergeur (000webhost) je vais donc je pense changer d’hébergeur pour voir si le problème est réglé ou pas.
Connaissez vous des hébergeurs gratuit sans pub ?
Merci d’avance.