Bonjour,
J'ai testé le script de formulaire php et j'ai une erreur "Parse error: syntax error, unexpected '' in C:\wamp\www\Site\contact.php on line 2" que je n'arrive pas à corriger.
Mon site est en HTML/CSS. J'ai utilisé le script de formulaire de contact php en vidéo pour envoyer un message. Voici mon code php
Merci de votre aide!
Cordialement,

<?php
if(isset($_POST) && isset($_POST'nom']) && isset($POST'email']) && isset('objet']) && isset('message'])){
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($objet) && !empty($message)){
$message-str_replace("\'","'",$message);
$destinataire="kyopas@yahoo.fr";
$objet="Formilaire de contact";
$msg="Nouveau message \n
Nom: $nom \n
Email: $email \n
Message: $message";
$entete="From: $nom \n Reply-To: $mail";
mail($destinataire, $objet, $msg, $entete);
echo"Le mail a bien été envoyé."
}
else{
echo "Vous n'avez pas rempli tous les champs.";
}
}
?>

5 réponses


Salut,

Penses à utiliser la balise :

Ton erreur vient de :

&& isset('objet']) && isset('message']))

J'pense qu'il manque le $_POST avant ^^
Mais pour optimiser ton code, j'te conseille de vérifier uniquement l'existence de $_POST :

if(isset($_POST)){
    // Ton code
}

Ensuite tu as une autre erreur :

$message-str_replace("\'","'",$message); // FAUX
$message = str_replace("\'","'",$message); // Bon code

(Ca n'a d'ailleurs pas d'intérêt de faire ceci).

Puis pour finir, si on oublie la faute d'orthographe ("Formilaire"), il manque toutes les sécurités.
Même si j'ai jamais réellement su, si c'était vraiment utile à l'envoie de mail.
Dans le doute, penses à sécurisé toutes tes variables avec htmlspecialchars();

kyopas
Auteur

Re,
Merci pour ton aide. J'ai fait les modifications mais rien ne se passe j'ai la page contact.php qui se lance et est vide; de plus je ne reçois pas le message dans la boîte du destinataire.
Sinon j'ai une autre question! Comment tu utilise la balise code dans du php?
Merci encore!
Cordialement,

Euh là ya eu un bug, en gros met la balise :"

ton code html/php/js/etc

" (sans les espace)
et tu auras ceci :

ton code html/php/js/etc

Si t'as page est blanche c'est ptete parce que la fonction mail() ne s'execute pas (problème d'hébergeur?).
Testes ceci :

if(mail($destinataire, $objet, $msg, $entete))
    echo "Le mail a bien été envoyé."
else
    echo "Le mail n'a pas été envoyé."

(PS il manquait un espace après le echo, d’où le fait que ca n'ai rien affiché)

Bonsoir, test avec ce code :

if (isset ($_POST 'nom'], $_POST 'email'], $_POST 'objet'], $_POST 'message'])) {
        if (empty ($_POST 'nom']) || empty ($_POST 'email']) || empty ($_POST 'objet']) || empty ($_POST 'message'])) {
            echo 'Vous n\'avez pas rempli tous les champs.';
        } else {
            $destinataire   = 'kyopas@yahoo.fr';
            $objet = 'Formulaire de contact';
            $message = "Nouveau message\nNom: {$_POST 'nom']}\nEmail: {$_POST 'email']}\nMessage: " . str_replace ("\'", "'", $_POST 'message']);
            $entete = "From: {$_POST 'nom']} \n Reply-To: {$_POST 'email']}";
            if (!mail ($destinataire, $objet, $message, $entete)) {
                echo 'L\'email n\'a pas peut être envoyé.';
            }
        }
    }
kyopas
Auteur

Bonjour,
Merci pour votre aide,malheureusement le test en local ne marche pas; j'ai aussi paramétré le smtp dans le fichier php.ini (j'utilise easyphp), j'ai toujours la page vierge qui s'affiche. Pas de message d'erreur.
S'il y a d'autres conseils je suis preneur.

Merci d'avance!
Cordialement,