Bonjour a tous,

Je suis en ce moment entrain de créer un formulaire de contact pour mon site. Le visteur rentre dans le formulaire ses informations et son message (pseudo, email..) clique sur en voyer ce qui doit me l'envoyer a monn email. Le code php marche pour les erreurs (par ex: saisir tous les champs) mais le mail n'est apparemment pas envoyer. J'ai chercher sur beucoup de forum d'où venai mon erreur mais je n'ai pas trouver.

Si vous voulez m'aider répondez a ce sujet et je vous communiquerez le code php.

Merci d'avance.
Marin1050

16 réponses


Garniture-banner
Réponse acceptée

Il te suffit "d'ouvrir" une page qui contiens ce script, mis à part ton adresse mail, tu n'as rien à modifier.

communique le code sinon ça sert à rien

Bonjour à tous,

Voici le code php:

<?php
$erreur = NULL;
$info = NULL;
if(!empty($_POST'pseudo']) AND !empty($_POST'email']) AND !empty($_POST'produit'])){
extract($_POST);
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}.[a-z]{2,4}$#", $email)){
$pseudo = htmlspecialchars(addslashes($pseudo));
$email = htmlspecialchars(addslashes($email));
$produit = htmlspecialchars(addslashes($produit));
$destinataire = "*************@****.**";
$sujet = "Formulaire de contact";
$entete = 'From : '.$email.'';
$message = 'Pseudo : '.$pseudo.' '."\n".' Produit acheté : '.$produit.'';
mail($destinataire, $sujet, $message, $entete);
$info = "Votre email à été envoyé";

}
else{
$erreur="Adresse email invalide";
}
}
else{
$erreur = "Veuillez remplir tous les champs";
}
?>

J'ai remplacé mon mail par des *.

Sinon j'ai hébergé ce code chez hostinger mais je ne sais pas si la fonction mail est activée sur mon hébergeur.

Le formulaire si besoin:

<form method="POST" target="" id="formulaire_contact">
<label for="pseudo">Pseudo:</label><input type="text" name="pseudo" id="pseudo" value="<?php if(isset($_POST'pseudo'])) echo htmlspecialchars($_POST'pseudo']); ?>"/><br/><br/>
<label for="email">Votre email:</label><input type="text" name="email" id="email" value="<?php if(isset($_POST'email'])) echo htmlspecialchars($_POST'email']); ?>"/><br/><br/>
<label for="produit">Le produit que<br/> vous avez acheté:</label><textarea name="produit" id="produit"><?php if(isset($_POST'produit'])) echo htmlspecialchars($_POST'produit']); ?></textarea><br/><br/>
<input type="submit" value="Envoyer"/> <span style="color:red;"><?php echo $erreur; ?> </span><span style="color:green"><?php echo $info;?></span>
</form>

Merci d'avance
Marin1050

Sinon j'ai un formulaire tout fait qui fonctionne très bien, tu peux le voir ici : http://site.teaminformatique.com/pages/display/devis

Dit moi si ça t'intéresse ;)

utilise la balise [code][code][/code][/code] marin1050 utiliser extract() sur les données manipuler par l'utilisateur est une mauvaise pratique, attention à la sécurité ! essaie la proposition de brandon/taskone et dit nous le résultat

Prescillia, je veux bien essayer ton formulaire comme ca je saurais que c'est lhebergeur dans lequel je n'est pas active les mail.

Brandon,taskone,glaived,

Je ne suis pas en local et j'utilise comme vous pouvez le voir la fonction mail(). Ce doit être l'activation dans l'hebergeur qui pose problème. J'ai regarde et j'ai trouve une fonction smtp a activer, ce que j'ai fait mais ça ne marche toujours pas. Si quelqu'un connait hostinger pourrez vous m indiquez comment faire.

A+
marin1050

je te fais ça demain ;)

Merci

Si quelqu'un connaît un hébergeur qui accepte les envoies d'email par défaut ou qui sait comment les activer, j'aimerais qu'il me le communique.

merci d'avance
Marin1050

1&1 le fait sur son offre 1&1 illimité, 30€ trimestriel en gros

Manifestement ya aucun soucis chez hostinger pour les mail

C'est une occasion en or de jouer, essaie ce script, lance le depuis n'importe quelle page

ob_start();
phpinfo();
$php_info = ob_get_contents();
ob_end_clean();
$sujet = "Formulaire de contact";
$entete = 'From : myself';
mail( 'ton_adresse_mail', 'ma_config_php_info', $php_info, $entete);
$info = "Votre email à été envoyé";
die('tout s\'est bien passé');

Le but de cette manip est de t'envoyer ta config serveur.

Une fois envoyé, essaie de voir tes logs dans 'Sendmail logs' de roundcube.

Plusieurs solutions:
-Pas de trace de l'envoie dans tes logs, alors c'est ton hébergeur qui te plante.
-Selon les logs le mail est envoyé mais tu ne reçois rien, vérifies tes spams, sinon c'est juste une autre personne sur le mutualisé qui spam des mails, du coup la fonction est temporairement bloquée.
-Tu reçois le mail, Youpi tout fonctionne et t'as le détail de ta configuration en bonus

flo,
Je ne peux pas prendre d'offre payante mais merci quand-même.

Glaived,
merci de l'information

Garniture,
Je ne suis pas un expert en php et programmation. Pourrais tu me guider un peu plus sur les étapes à suivre pour essayer ce script?

Merci d'avance

Il suffit de copier/coller ces quelques lignes dans une page, peu importe la page puis d'appeler la page.
Rien de bien méchant, ce que fait le script il réserve un peu de mémoire ET y insère tout ce qui doit etre envoyé à l'affichage (pour le coup tout ce que phpinfo() renvoie ), pour terminer on vide le pti bout de mémoire pour mettre dans une variable.
après c'est assez simple, la fonction mail t'envoie sur ton adresse perso les informations sur la confiiguration de ton serveur.

D'accord juste quelques petites questions (peut être un petit peu bête)

Quand tu dit appeler la page c l'ouvrir ou la renommer?

AIS je des choses a écrire entre les parenthèses de ob Start PHP info , ob get contents et ob end clean ?

Et AIS je d'autres choses a écrire à part remplacer ton adresse mail par mon email perso?

Daccord
Je l ai fait mais pas de mail recu.
Le probleme viendrait de lebergeur.
Si quelquun utilise un formulaire de contact sur un hebergeur qui marche j'aimerais qu'il me communique le nom de l'hébergeur.
(De préférence un hébergeur gratuit)
Merci d'avance
Marin1050