Récupérer les variables d'un formulaire mail PHP - site hébergé sur OSX Server

FC06

Membre enregistré
4 Mai 2005
7
0
58
Bonjour à tous,

J'essai de faire fonctionner un formulaire mail d'un site hébergé sur un Mac OSX Server - en 2 pages (1 page html, seconde en php) qui fonctionne parfaitement sur mon site hébergé par Free et qui m'a pris 10mn ! -
Mais plus de 4 jours et c'est pas encore réglé !!! pour faire de même sur le server OSX et donc récupérer les variables ( les infos entrés par le visiteur - nom, prénom, message ..etc) d'un coté pour les envoyer sur le [email protected] et un autre envoyant une réponse du genre (Bonjour Monsieur, merci votre message a bien été pri en compte ..etc ) sur l'adresse du client qui a entré son mail dans le formulaire.

Vous aller sans doute vous marrer -mais je vous avouerai qu'aujourd'hui moi, pas trop ..
Je m'en remets à vos conseils de pros :), car mon état de jeune webmaster, j'avoue que là ça commence sérieusement à chauffer la tête. :-(

Où ais-je fais une erreur ..? merci de vos indications - voici le code ci-dessous de la page 2 (php)
NOTA : pour info j'ai bien un répertoire CGI-BIN dans le dossier webserver du Mac:
si cela peut vous aider il y a deux fichiers - "printenv" et "test-cgi"
Dois-je utiliser un script CGi pour récupérer ces P----- de variables qui me font perdre un temps de malade !! - si oui comment faire exactement car je n'ai jamais fait et débute ..
Merci encore à celui ou celle qui saura me répondre et surtout prendra un peu de son temps pour le faire. ;-)

-------------------------------------------

<HEAD>
<script language="php">

function envoi_mail()
{
$pub=$_POST['pub'];
$autre=$_POST['autre'];
$message=$_POST['message'];

$societe=$_POST['societe'];
$statut=$_POST['statut'];
$activite=$_POST['activite'];
$civilite=$_POST['civilite'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$fonctions=$_POST['fonctions'];
$telbureau=$_POST['telbureau'];
$telmobile=$_POST['telmobile'];
$telecopie=$_POST['telecopie'];
$teldom=$_POST['teldom'];
$adresselectronic=$_POST['adresselectronic'];
$siteweb=$_POST['siteweb'];
$adresse=$_POST['adresse'];
$cp=$_POST['cp'];
$ville=$_POST['ville'];

$texte_message="Bonjour, demande d'information remplie sur le site web de la societe.\n".
"Notre demande :". $pub."\n".
$autre.
"Notre message :" . $message."\n".
"------------------------------------------\n".
"Notre Societe :" . $societe.
"Statut : ". $statut.
"Activité : " . $activite.
"Civilité : " . $civilite.
"Nom : ". $nom.
"Prenom :" . $prenom.
"Mes fonctions :" . $fonctions.
"Téléphone Bureau :" . $telbureau.
"Téléphone mobile :" . $telmobile.
"Fax :" . $telecopie.
"Téléphone domicile :" .$teldom.
"Email:" . $adresselectronic.
"Site web :" . $siteweb.
"Adresse:" . $adresse.
"Code postal:" . $cp.
"Ville:" . $ville;
"------------------------------------------\n".
"La Direction vous remercie pour votre confiance et votre visite sur notre site.\n".
"A très bientôt.\n";

mail ("[email protected]","Demande d'information venant du site de la Société 2006","$texte_message");
};

function envoi_auclient()
{

mail ("$adresselectronic","Votre demande d'information",
"Bonjour" . $civilite." ".$nom. "\n".
"Nous avons bien enregistré votre demande d'information.\n".
"Celle-ci va être réceptionnée par nos services et sera traitée dans les meilleurs délais.\n".
"\n".
"La Direction de XXXX vous remercie pour votre confiance et votre visite sur notre site.\n".
"A très bientôt sur notre site.\n".
"\n".
"Nhésitez pas à nous contactez directement :\n".
"\n".
"Contacts : [email protected] \n".
};
</script>
</head>

<body>
<script language="php">
envoi_mail();
</script>

---------------------------
 
C'est quoi le problème au juste ? Les variables POST ne sont pas initialisées, les variables de la première fonction ne passent pas à la seconde, le mail ne part pas ? Faudrait savoir si c'est un problème de code ou de config du serveur.


En tout cas, à mon avis tes variables sont mal utilisées. Ca peut fonctionner, selon que tu appelles l'une ou l'autre des deux fonctions en premier, grâce au mode de fonctionnement de PHP, puisque le code qui est en train d'être exécuté tient compte du code déjà exécuté. Mais normalement, tu ne devrais pas pouvoir appeler une variable $nom (par exemple) dans une seconde fonction, s'il s'agit d'une variable interne d'une première fonction (portée limitée) non passée en argument !

Autrement dit, insère dans des variables le contenu du tableau POST en dehors de toute fonction, en haut de ton script ; ou alors utilise directement le tableau POST.
Bref, essaye ça:
function envoi_auclient()
{ mail ($_POST["adresselectronic"],
 
;-) Merci ANABYS - en fait voilà ce qui fonctionne et ce qui ne fonctionne pas.

1 - lors du clique sur "envoyer" la page de remerciement s'affiche correctement
2 - le mail part bien vers l'entreprise - -> (mais voir en 4°) et c'est qu'est le soucis !)
3 - le visiteur reçoit bien sur son mail un message du genre "Mercie de nous avoir contacté... blablabla

4 - C'est là qu'est le soucis - le mail réceptionné par l'entreprise : reçois tous noms des champs:
nom:
prénom:
adresse:
etc..

Mais sans les variables (les infos que le visiteur a rempli ! )
voilà mon soucis est là en fait ..
 
quel interêt à tu as créer une fonction ???? à mon avis aucune, de plus tu n'initialise aucune variable dans tes fonctions, donc ils risquent pas de recevoir grand chose....

tu fais super compliqué pour rien :) vire les fonctions et test avec comme ca :

Bloc de code:
<?php


//Recuperation des variables
$pub=$_POST['pub'];
$autre=$_POST['autre'];
$message=$_POST['message'];

$societe=$_POST['societe'];
$statut=$_POST['statut'];
$activite=$_POST['activite'];
$civilite=$_POST['civilite'];
$nom=$_POST['nom']; 
$prenom=$_POST['prenom'];
$fonctions=$_POST['fonctions'];
$telbureau=$_POST['telbureau'];
$telmobile=$_POST['telmobile'];
$telecopie=$_POST['telecopie'];
$teldom=$_POST['teldom'];
$adresselectronic=$_POST['adresselectronic'];
$siteweb=$_POST['siteweb'];
$adresse=$_POST['adresse'];
$cp=$_POST['cp'];
$ville=$_POST['ville'];

// Envoi du mail normal
//-----------------------

$texte_message .="Bonjour, demande d'information remplie sur le site web de la societe.\r\n";
$texte_message .="Notre demande :". $pub."\r\n";
$texte_message .= $autre;
"Notre message :" . $message."\r\n";
$texte_message .="------------------------------------------\\r\n";
$texte_message .="Notre Societe :" . $societe."\r\n";
$texte_message .="Statut : ". $statut."\r\n";
$texte_message .="Activité : " . $activite."\r\n";
$texte_message .=$texte_message .="Civilité : " . $civilite."\r\n";
$texte_message .="Nom : ". $nom."\r\n";
$texte_message .="Prenom :" . $prenom."\r\n";
$texte_message .="Mes fonctions :" . $fonctions."\r\n";
$texte_message .="Téléphone Bureau :" . $telbureau."\r\n";
$texte_message .="Téléphone mobile :" . $telmobile."\r\n";
$texte_message .="Fax :" . $telecopie."\r\n";
$texte_message .="Téléphone domicile :" .$teldom."\r\n";
$texte_message .="Email:" . $adresselectronic."\r\n";
$texte_message .="Site web :" . $siteweb."\r\n";
$texte_message .="Adresse:" . $adresse."\r\n";
$texte_message .="Code postal:" . $cp."\r\n";
$texte_message .="Ville:" . $ville"\r\n";
$texte_message .="------------------------------------------\r\n".
$texte_message .="La Direction vous remercie pour votre confiance et votre visite sur notre site.\r\n";
$texte_message .="A très bientôt.\r\n";

$ok_mail = mail("[email protected]","Demande d'information venant du site de la Société 2006","$texte_message");

//FIN DU MAIL NORMAL --------------------

// Envoi du mail client
//-----------------------

$texte .="Bonjour" . $civilite." ".$nom. "\r\n";
$texte .="Nous avons bien enregistré votre demande d'information.\r\n";
$texte .="Celle-ci va être réceptionnée par nos services et sera traitée dans les meilleurs délais.\r\n";
$texte .="\r\n";
$texte .="La Direction de XXXX vous remercie pour votre confiance et votre visite sur notre site.\r\n";
$texte .="A très bientôt sur notre site.\r\n";
$texte .="\r\n";
$texte .="Nhésitez pas à nous contactez directement :\r\n";
$texte .="\r\n";
$texte .="Contacts : [email protected] \r\n";

$mail_ok = mail("$adresselectronic","Votre demande d'information",$texte);

if ($ok_mail) { 
echo "mail parti";
} else {
echo "mail,  pas parti";
}

if ($mail_ok) { 
echo "mail client parti";
} else {
echo "mail client  pas parti";
}

?>

de plus n'oublie pas les "en-têtes du mail"
 
Merci Captain_X ! :) je vais tester tout de suite tes conseils !!
et te répondrai tout de suite pour te donner l'info du résultat

Désolé encore de vous déranger avec ça, étant débutant dans le php SQL Flash et autre 3D (formation multimédia) ben ça pas tous les jours 14 juillet !
;-) à tout de suite.

Franck
 
C'est bien ce que je pensais, le contenu des variables n'est pas transmis. Donc, en effet, comme je le disais, 2 solutions: soit ne pas utiliser de fonctions et tout balancer à la suite, soit utiliser $_POST["machin"] au lieu de $machin.
 
il peut utilise $machin=$_POST['truc']; si la variable est réutilisée, ca permet d'avoir un code un poil plus claire, ... mais c'est pas du tout une obligation. Et surtout mettre tout le texte dans une variable concaténée sinon tu devien fou et tu augmentes les erreurs.
 
MErci à vous deux ANABYS & CAPTAIN X !
comme je découvre par moi-même le code ... pas évident de comprendre que toute cette "grammaire" veut dire .. LOL, je viens d'apprendre ce que voulais dire aussi -> concaténer.. car comme tu dis si bien Captain ! je suis devenu fou pendant 10 jours pour faire un formulaire -
vous devez être sans plié de rire sous la table ..mais bon cela marche enfin !!!!!!!!
;-))
je vais sérieusement me mencher sur le langage php et le code afin de ne plus poser ce genre de question un peu simplissime merci encore à vous deux !
Bon dimanche !!