PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 21-03-2015 21:18:05

Basile.Madien
Membre
Inscription : 21-03-2015
Messages : 3

Intégration d'un formulaire

Bonjour à Tous.

Je suis débutant en php. J'ai plutôt un profil d'infographiste multimédia. Je me débrouille parfaitement en html et css, un peu moins en js, et par contre je suis grand débutant en php.

La problématique, j'ai mon formulaire qui est prêt en html, css, js. C'est bien joli, mais si je n'ai pas le moyen de récupérer les données entrés dans le formulaire, ça ne me servira pas à grand chose. J'ai tenté mais j'ai échoué. Si une bonne âme peux m'aider coté php ce serait vraiment génial.

Le principe ce serait un formulaire à une entrée, pour récupérer un mail ou un téléphone des éventuels recruteurs. Le formulaire resterais sur la même page et m'enverrai un mail avec le champ qui a été rempli.

coté html ça donne ça pour ma base fonctionnelle avec CSS et JS


<div id="cuboid">
  <form>
    <div>
      <p class="cuboid-text">Contact !</p>
    </div>
    <div>
      <label for="submit" class="submit-icon">
        <i class="fa fa-chevron-right"></i>
      </label>
      <input type="text" id="email" class="cuboid-text" placeholder="Votre mail" autocomplete="off"/>
      <input type="submit" id="submit" />
    </div>
    <div>
      <p class="cuboid-text loader">Requête en cours</p>
    </div>
    <div>
      <!-- reset/retry button -->
      <span class="reset-icon"><i class="fa fa-refresh"></i></span>
      <p class="cuboid-text">Merci, je vous contacte au plus vite !</p>
    </div>
  </form>
</div>

J'ai cherché des codes de formulaire en php. J'en ai trouvé, à plusieurs entrées alors que je n'en ai besoins que d'une. Et du coup ça ne fonctionne plus.
J'ai testé un formulaire en pur php sans mon bricolage et mon hébergeur (OVH) est compatible avec la possibilité d'envoyer un mail à partir du php
J'ai tenté de l'adapter, mais c'est un echec cuisant et j'aurais besoins de vos lumières.

<?php
/*
  ********************************************************************************************
  CONFIGURATION
  ********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'monmail@truc.com';

// copie ? (envoie une copie au visiteur)
$copie = 'non';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
  ********************************************************************************************
  FIN DE LA CONFIGURATION
  ********************************************************************************************
*/

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text)
{
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc())
  {
    $text = stripslashes($text);
  }

  $text = nl2br($text);
  return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
  $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
  return (($value === 0) || ($value === false)) ? false : true;
}

// formulaire envoyé, on récupère tous les champs.
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

if (isset($_POST['envoi']))
{
  if (($email != ''))
  {
    // les 4 variables sont remplies, on génère puis envoie le mail
    $headers  = 'From: <'.$email.'>' . "\r\n";
    //$headers .= 'Reply-To: '.$email. "\r\n" ;
    //$headers .= 'X-Mailer:PHP/'.phpversion();

    // envoyer une copie au visiteur ?
    if ($copie == 'oui')
    {
      $cible = $destinataire.','.$email;
    }
    else
    {
      $cible = $destinataire;
    };

    // Remplacement de certains caractères spéciaux
    $message = str_replace("&#039;","'",$message);
    $message = str_replace("&#8217;","'",$message);
    $message = str_replace("&quot;",'"',$message);
    $message = str_replace('<br>','',$message);
    $message = str_replace('<br />','',$message);
    $message = str_replace("&lt;","<",$message);
    $message = str_replace("&gt;",">",$message);
    $message = str_replace("&amp;","&",$message);

    // Envoi du mail
    if (mail($cible, $email))
    {
      echo '<p>'.$message_envoye.'</p>';
    }
    else
    {
      echo '<p>'.$message_non_envoye.'</p>';
    };
  }
  else
  {
    // une des 3 variables (ou plus) est vide ...
    echo '<p>'.$message_formulaire_invalide.'</p>';
    $err_formulaire = true;
  };
}; // fin du if (!isset($_POST['envoi']))

if (($err_formulaire) || (!isset($_POST['envoi'])))
{
  // afficher le formulaire
  echo '
  <form id="contact" method="post" action="'.$form_action.'">
    <div>
      <p class="cuboid-text">Contact</p>
      </div>
      <div>
        <label for="submit" class="submit-icon">
          <i class="fa fa-chevron-right"></i>
        </label>
        <input type="text" id="email" class="cuboid-text" placeholder="Votre courriel ou téléphone" name="email" autocomplete="off" value="'.stripslashes($email).'" />
        <input type="submit" id="submit" name="envoi" />
      </div>
      <div>
        <p class="cuboid-text loader">Requête en cours...</p>
      </div>
      <div>
        <span class="reset-icon"><i class="fa fa-refresh"></i></span>
        <p class="cuboid-text">Merci, je vous contacte rapidement.</p>
      </div>
    </div>
  </form>';
};
?>

ça ne me dérange pas de partir sur un nouvelle base en php, mais je ne pense pas que l'html puisse trop bouger.

Hors ligne

#2 21-03-2015 22:57:31

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Intégration d'un formulaire

s'il n'y a que cela dans ta page html, le formulaire ne part nul part.

en php, un simple :
<?php
mail("tonemail", "depuis le site web", "email : ".$_POST['email']);
?>
doit être une base de travail correct.

Hors ligne

#3 22-03-2015 00:27:28

Basile.Madien
Membre
Inscription : 21-03-2015
Messages : 3

Re : Intégration d'un formulaire

Quand je dit que je suis néophite en php...

je le met à quel endroit ce bout de code pour essayer?

Hors ligne

#4 22-03-2015 15:20:03

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Intégration d'un formulaire

vu qu'il n'y a que
"<form>"
dans ton code html présenté, impossible de te dire le nom du fichier php qui est appelé lors de la soumission du formulaire.

Hors ligne

#5 22-03-2015 18:35:34

Basile.Madien
Membre
Inscription : 21-03-2015
Messages : 3

Re : Intégration d'un formulaire

Oui, dans mon premier post j'ai mis ma structure HTML et le php que j'appelais dans une autre page.

// afficher le formulaire
  echo '
  <form id="contact" method="post" action="'.$form_action.'">
    <div>
      <p class="cuboid-text">Contact</p>
      </div>
      <div>
        <label for="submit" class="submit-icon">
          <i class="fa fa-chevron-right"></i>
        </label>
        <input type="text" id="email" class="cuboid-text" placeholder="Votre courriel ou téléphone" name="email" autocomplete="off" value="'.stripslashes($email).'" />
        <input type="submit" id="submit" name="envoi" />
      </div>
      <div>
        <p class="cuboid-text loader">Requête en cours...</p>
      </div>
      <div>
        <span class="reset-icon"><i class="fa fa-refresh"></i></span>
        <p class="cuboid-text">Merci, je vous contacte rapidement.</p>
      </div>
    </div>
  </form>';

Hors ligne

Pied de page des forums