5568 sujets

Sémantique web et HTML

Bonjour,
Depuis maintenant plusieurs jours, je ne parviens pas à exécuter correctement la page de contact sur mon site. Je précise que je suis totalement débutant; J'ai donc parcouru divers forums et tutos et est copié divers codes que j'ai tenté d'adapter à mes besoins.
Gros problème, j'ai tout essayé, et soit je ne reçois rien, soit je reçois un mail vide, soit d'une adresse mail inconnu d'OVH. Enfin, quand je reçois un mail, il se niche directement dans mes courriers indésirables...
Je desespère...
Quelqu'un aurait -il une idée ?
Merci d'avance


Code concernant mon formulaire de ma page html :

<div class="content">
<form id="contact" method="post" action="verif.php">
 
 
  <fieldset>
    <legend>Étape 1 : Vos coordonnées</legend>
    <ol><li><INPUT TYPE="hidden" input id="subject" name="subject" VALUE="devis_soledad"></li>
      <li>
        <label for="nom">Nom</label>
        <input id="nom" name="nom" type="text" placeholder="Prénom et nom" required="required" autofocus="autofocus" />
        </li>
 
      <li>
        <label for="email">Email</label>
        <input id="email" name="email" type="email" placeholder="test@gmail.com" required="required" />
        </li>
 
      <li>
        <label for="telephone">Téléphone</label>
        <input id="telephone" name="telephone" type="tel" placeholder="par ex : 0324242424" />
        </li>
 
      </ol>
 
    </fieldset>
 
 
  <fieldset>
    <legend>Étape 2 : Votre évènement</legend>
    <ol>
      <li>
        <label for="adresse">Adresse de votre manifestation</label>
        <textarea id="adresse" name="adresse" rows="5" required="required"></textarea>
        </li>
 
 
      <li>
        <label for="date">Date</label>
        <input id="date" name="date" type="text" required="required" />
        </li>
 
 
      <li>
        <label for="invit">Nbre d'invités</label>
        <textarea id="invit" name="invit" rows="1" ></textarea>
        </li>
 
      </ol>
 
    </fieldset>
 
  <fieldset>
    <legend>Étape 3 : Vos souhaits ou commentaires<br />(formule désirée, nombre de musiciens, budget, etc...)</legend>
 
    <ol>
      <li>
 
        <label for="comment">Commentaires</label>
        <textarea id="comment" name="comment" placeholder="N'hésiter pas à être précis [smile]" rows="5" required="required"></textarea>
        </li>
      </ol>
    </fieldset>
  <fieldset>
    <button type="submit" name="envoi">Envoyer</button> 
    </fieldset>
 
 
 
</p>
 
</form>







COde ma page php :

[code=php]

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

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

// Messages de confirmation du mail
$message_envoye = "Nous avons bien recu votre mail et nous vous remercions de l'interet porte a notre formation. Nous vous répondrons dans les plus brefs delais";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href= http://www.monsite/contact.html>envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

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

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

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

// 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é

if (($nom != '') && ($email != '') && ($adresse != '') && ($date != '') && ($invit != '') && ($comment != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = "'Content-type: 'text/plain'; charset='iso-8859-1' \r\n";
$headers = 'From: '.$nom.'subject: '.$subject.'<'.$email.'>'.$telephone.''.$adresse.''.$date.''.$invit.''.$comment.'>'."\r\n";



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

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("'","'",$message);
$message = str_replace("©","'",$message);
$message = str_replace("\"",'"',$message);
$message = str_replace("é","'",$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, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="www.monsite/contact.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>/code]
Modérateur
Généralement, il faut partir de qqch de petit, tester, et grandir ensuite, lorsque l'on maitrise mal des fonctionnalités. As-tu fait une page qui envoie juste un mail, avec des données inscrites directement? cela fonctionne-t-il bien?

sinon déjà une erreur dans les headers:
$headers = 'From: '.$nom.'subject: '.$subject.'<'.$email.'>'.$telephone.''.$adresse.''.$date.''.$invit.''.$comment.'>'."\r\n";

Outre le fait qu'un retour à la ligne dépend de ton système, tout est colé:
ce qui donnerait, par exemple:
a écrit :

From: manubamsubject:
Salut commet ça va?<manubam@gmail.com>002287348492Rue des amandiers 123.2.198444J'ai pas beaucoup d'invités.

Ce qui n'est assurément pas la forme qu'un header devrait prendre
OK. Un grand merci Kustolovic. J'ai suivi tes conseils et suis reparti du début. C'est ok cette fois. Milles Mercis !!