8768 sujets

Développement web côté serveur, CMS

Bonsoir !

Je possède un template VCARDRESUME pour mettre des infos et un mini CV en ligne.

Seulement je galère au niveau du formulaire, je ne sait pas quoi mettre pour que cela envoie depuis mon adresse et que je puisse aussi recevoir le message !

Voici le code de contact.php

<?php

// Define some constants
define( "RECIPIENT_NAME", "GREGORYEN" );
define( "RECIPIENT_EMAIL", "JAI MIS MON EMAIL ICI" );
define( "EMAIL_SUBJECT", "$subject" );

// Read the form values
$success = false;
$senderName = isset( $_POST['senderName'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName'] ) : "";
$senderEmail = isset( $_POST['senderEmail'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail'] ) : "";
$subject = isset( $_POST['subject'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['subject'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";

// If all values exist, send the email
if ( $senderName && $senderEmail && $message ) {
  $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
  $headers = "From: " . $senderName . " <" . $senderEmail . ">";
  $success = mail( $recipient, $subject , $message, $headers );
}

// Return an appropriate response to the browser
if ( isset($_GET["ajax"]) ) {
  echo $success ? "success" : "error";
} else {
?>
<html>
  <head>
    <title>Merci !</title>
  </head>
  <body>
  <?php if ( $success ) echo "<p>Merci d'avoir envoyé votre message! Nous reviendrons vers vous sous peu.</p>" ?>
  <?php if ( !$success ) echo "<p>Un problème est survenu lors de l'envoi de votre message. Veuillez réessayer.</p>" ?>
  <p>Cliquez sur le bouton Précédent de votre navigateur pour revenir à la page.</p>
  </body>
</html>
<?php
}
?>


Merci beaucoup de votre aide !
Modérateur
Salut,

Je suis pas sur de comprendre ce que tu veux faire. Qu'est-ce qui ne marche pas avec ce code ? Ca coince ou ?
J’ai un code JavaScript aussi contact.js

var messageDelay = 2000;  // How long to display status messages (in milliseconds)

// Init the form once the document is ready
$( init );


// Initialize the form

function init() {

  // Hide the form initially.
  // Make submitForm() the form's submit handler.
  // Position the form so it sits in the centre of the browser window.
  $('#contactForm').show().submit( submitForm ).addClass( 'positioned' );

  // When the "Send us an email" link is clicked:
  // 1. Fade the content out
  // 2. Display the form
  // 3. Move focus to the first field
  // 4. Prevent the link being followed

  $('a[href="#contactForm"]').click( function() {
    $('#contactForm').fadeTo( 'slow', .2 );
    $('#contactForm').fadeIn( 'slow', function() {
      $('#senderName').focus();
    } )

    return false;
  } );
  
}


// Submit the form via Ajax

function submitForm() {
  var contactForm = $(this);

  // Are all the fields filled in?

  if ( !$('#senderName').val() || !$('#senderEmail').val() || !$('#message').val() ) {

    // No; display a warning message and return to the form
    $('#incompleteMessage').fadeIn().delay(messageDelay).fadeOut();
    contactForm.fadeOut().delay(messageDelay).fadeIn();

  } else {

    // Yes; submit the form to the PHP script via Ajax

    $('#sendingMessage').fadeIn();
    contactForm.fadeOut();

    $.ajax( {
      url: contactForm.attr( 'action' ) + "?ajax=true",
      type: contactForm.attr( 'method' ),
      data: contactForm.serialize(),
      success: submitFinished
    } );
  }

  // Prevent the default form submission occurring
  return false;
}


// Handle the Ajax response

function submitFinished( response ) {
  response = $.trim( response );
  $('#sendingMessage').fadeOut();

  if ( response == "success" ) {

    // Form submitted successfully:
    // 1. Display the success message
    // 2. Clear the form fields
    // 3. Fade the content back in

    $('#successMessage').fadeIn().delay(messageDelay).fadeOut();
    $('#senderName').val( "" );
    $('#senderEmail').val( "" );
    $('#message').val( "" );

    $('#contactForm').delay(messageDelay+500).fadeIn();

  } else {

    // Form submission failed: Display the failure message,
    // then redisplay the form
    $('#failureMessage').fadeIn().delay(messageDelay).fadeOut();
    $('#contactForm').delay(messageDelay+500).fadeIn();
  }
}

Modifié par Gregoryen (05 Feb 2019 - 15:54)
Modérateur
Dans ton premier code, c'est la ligne :
$success = mail( $recipient, $subject , $message, $headers );

(et donc la fonction php mail() ) qui envoie le mail à l'adresse fournie par la variable $recipient.

Ca ne marche pas ?
Dans le code PHP du premier message, malgré avoir mis le mail et le nom ( 1ere et 2eme ligne ) ça ne marche pas.
Modérateur
Ok. Tu as des erreurs ? Tout tes champs sont bein remplis ? Pas d'erreur dans l'email ?

Tu peux tester une version allégée :
<?php
     $to      = 'personne@example.com';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?>

Et si ca marche comme ca, remplacer petit a petit les éléments par les tiens et voir ou ca bloque.