Formulaire de Contact - Erreur d'acheminement

Fermé
yves.gdn Messages postés 44 Date d'inscription vendredi 15 juillet 2011 Statut Membre Dernière intervention 23 juillet 2011 - Modifié par baladur13 le 19/07/2011 à 09:13
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 - 18 juil. 2011 à 18:17
Bonjour à toutes et tous

Je vous serais reconnaissant et vous remercie par avance de jeter un oeil sur la page de mon site qui contient le formulaire de contact, et me dire s'il vous plaît ce qui ne colle pas dans mon SCRIPT CGI. Lorsque mon visiteur remplit le formulaire, celui-ci est posté avec toutes les données telles que saisies, mais il reporte l'intégralité des informations sur une page internet blanche au lieu d'aller sur mon adresse mail qui est :
Adresse mail supprimée Modération CCM

Ma page du formulaire ESSAYEZ-LA, VOUS VERREZ OU SE SITUE LE PROBLEME :
http://www.gundermann.fr/Contact.htm

Nom de mon script (enregistré dans le dossier "cgi-bin" chez OVH au niveau zéro de mon site, avec droits-chmod 755) :
formyv.cgi

Voici le script en question, vous remerciant par avance de m'avoir lu, peut-être même arriverez-vous à me sortir de cette mauvaise passe.
Bien cordialement, Yves

#!/usr/local/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
read(STDIN, my $donnees, $ENV{'CONTENT_LENGTH'});
my $url = "http://gundermann.fr/";
my($mailTo) = 'Adresse mail supprimée Modération CCM';
my @champs_formulaire = split(/&/, $donnees);
my ($champ, $nom, $valeur);
my %formulaire;
foreach $champ (@champs_formulaire) {
(my $nom, my $valeur) = split(/=/, $champ);
$valeur =~ tr/+/ /;
$valeur =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$valeur =~ s/</</g;
$valeur =~ s/>/>/g;
$formulaire{$nom} = $valeur;
}
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>CGI-Feedback</title></head>\n";
print "<body><h1>FORMULAIRE DE CONTACT </h1>\n";
print "<p><b>CIVILITE :</b> $formulaire{genre}</p>\n";
print "<p><b>NOM :</b> $formulaire{nom}</p>\n";
print "<p><b>PRENOM :</b> $formulaire{prenom}</p>\n";
print "<p><b>ADRESSE E-Mail :</b> $formulaire{email}</p>\n";
print "<p><b>TELEPHONE FIXE :</b> $formulaire{telephone}</p>\n";
print "<p><b>TELEPHONE MOBILE :</b> $formulaire{mobile}</p>\n";
print "<p><b>TEXTE :</b> $formulaire{textemail}</p>\n";
print "</body></html>\n";

4 réponses

bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
18 juil. 2011 à 12:18
1 - éviter le 'htm l' dans ce cas, mieux vaut le php
2 - pas de "cgi" .... !!
3 - si tu veux créer un formulaire :
https://www.unesourisetmoi.info/formulaire/nuls2.php
ou
https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
;)
0
yves.gdn Messages postés 44 Date d'inscription vendredi 15 juillet 2011 Statut Membre Dernière intervention 23 juillet 2011 2
18 juil. 2011 à 12:23
Eh bien, quelle chance j'ai, encore une réponse de votre part. C'est gentil et sypma, merci de votre aide.

J'avais en effet jusqu'ici rédigé le script en php. Dans ce cas, le formulaire m'était bien transmis sur mon adresse Email, mais sans aucune donnée du visiteur. De plus, la page de redirection pour remercier le visiteur fonctionnait.

Comme cela ne fonctionnait pas en php pour la réception sur mon adresse mail, sur les conseils de OVH je suis revenu au cgi.

Voilà. Tout simplement
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
18 juil. 2011 à 12:25
les deux liens donnés sont testés ET approuvés, fonctionnent quasiment partout y compris chez ovh
reste à refaire le fichier et tester ... on finit toujours par y arriver ;)
0
yves.gdn Messages postés 44 Date d'inscription vendredi 15 juillet 2011 Statut Membre Dernière intervention 23 juillet 2011 2
Modifié par baladur13 le 19/07/2011 à 09:16
Re-Bonjour BG62
J'ai profité d'un petit moment pour jeter un oeil à votre "fiche". CHAPEAU BAS !!! Vous êtes très doué, c'est le moins que je puisse dire. Nous avons, à peu de choses près, le même âge, est-il permis de se tutoyer ?
En attendant, comme vous semblez vous interesser à ce que je fais et que je vous avais parlé de mon script préalable en PHP, le voici, sachant que là par contre je ne reçois AUCUNE DONNEE de mon VISITEUR, tout les reste fonctionnant (je reçois le mail, mais vide ; la page d'accusé de réception est retournée correctement au visiteur.
Voici donc le PHP en question. Qu'est-ce qui coince ? MERCI D'AVANCE. Yves

<?php

define('MAIL_DESTINATAIRE','Adresse mail supprimée Modération CCM'); // remplacez par votre email
define('MAIL_SUJET','Formulaire de contact');


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

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

$genre = $_POST['genre'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$mobile = $_POST['mobile'];
$textemail = $_POST['textemail'];

//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 .= "CIVILITE :".$genre."\n\n";
$mail_corps .= "NOM :".$nom."\n\n";
$mail_corps .= "PRENOM :".$prenom."\n\n";
$mail_corps .= "ADRESSE EMAIL :".$email."\n\n";
$mail_corps .= "TELEPHONE :".$telephone."\n\n";
$mail_corps .= "MOBILE :".$mobile."\n\n";
$mail_corps .= "VOTRE TEXTE :".$textemail."\n\n";

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

{

// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
$genre = (isset($_POST['genre'])) ? Rec($_POST['genre']) : '';
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$mobile = (isset($_POST['mobile'])) ? Rec($_POST['mobile']) : '';
$textemail = (isset($_POST['textemail'])) ? Rec($_POST['textemail']) : '';

if (isset($_POST['envoi']))
{
// 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 = (IsEmail($email)) ? false : true;

if (($nom != '') && ($prenom != '') && ($email != '') && ($mobile != '') && ($textemail != ''))
{
// les 5 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

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

// Remplacement de certains caractères spéciaux
$message = html_entity_decode($message);
$message = str_replace(''',"'",$message);
$message = str_replace(''',"'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);

// Envoi du mail
if (mail($genre, $nom, $prenom, $email, $telephone, $mobile, $textemail))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
};
}; // fin du if (!isset($_POST['envoi']))

if (($err_formulaire) || (!isset($_POST['envoi'])))



//Le mail est bien expédié

header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.gundermann.fr/Reception.htm");
exit();

}
?>
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
18 juil. 2011 à 18:17
laisses tomber et vois avec les liens donnés, au moins là ça fonctionnera ;)
0
yves.gdn Messages postés 44 Date d'inscription vendredi 15 juillet 2011 Statut Membre Dernière intervention 23 juillet 2011 2
Modifié par baladur13 le 19/07/2011 à 09:18
Je souhaiterais ajouter que mon Site comporte une centaine de pages, actuellement réduit à deux pages pour faciliter la gestion de mon souci technique de Formulaire.

Publicité supprimée Modération CCM

Voilà pourquoi je tiens tant à résoudre mon problème CGI ou PHP, de sorte à pouvoir être joint facilement.

MERCI A TOUTES ET TOUS. Et bien cordialement. Yves
0