8771 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Bonjour casper2,
Merci pour tout mais je n'arrive pas à "conjuguer" les deux fichiers.
Mon code est actuellement :
if( isset($_POST['first_name'], $_POST['last_name'], $_POST['email'], $_POST['comments']) )
{
	// -----------------
	// EDIT THE 2 LINES BELOW AS REQUIRED
     $to      = 'ledavdave@monsite.com';
     
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: ledavdave@monsite.com' . "\r\n" .
     'Reply-To: ledavdave@monsite.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
	// -----------------
	// fonctions utiles
	if( !function_exists('show_msg_error') )
	{
		function show_msg_error($error)
		{
			// your error code can go here
			echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
			echo "<p>Sorry, but there were error(s) found:</p>";
			echo "<p>".$error."</p>";
			echo "<p>Please correct them and try again</p>";
			echo "</div>";
			exit;
		}
	}
	// ---------
	if( !function_exists('clean_string') )
	{
		function clean_string($string)
		{
			$bad = array("content-type","bcc:","to:","cc:","href");
			return str_replace($bad,"",$string);
		}
	}

et j'ai un message d'erreur lors du "send". J'ai bien évidemment essayé plusieurs fois de combiner les deux, mais sans succès Smiley hum
Merci encore et bonne journée,
P.
Bonjour, le code n'est pas complet, par rapport au premier code posté en début du sujet.
As tu adapté les variables dans la fonction mail?
Tu viens de modifier le nom de la variable $to qui était au départ $email_to, tu dois avoir une correspondance entre les variables que tu assignes et l'appel de la fonction mail, qui je pense devrais être :
mail($to, $subject, $message, $headers);

Soit tu assignes une valeur à $email_to et tu gardes le code comme il était,
Soit si tu modifies le nom des variables tu adaptes dans l'appel de la fonction mail.
Le message d'erreur c'est toujours bien? :
a écrit :

An error occured during sending.
Please try again, or send it to:

Je pense qu'il n'est utile que de modifier uniquement la valeurs de $headers dans le premier code que tu as posté. Je ne pense pas qu'il faille renommer toutes les variables.
Soit le code :

<?php
// ---------------------------------
// ENVOI du FORMULAIRE - ajax
// ---------------------------------
if (isset($_POST['first_name'], $_POST['last_name'], $_POST['email'], $_POST['comments'])) {
    // -----------------
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to             = "ledavdave@monsite.com";        // receiver email
    $email_subject         = "New Message Received";
    // -----------------
    // fonctions utiles
    if (!function_exists('show_msg_error')) {
        function show_msg_error($error)
        {
            // your error code can go here
            echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
            echo "<p>Sorry, but there were error(s) found:</p>";
            echo "<p>" . $error . "</p>";
            echo "<p>Please correct them and try again</p>";
            echo "</div>";
            exit;
        }
    }
    // ---------
    if (!function_exists('clean_string')) {
        function clean_string($string)
        {
            $bad = array("content-type", "bcc:", "to:", "cc:", "href");
            return str_replace($bad, "", $string);
        }
    }
    // -----------------
    // Récupération des champs du formulaire 
    $first_name            = (!empty($_POST['first_name'])) ?     $_POST['first_name']     : '';     // required	
    $last_name            = (!empty($_POST['last_name'])) ?     $_POST['last_name']     : '';     // required  
    $email                 = (!empty($_POST['email'])) ?         $_POST['email']         : '';     // required	
    $comments            = (!empty($_POST['comments'])) ?         $_POST['comments']         : '';     // required	
    // -----------------
    // Gestion des erreurs
    $error_message         = '';
    // On vérifie que tous les champs obligatoires sont remplis
    // ---------
    if (empty($first_name)) {
        $error_message .= 'Your First Name is mandatory<br />';
    }
    // ---------
    if (empty($last_name)) {
        $error_message .= 'Your Last Name is mandatory<br />';
    }
    // ---------
    if (empty($email)) {
        $error_message .= 'Your Email address is mandatory<br />';
    } elseif (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $error_message .= 'A valid Email address is mandatory<br />';
    }
    // ---------
    if (empty($comments)) {
        $error_message .= 'A Question or Comment is mandatory<br />';
    }
    // -----------------
    // ERREUR ?
    if (!empty($error_message)) {
        show_msg_error($error_message);
    }
    // -----------------
    // PAS d erreur : envoi par mail
    else {
        $email_from = $email;

        $email_message = "Form details below.\n\n";
        $email_message .= "First Name: " . clean_string($first_name) . "\n";
        $email_message .= "Last Name: " . clean_string($last_name) . "\n";
        $email_message .= "Email: " . clean_string($email_from) . "\n";
        $email_message .= "Comments: " . clean_string($comments) . "\n";

        // create email headers
        $headers = 'From: ' . $email_to . "\r\n" .
            'Reply-To: ' . $email_from . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
        if (mail($email_to, $email_subject, $email_message, $headers)) {
            echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:green;border:1px solid green;border-radius:3px;\">";
            echo "<p><b>Thank you. Your message has been correctly sent.</b></p>";
            echo "</div>";
            exit;
        } else {
            echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
            echo "<p>An error occured during sending.</p>";
            echo "<p>Please try again, or send it to: " . $email_to . "</p>";
            echo "</div>";
            exit;
        }
    }
    // -----------------
}
// ---------------------------------

1) J'ai assigner une nouvelle valeur à $email_to (à toi d'indiquer la bonne valeur)
2) J'ai indiqué cette variable pour le From: dans le $headers (ce que demande ton hébergeur)
Normalement cela devrais passer.....
Meilleure solution
Super !!! Merci casper2 Smiley smile
Bon, je vais revisiter les liens et relire ce topic plus tard car pour être honnête, beaucoup de choses m'ont échapés.
Par contre je reçois les réponses sur ma messagerie IONOS, y-a-t-il moyen de les recevoir sur mon compte Google ? Sinon, ce n'est pas grave, on peut me contacter via mon site, et c'était le but.
En tous cas... GENIAL. Une grosse épine du pied Smiley cligne
Bonne soirée,
P.
PS : oui, le message d'erreur était bien celui-ci
a écrit :
An error occured during sending.
Please try again, or send it to:

Pour le code de l'exemple 1, je l'avais mis intégralement mais ce fut pour moi encore un échec Smiley murf
Très bien je suis content que cela fonctionne, en fait je n'avais pas bien compris le problème au départ, c'est quand j'ai lu la documentation de votre hébergeur qu j'ai mieux compris. Je voulais dans un premier temps savoir si le problème venais de la fonction mail() ou d’ailleurs. C'est la raison pour laquelle j'ai voulu vérifier son fonctionnement par un script simple.
>> y-a-t-il moyen de les recevoir sur mon compte Google ?
Je pense que oui. Créer une variable $gmail_to (par exemple) avec votre adresse Gmail et remplacer le premier paramètre de la fonction mail() comme ceci : mail( $gmail_to, .....) .
Cela devrait fonctionner.
>> beaucoup de choses m'ont échapés.
Je pense que c'est parce que vous manquez de connaissance sur le langage PHP.
Pour apprendre le PHP voir les cours de openclassrooms, grafikart.fr , pierre giraud, nouvelle-techno.fr
Bonne continuation Smiley smile
Modifié par casper2 (05 Nov 2024 - 18:15)
T'es génial !!! Smiley biggrin
Oui, le problème initial était le changement des règles IONOS.
Merci pour les infos et les liens.
Bonne soirée Smiley smile
Bonjour casper2
Je n'ai pas du comprendre (désolé) Smiley murf
if (isset($_POST['first_name'], $_POST['last_name'], $_POST['email'], $_POST['comments'])) {
    // -----------------
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $gmail_to, "monadresse@gmail.com";        // receiver email
    $email_subject         = "New Message Received";
    // -----------------
    // fonctions utiles
    if (!function_exists('show_msg_error')) {
        function show_msg_error($error)
        {
            // your error code can go here
            echo "<div style=\"margin:20px 0;padding:20px;background:#fff;color:red;border:1px solid red;border-radius:3px;\">";
            echo "<p>Sorry, but there were error(s) found:</p>";
            echo "<p>" . $error . "</p>";
            echo "<p>Please correct them and try again</p>";
            echo "</div>";
            exit;
        }

ne fonctionne pas. J'ai encore fait une bêtise ?
Désolé. Merci pour tout.
Bonne fin de journée,
P.
Tu dois garder $email_to avec comme valeur le nom de domaine de ton hébergeur.
ajoute une variable supplémentaire (et une affectation c'est avec le signe (=)) :

    $email_to             = "ledavdave@monsite.com";         
    $email_subject         = "New Message Received";
    $gmail_to              = "monadresse@gmail.com"; 

Avec comme modification l'appel de la fonction mail()

        if (mail($gmail_to, $email_subject, $email_message, $headers)) {