Formulaire de contact html puis php

t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 - 18 nov. 2024 à 14:43
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 - 19 nov. 2024 à 17:06

Bonjour, 

J'ai un formulaire de contact qui ne fonctionne pas. J'ai aucun retour d'erreur

Partie html :

<html>
<body background="images/fond_noir.jpg">
<center><h3><font color="#FF0000"><u>Merci de bien vérifier votre adresse email pour que je puisse vous répondre</u></font></h3>
<FORM method="POST" action="contact.php">
<P>Votre nom:<br>
<INPUT type="text" name="nom" size=30>
<P>Votre prénom:<br>
<INPUT type="text" name="prenom" size=30>
</p>
<P>Votre adresse E-Mail:<br>
<INPUT type="text" name="email" size=30>
</p>
<P>Votre message:<br>
<textarea name="message" cols=74 rows=8></textarea>
</p><INPUT type="submit" value="Envoyer">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="reset" value="Effacer"></center>
</FORM>
</BODY>
</HTML>

La partie php :

<?php 
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$message = $_POST['message'];
//echo '<pre>'; print_r($_POST); echo '</pre>';	exit; //=> ok
$message2 = stripslashes($message); //----pour éviter les \ ds les msgs de réception 
$nom = strtoupper($nom); 
$prenom = ucfirst($prenom); 

$msg = "De:\t$nom $prenom\n";
$msg .= "E-Mail:\t$email\n\n";
$msg .= "Message:\t$message2\n\n";

$recipient = "adresse@free.fr";		
$subject = "Contact GNEALOGIE";
$mailheaders .= "Reply-To: $email\n\n";

mail($recipient, $subject, $msg, $mailheaders);

echo "<body background='images/fond_noir.jpg'><center><h2>Merci $prenom $nom<p>Votre message est bien parti !</h2></center></style>";
exit;
?>

Merci

A voir également:

6 réponses

jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737
19 nov. 2024 à 06:55

bonjour 

il ne marche pas.... c'est à dire ?

que vous tu quand tu submit ton formulaire ?

as tu essayé de faire un var_dump de tes variables ?

bosses tu en local ou sur un serveur ?

as tu activé l'affichage des erreurs php ?

.

bref, que des choses que je t'ai déjà dit à chacune de tes questions....


0
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 11
19 nov. 2024 à 11:09

Bonjour jordane45,

Tout se déroule correctement. A la fin j'ai le message "Merci $prenom $nom<p>Votre message est bien parti !". Mais je ne reçois pas le message.

J'ai changé $recipient = "adresse@free.fr"; en $recipient = "adresse.free.fr";	ce qui me parait plus juste.

Dans le script php, si j'écris var_dump ($recipient); je reçois bien la valeur de $recipient (string(18) "adresse.free.fr"). Mais rien dans la boîte mail !!!???

0
jee pee Messages postés 40883 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 mars 2025 9 549
19 nov. 2024 à 11:26

Bonjour,

As-tu lu avec précision la réponse de jordane45 ??? tu ne réponds pas à la moitié de ses questions !

Le vardump à faire, ce n'est pas pour la variable destinataire, c'est pour les variables passées par le formulaire.

Car tu ne devrais pas avoir "Merci $prenom $nom<p>Votre message est bien parti !"  mais les valeurs contenues dans les variables. ou tu ne donnes pas le message affiché à l'exécution, mais le source, ce qui n'a pas d’intérêt.

0
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 11
19 nov. 2024 à 11:44

En effet, quand j'ai écris "Merci $prenom $nom<p>Votre message est bien parti !"  j'aurais dû préciser que les variables $prenom et $nom retournaient les bonnes valeurs. Donc, les variables sont ok !

0
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 4 737
19 nov. 2024 à 12:06
J'ai changé $recipient = "adresse@free.fr"; en $recipient = "adresse.free.fr";	ce qui me parait plus juste.

Ah ???  Une adresse mail sans arobase ?  c'est nouveau non ^^

Quoi qu'il arrive, tu ne m'as pas répondu : Travailles tu en LOCAL ou sur un SERVEUR ?

Si en local, as tu paramétré le SMTP ?

Si sur un serveur ( FREE JE SUPPOSE), attention.. Free limite le nombre d'envoi de mails de façon aléatoire...  Le mieux serait de passer à du PHPMAILER  

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 11
19 nov. 2024 à 14:29

Je ne connaissais pas PHPMAILER. J'ai trouvé sur le net à https://analyse-innovation-solution.fr/publication/fr/php/comment-envoyer-un-mail-en-php un exemple.

J'essaye de le suivre, et dès le départ, j'ai l'erreur Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in /mnt/111/sdb/b/a/genfamille/contact.php on line 2

Comment savoir ce que je dois mettre dans : $mail->Port = ....

Plusieurs variable ne doivent pas correspondre. Elles s'appellent toutes $mail ???

<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$message = $_POST['message'];

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require_once "vendor/autoload.php";
// Activer ou désactiver les exceptions par variable
$debug = true ;
try {
    // Créer une instance de classe PHPMailer
    $mail = new PHPMailer($debug);
    if ($debug) {
    // donne un journal détaillé
    $mail->SMTPDebug = PHPMailer\PHPMailer\SMTP::DEBUG_SERVER; }
    }
    // Authentification via SMTP
    $mail->isSMTP();
    $mail->SMTPAuth = true;
    // Connexion
    $mail->Host = "smtp.free.fr";
    $mail->Port = 587;
    $mail->Username = "site@free.fr";
    $mail->Password = "mdp";
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    // Expéditeur
	$mail->setFrom('info@exemple.fr', 'nom');
	// Destinataire dont le nom peut également être indiqué en option
	$email->addAddress('info@exemple.fr', 'nom');
    //$mail->addAttachment("/home/user/Desktop/image.png", "image.png");
    $mail->CharSet = 'UTF-8';
    $mail->Encoding = 'base64';
    $mail->isHTML(true);
    //$mail->Subject = 'Objet de votre email';
    $message->Body = 'Le texte de votre email en HTML. Il est également possible des mettre des éléments en <b>gras</b>, par exemple.';
    $message->AltBody = 'Le texte comme simple élément textuel';
    $mail->send();
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: ".$e->getMessage();
}
?>
0
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 11
19 nov. 2024 à 17:00

Pour reprendre ma première tentative du php, j'ai fait un 

mail($recipient, $msg, $mailheaders);

Après l'envoie du mail, soit mail($recipient, $msg, $mailheaders); j'ai fait un excho des 3 copnstantes. $recipient et $msg sont ok. Mais $mailheaders me retourne mon adresse email sur Gmail !? J'ai vérifié, celle-ci ne figure ni dans le script php ni dans le html.

D'où vient alors cette adresse ? Je suppose que c'est cela qui bloque l'envoie et la reception du mail !!!!

0
t671 Messages postés 1470 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 février 2025 11
19 nov. 2024 à 17:06

Autant pour moi. Elle correspond à $email. :o(

0