code php pour formulaire qui me pose problème

code php pour formulaire qui me pose problème - PHP - Programmation

Marsh Posté le 10-01-2017 à 21:12:14    

Bonjour
Alors déjà pour me présenter je suis complètement novice dans ce domaine, mais il faut bien commencer un jour :) je vous demanderai  d'être indulgent avec moi  svp :) merci d'avance

 
voilà mon code php :
 
<?php
 
$destinataire = 'mon_nom@hotmail.fr';
 
$copie = 'oui';  
 
$message_envoye = "Votre message nous est bien parvenu !";
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
 
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
 
if (!isset($_POST['envoi']))
{
 echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
 function Rec($text)
 {
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc())
  {
   $text = stripslashes($text);
  }
 
  $text = nl2br($text);
  return $text;
 };
 
 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;
 }
 
 $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
 $societe   = (isset($_POST['societe']))   ? Rec($_POST['societe'])   : '';
 $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
 $telephone   = (isset($_POST['telephone']))   ? Rec($_POST['telephone'])   : '';
 $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
 $email = (IsEmail($email)) ? $email : '';  
 
 if (($nom != '') && ($societe != '')&& ($email != '') && ($telephone != '') && ($message != ''))
 {
  $headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
    'Reply-To:'.$email. "\r\n" .
    'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
    'Content-Disposition: inline'. "\r\n" .
    'Content-Transfer-Encoding: 7bit'." \r\n" .
    'X-Mailer:PHP/'.phpversion();
 
  if ($copie == 'oui')
  {
   $cible = $destinataire.';'.$email;
  }
  else
  {
   $cible = $destinataire;
  };
 
  $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);
 
  $num_emails = 0;
  $tmp = explode(';', $cible);
  foreach($tmp as $email_destinataire)
  {
   if (mail($email_destinataire, $objet, $message, $headers))
    $num_emails++;
  }
 
  if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
  {
   echo '<p>'.$message_envoye.'</p>';
  }
  else
  {
   echo '<p>'.$message_non_envoye.'</p>';
  };
 }
 else
 {
  echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
 };
};  
?>
 
mon code html :
 
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Formulaire de contact</title>
<link href="form.css" rel="stylesheet" type="text/css">
</head>
 
<body>
 
<div
 id="header">
</div>
 
<nav id="navigation">
 
<ul>
 
 <li> <a href="index.html" target="new">Accueil</a> </li>
 <li> <a href="prestations.html" target="new">Prestations</a> </li>
 <li> <a href="qui-suis-je.html" target="new">Qui suis-je</a> </li>
 <li> <a href="livre-d-or.html" target="new">Livre d'Or</a> </li>
 <li> <a href="form.html" target="new">Contact</a> </li>  
 
</ul>
 
</nav>
 
 
<div id="contenu">
 <div class="title">Formulaire de contact</div><br/><br/><br/>
 
<form method="POST" action="traitement.php">
<p>
 
 <label for="name">Nom*:</label><input type="text" name="name" class="input" required placeholder=""><br/><br/>
 <label for="société">Société:</label><input type="text" name="name" class="input" placeholder=""><br/><br/>
 <label for="email">Adresse email*:</label><input type="email" name="email" class="input" placeholder=""><br/><br/>
 <label for="téléphone">Téléphone/Fax:</label><input type="tel" name="tél" class="input" placeholder=""><br/><br/>
 <label for="msg">Votre message*:</label><textarea name="msg" class="msg" rows="10" cols="32" placeholder=""></textarea><br/>
 <input type="submit" class="submit" name="submit" value="Envoyer">  
</p>
</form>  
</div>
 
<div id ="footer">
<p><img src="images/twitter.png" alt="logo twitter" height="15"/>&nbsp;&nbsp; droits réservés &copy;Serveur à la carte - 2017 &nbsp;&nbsp;<img src="images/facebook.png" alt="logo acebook" height="15" /></p>
</div>
 
</body>
 
</html>
 
et quand je teste ça me dirige sur une page avec ce message : Vous devez d'abord envoyer le formulaire.
 
 
et si j'enlève ce morceau de code: $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
 
je tombe sur une page blanche et avec ou sans le code je ne reçois pas le mail.
 
j'ai besoin de votre aide, deux jours entiers que je suis là-dessus
 
Merci d'avance


---------------
Julie
Reply

Marsh Posté le 10-01-2017 à 21:12:14   

Reply

Marsh Posté le 10-01-2017 à 23:52:42    

<input type="submit" class="submit" name="submit" value="Envoyer">  
--> <input type="submit" class="submit" name="envoi" value="Envoyer">
 
C'est pas bien de pomper du code ailleurs sans essayer de comprendre comment il fonctionne :o
Si tu veux te lancer dans le dév PHP, il vaudrait mieux d'abord commencer par apprendre les bases du HTML puis du PHP car manifestement, tu ne connais pas le HTML. Ce n'est aps un drame mais vu que le PHP permet, entres autres, de générer dynamiquement côté serveur du code HTML à afficher dans le navigateur (côté client donc), il vaudrait mieux d'abord maîtriser un minimum le HTML statique avant de penser à le générer dynamiquement.
--> openClassroom ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-01-2017 à 00:23:56    

j'essaie d'apprendre justement et je pars de rien, un petit peu d'indulgence,
en effet je prends des exemples de code et j'adapte à ce que je veux faire en essayant de comprendre mais j'apprends seule et ce n'est pas si facile
j'ai modifié ma ligne sur mon formulaire comme vous me l'indiquez mais maintenant au lieu d'avoir juste la phrase  "vous devea d'abord envoyer le formulaire" ça m'affiche  tout mon code php
 
mais merci d'avoir répondu

Reply

Marsh Posté le 11-01-2017 à 10:15:48    

Est-ce que tu as au moins installé un serveur wamp (apache, php, mysql) ?
 
Si je peux me permettre une remarque sur ta façon d'apprendre : elle va être très longue avec assez peut d'efficacité. Va sur openClassroom : il y a de très bons tutos pour débuter :
HTML et CSS : https://openclassrooms.com/courses/ [...] l5-et-css3
PHP et Mysql : https://openclassrooms.com/courses/ [...] p-et-mysql
 
En effet, pour concevoir une appli web, on a besoin de pas mal de technos : HTML, CSS, Javascript côté client (navigateur), PHP et SQL (et parfois XML/XSLT) côté serveur. Bref, ça fait beaucoup de choses à assimiler et sans passer par un cours ou un guide structuré, ça va être compliqué...surtout si tu n'as aucune base en programmation (genre C/C++, Java...).
 
Bon courage en tout cas ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-01-2017 à 18:29:56    

rufo a écrit :

Est-ce que tu as au moins installé un serveur wamp (apache, php, mysql) ?
 
Si je peux me permettre une remarque sur ta façon d'apprendre : elle va être très longue avec assez peut d'efficacité. Va sur openClassroom : il y a de très bons tutos pour débuter :
HTML et CSS : https://openclassrooms.com/courses/ [...] l5-et-css3
PHP et Mysql : https://openclassrooms.com/courses/ [...] p-et-mysql
 
En effet, pour concevoir une appli web, on a besoin de pas mal de technos : HTML, CSS, Javascript côté client (navigateur), PHP et SQL (et parfois XML/XSLT) côté serveur. Bref, ça fait beaucoup de choses à assimiler et sans passer par un cours ou un guide structuré, ça va être compliqué...surtout si tu n'as aucune base en programmation (genre C/C++, Java...).
 
Bon courage en tout cas ;)


 
Bonsoir
 
oui j'ai installé MAMP
et j'ai déjà suivi plusieurs tutos de openclassrooms qui sont très bien, mais en effet ce n'est pas facile mais j'aime cela donc quand on aime on y arrive
 
pour l'instant je fais juste un petit site pas trop compliqué et je ne veux pas passer par des applications toutes faites où la structure est pareille pour tout le monde.
 
pour le moment grâce à de l'aide j'ai pu modifier le code et j'arrive à envoyer il me reste juste trois trucs qui ne vont pas

  • il faut que je remplisse tous les champs alors que je ne demande que trois champs obligatoires

le mail arrive dans mes indésirables
et le troisième le message comme quoi le mail a bien été envoyé n'est pas beau et se trouve sur la page du formulaire
 
mais j'avance  :)

Reply

Marsh Posté le 11-01-2017 à 22:09:10    

Mac, c'est pas le plus adapté pour le dév :)
 
As-tu regardé du côté des CMS genre Wordpress. Toute la partie front-office peut être personnalisée et donc avoir une apparence totalement différente d'un site à l'autre. Quand on débute, ça peut être un bon guide...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed