Envoi formulaire, site free, php

Résolu/Fermé
Utilisateur anonyme - 5 déc. 2007 à 17:11
 siellet - 25 mars 2010 à 09:45
Bonjour,

Voilà plusieurs semaines que je cherche, cherche et recherche, sur google, des forums etc. mais rien à faire je n'arrive pas à recevoir les données que j'inscris dans mon formulaire en ligne sur ma boite mail.

Je commence à désespérer

Voilà le script de mon formulaire


<form method=POST action=traitement.php >
<input type=hidden name=subject value=formmail>

<br/>

<P> <FONT SIZE=4 COLOR="grey"><b>Formulaire de commande</b></FONT> </P>

<br/>
<p class="MsoNormal"><input name="Sexe" value="M" checked="checked" type="radio">Mr <input name="Sexe" value="F" type="radio">Mme <input name="Sexe" value="D" type="radio">Mlle</p>

<p class="MsoNormal"><b>Votre Nom</b>
<br><input name="Nom" type="text"></p>

<p class="MsoNormal"><b>Votre Prénom</b>
<br><input name="pseudo" type="text"></p>

<p class="MsoNormal"><b>Votre Adresse postale complète</b>
<br><textarea name="Adresse" rows="3" cols="20"></textarea></p>

<p class="MsoNormal"><b>Nature de l'évènement (Mariage, Anniversaire, Film d'entreprise, Film de fiction etc.)</b>
<br><input name="evenement" type="text"></p>

<p class="MsoNormal"><b>Nombre d’heure(s) et de minute(s) de rushes (totalité de ce vous avez filmé) à traiter</b>
<br>(si vous ne le savez pas, nous nous engageons à vous communiquer leur durée éxacte)
<br><input name="rushes" type="text"></p>

<p class="MsoNormal"><b>Votre Adresse Email</b>
<br><input name="email" type="text"></p>

<p class="MsoNormal"><b>Vous pouvez ici indiquer vos commentaires, questions et attentes</b>
<br><textarea name="Observations" rows="5" cols="40"></textarea></p>

<p class="MsoNormal"><input name="jours_semaine" value="conditionsgenerales" type="checkbox">En cliquant ici je certifie avoir lu et accepté <a href="http://montagedefilms.free.fr/index.php/?conditionsgnrales" target="_blank"> >les conditions générales< </a> applicables aux prestations de montage vidéo</p>

<p class="MsoNormal"><input value=" Envoyer " type="submit"><span style="font-weight: bold;"></p>
</form>


J'ai donc un traitement.php également:

<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','MONADRESSE@free.fr'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['civilite']))
$message .= "Votre civilité<br/>";
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['prenom']))
$message .= "Votre prénom<br/>";
if (empty($_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty($_POST['demande']))
$message .= "Votre demande<br/>";
if (empty($_POST['nombreheure']))
$message .= "Rushes<br/>";
if (empty($_POST['adresseemail']))
$message .= "Votre adresse email<br/>";
if (empty($_POST['comments']))
$message .= "Votre message<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
$sqlinterets .= $interets[$i];
$sqlinterets .= ', ';
}

//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

//Le mail est bien expédié
echo $msg_ok;
} else {

//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>

Lorsque j'essaie le formulaire, je reviens à ma page d'acceuil et c'est tout. Je ne reçois aucun mail.
Quelqu'un peut il m'aider? Je suis totalement perdu.
J'ai lu qu'il fallait peut être "sendmail" ou je ne sais quoi

Merci de votre aide!
A voir également:

21 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 389
5 déc. 2007 à 17:25
Bonjour,

La fonction mail est parfois bloquée chez certains herbegeurs gratuits, tu trouveras plus d'infos sur le forum de CCM en suivant le lien ci-dessous:

Mail PHP

J'espère que celà pourra t'aider

A plus
0
Bonjour

J'utilise régulièrement la fonction mail chez free, elle marche bien tant que tu respectes les limites : pas plus de 20 destinataires à la fois, plus une limite sur le nombre de messages par semaine.
Tu reviens à ta page d'accueil sans aucun message ? Ni confirmation ni échec de l'envoi ?
0
Utilisateur anonyme
5 déc. 2007 à 18:07
Merci pour vos réponses.
Le père, oui c'est ça le pire, je n'ai rien de rien, je reviens uniquement à la page d'accueil et c'est tout, aucune confirmation.
Je débute et j'essaie de réaliser mon site perso, je dois avouer que tous s'est bien passés mais je bloque depuis longtemps sur ce formulaire...
0
Si tu reviens à la page d'accueil, c'est que ton traitement.php n'est même pas appelé.
Peux-tu le supprimer provisoirement pour voir si tu tombes sur une page inconnue ?
Sinon, peux-tu faire un echo "coucou" au début de ton php pour voir si tu y passes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
5 déc. 2007 à 20:05
Je l'ai supprimé et en effet ça ne change rien, j'arrive sur ma page d'accueil
Alors là je ne comprends vraiment pas

Par contre je n'ai pas compris, faire un echo "coucou"? C'est à dire?
0
Par contre je n'ai pas compris, faire un echo "coucou"?
ça voulait dire insérer une ligne :
echo "coucou";
au début du script, juste pour voir si on y entre.

Mais laisse tomber puisqu'on n'y entre pas. Le problème vient de la page qui contient le formulaire, pas de traitement.php.
Tu as sans doute quelque chose qui empêche le formulaire de se comporter normalement. Peux-tu donner le code complet de la page avec le formulaire ? Au fait, c'est bien celle que tu appelles "page d'accueil" ?
0
Utilisateur anonyme
6 déc. 2007 à 02:25
Le code de formulaire.php est celui que j'ai donné plus haut, il est entier
Non quand je dis page d'accueil c'est la page d'accueil de mon site, c'est ça que je comprends pas
En fait, pour résumer, sur mon site j'ai dîu créé des pages connexes que je dois envoyer via mon client ftp dans un dossier appelé "share"
Dedans j'ai donc mis formulaire.php et traitement.php; lorsque dans le menu de mon site on clique sur "formulaire de commande" on arrive sur le formulaire (la page connexe "?formulaire"); et ce que je ne comprends pas, c'est quand j'appuie sur "envoyer" de mon formulaire, j'arrive sur la page d'accueil, pourtant si on regarde l'adresse en haut, elle se termine bien par "traitement.php"; pourquoi?
Et je viens de découvrir qu'à ce moment (page d'accueil mais traitement.php) si je veux vider le cache (ctrl+f5) et bien il me met un message comme quoi cette page contient quelque chose envoyer par POST, et que si je cntinue ça sera perdu... c'est donc que ça fonctionne un peu

L'adresse de mon site: http://montagedefilms.free.fr

Quelle est la solution?
Merci beaucoup de m'aider en tous les cas!
0
OK, compris !!!!

merci d'avoir donné l'adresse de ton site. J'ai essayé d'envoyer le formulaire et je constate que ça envoie à l'adresse http://montagedefilms.free.fr/index.php/?formulaire pour le formulaire
Alors j'ai bêtement essayé http://montagedefilms.free.fr/index.php/?traitement
et ça a bien lancé le script de traitement.
Donc ça devrait marché avec si tu modifies dans <FORM action=http://montagedefilms.free.fr/index.php/?traitement
probablement même <FORM action=/index.php/?traitement, qui serait plus portable

Ton index.php a l'air de faire de drôles de magouilles, ça m'étonnerait qu'il soit de toi !
0
Bonjour,
je viens de regarder ton site et ton formulaire d'envoie de mail sur Free

Je recherche la meme chose, pourrais tu m'envoyer les sources a mon adresse email: siellet@free.fr

Ca serait super sympa car actuellement je suis bloqué

un grand merci
0
Utilisateur anonyme
6 déc. 2007 à 12:46
Non ce n'est pas de moi, j'utilise dotclear
Si l'index est compliqué c'est peut être parce qu'il a fallu que je rajoute une page d'accueil fixe, alors qu'avant il y avait une liste de billets, comme dans un blog...

J'ai fait ce que tu m'as dit (au début de formulaire.php c'est bien ça? J'ai changé:
<form method=POST action=traitement.php >
pour
<form method=POST action=index.php/?traitement>

Et j'arrive sur la page /?traitement mais là il me met un message d'erreur, alors que j'ai tout bien rempli:
Erreur. Les champs suivants doivent �tre obligatoirement remplis :

Votre civilit�
Votre nom
Votre pr�nom
Votre adresse
Votre demande
Rushes
Votre adresse email
Votre message

Le problème doit être plus profond que ça non?
0
Utilisateur anonyme
6 déc. 2007 à 18:46
Personne?
0
<form method=POST action=index.php/?traitement>

non, tu as oublié un /

<form method=POST action=/index.php/?traitement>
0
Utilisateur anonyme
7 déc. 2007 à 15:12
Merci.
Ca ne change rien malheureusement, je tombe toujours sur la même page, avec "Erreur ..."
0
Je ne me suis jamais penché sur le fonctionnement interne de dotclear, mais visiblement il tripote des choses.

Peux-tu ajouter au début de ton script traitement.php :
print_r ($_HOST);
echo __FILE__;
et me dire ce qui se passe ?
0
Utilisateur anonyme
7 déc. 2007 à 18:51
Non, ça ne change rien, même page, sauf quelques mots qui s'ajoutent avant: si je mets ce que tu m'as donné avant <php dans le script:

print_r ($_HOST); echo __FILE__; Erreur. Les champs suivants doivent �tre obligatoirement remplis :

Votre civilit�
Votre nom
Votre pr�nom
Votre adresse
Votre demande
Rushes
Votre adresse email
Votre message

et si je le mets après:
/mnt/163/sdb/f/d/montagedefilms/share/related/traitement.phpErreur. Les champs suivants doivent �tre obligatoirement remplis :

Votre civilit�
Votre nom
Votre pr�nom
Votre adresse
Votre demande
Rushes
Votre adresse email
Votre message

merci de m'aider en tous les cas
0
J'installe dotclear chez moi pour voir
0
Bonsoir,

Pardon, c'était echo $_POST; et non pas $_HOST; !!!
Et bien sûr (?) il fallait le mettre après le <?php sinon c'est n'est pas interpreté comme du PHP.

Peux-tu recommencer ? pas pesoin du __FILE__

J'ai fait l'essai chez moi et ça se passe bien : je récupère bien les valeurs passées à mon formulaire, mais :
Si l'index est compliqué c'est peut être parce qu'il a fallu que je rajoute une page d'accueil fixe, alors qu'avant il y avait une liste de billets, comme dans un blog...
J'ai un petit peu peur que tu aies fait des modifs 'sauvages'
0
Re-Bonsoir.

Tu m'empêches de dormir, mais là je viens de mettre le doigt sur un truc à se cogner la tête contre les murs tellement c'est c*n.
Les champs que tu vérifies n'ont pas le même nom que ceux du formulaire !!!!! Pas étonnant qu'ils soient vides !!!!!!!!

Sexe <-> civilite
Nom <-> nom (majuscule et minusculen pas pareil !)
Prenom <-> pseudo
Adresse <-> adresse
etc...

Le temps que j'ai passé sur une énormité pareille ! Mon orgueil en prend un coup.

On devrait bientôt approcher de l'envoi de mail. Je prévois un grand moment de rigolade là encore.
0
Utilisateur anonyme
8 déc. 2007 à 13:35
MERCI !!!

Ahah, oui en fait c'était tout bête, mais je débute vraiment, donc bon, j'avais pas fait attention; c'est comme la page d'accueil fixe c'est un plug in, je n'ai touché à rien (de ma propre initiative)

Bon donc c'est parfait; j'ai juste une dernière petite question, mais si c'est pas possible c'est pas grave

Pour le message de remerciement, j'aimerais ajouter une image, ce qui serait bien ce serait qu'elle se trouve à gauche du texte de remerciement; alors j'ai essayé avec un code comme ça: <img src="http://***" alt="" /> ceci au niveau du txte de remerciement, entre les " " mais malheureusement ça ne marche pas, je m'en doutais, c'est surtout les guillemets dans les guillemets qui trouble tout, et du coup ça donne un erreur.

Si vous aviez la solution ça serait chouette, si non c'est pas bien grave.

Même si c'était simple pour toi merci le père!
0
Les guillemets dans les guillemets, ça c'est facile.
Il faut remplacer les guillemets à l'intérieur par \"
0
Utilisateur anonyme
8 déc. 2007 à 15:52
Merci, c'est parfait!
0