Bonjour à tous,

Voila je rencontre un petit problème avec mon code.

besoin d'un petit coup de pouce en php s'il vous plait. tout d'abord désolé pour les fautes d'orthographe, alors voici :

Partie HTML pour le form

<?php
/**
 * Created by PhpStorm.
 * User: ...........
 * Date: 15/08/2017
 * Time: 10:56
 */

require 'connexion_post.php';
?>

<link rel="stylesheet" href="style.css" type="text/css">
<div class="container">
    <form id="contact" action="connexion_post.php" method="post">
        <h3>Quick Contact</h3>
        <h4>Contact us today, and get reply with in 24 hours!</h4>
        <fieldset>
            <input placeholder="Your name"  name="name"  type="text" tabindex="1" autofocus>
           <!-- <span class="error"> $name_error </span> -->
        </fieldset>
        <fieldset>
            <input placeholder="Your Email Address" name="email"   type="email" tabindex="2" >

        </fieldset>
        <fieldset>
            <input placeholder="Your Phone Number"  name="phone"  type="tel" tabindex="3" >

        </fieldset>
        <fieldset>
            <input placeholder="Your Web Site starts with http://"  name="url"  type="url" tabindex="4" >
        </fieldset>
        <fieldset>
            <textarea placeholder="Type your Message Here...."  name="message"  tabindex="5" ></textarea>

        </fieldset>
        <fieldset>
            <button name="submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button>
        </fieldset>
    </form>
</div>

Partie PHP

<?php
/**
 * Created by PhpStorm.
 * User: nyzakaria
 * Date: 16/08/2017
 * Time: 09:36
 */

try{
    $bdd = new PDO ('mysql:host=localhost;dbname=tests', 'root', 'root');
}catch(exception $e){
    die('Erreur :' .$e->getMessage());
}

$message = $bdd->prepare('INSERT INTO form(name, email, phone, url, message) VALUES (?,?,?,?,?)');
$message->execute(array($_POST['name'],$_POST['email'],$_POST['phone'],$_POST['url'],$_POST['message'],));

if(isset($_POST['submit'])){
    $to = 'monadressemailàmoi@gmail.com';
    $subject = 'nouveau contact - ';

    /*-header-*/
    $headers = 'From : Formulaire de contact du site';

    /*-message-*/
    $msg = 'Vous avez une nouvelle demadne d\'information !';

    mail($to,$subject,$msg, $headers);

    echo"votre message a bien été reçu";
}else {
    echo "Ops !veuillez essayer encore une fois";
}

Ce que je veux

Alors,

tout d'abord la page s'affiche normalement, le formulaire et les echo lorsque c'est submité,
Une fois que je vais sur le formulaire de contact, tout se passe bien, là aussi c'est bon, le formulaire est insérer dans ma base de donnée, à ce second niveau j'ai pas de souci, tout est enregistré dans ma base de donnée, en local.
Cependant, j'ai du mal à accéder à mon troisième niveau : à savoir recevoir un mail lorsque l'utilisateur a submité son formulaire. (pour l'instant je fais ça en local, y a t il un rapport avec le fait que ma boite mail ne reçois pas ces mails ?)
voici donc le premier souci exposé.
J'ai pensé aussi à aller plus loin (mais ça c'est si j'arrive à accéder au 3eme niveau) c'est de faire une joli copie du mail pour l'envoyer à l'utilisateur qui a submité, et cela avec les infos qui l'a laissé dans le formulaire.

donc insert dans la base de donnée, afficher dans l'email et envoyer l'email.

Est ce que vous pouvez me donner un ou deux bons petit coup de pouce s'il vous plait ?

Merci d'avance !

Ce que j'obtiens

Alors j'ai pas d'erreur en tant que tel, mais j'ai aucun mail d'envoyer et aucun mail de recu sur ma boite mail.

Pouvez vous m'aider merci d'avance,

5 réponses


Déjà, est-ce que tu peut envoyer des email en local ?

Rmine
Auteur

Non, ça ne fonctionne pas non plus en local,

Salut,

déjà corrige ton code :

if(mail($to,$subject,$msg, $headers)){
    echo"votre message a bien été reçu";
} else {
    echo"Oups, il y a eu un problème lors de l'envoi de l'e-mail.";
}

Ensuite, as-tu testé ton code ailleurs qu'en local ? si oui, les mails fonctionnaient ?

Salut, petite parenthèse. Si tu souhaites avoir un système de mail plus robuste penche toi vers des librairies (ex, SwiftMailer de sensiolabs).
Par contre, reste sur ce système si tu n'es pas à l'aise avec composer.

Rmine
Auteur

Merci les gars pour vos suggestions, finalement j'ai opté pour phpmailer qui est beaucoup plus simple d'utilisation.
@fital oui j'aurai pu ajouter cette condition à part, mais quand je peux gagner des lignes de code pour faire de nouvelle condition.

Merci de votre aide les gars