Faormulaires et date/heure locales [Résolu]

Signaler
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
-
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
-
Bonjour à tous.

Je veux faire un code relatif aux formulaires.
J'y demande le système date et heure locale, par date_default_timezone_set("Europ/Brussels), car mon serveur se trouve au Danemark (one.com)
Le message reçu est vide, car apparemment, il y a un problème dans la date... Cela ne m'affiche que Dimanche, et de plus nous sommes lundi...
Je suis bloqué" sur ce code depuis hier et rien n'y fait.
Pouvez-vous me consacrer un peu de votre temps pour m'aider à solutionner cette(ces) erreur(s) ?
D'avance, je vous en remercie.
A bientôt.

<?php
date_default_timezone_set('Europe/Brussels');
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier",utf8_encode("Février"),"Mars","Avril","Mai","Juin","Juillet",utf8_encode("Août"),"Septembre","Octobre","Novembre",utf8_encode("Décembre"));

$temps = time();
$datefr = $jour[date("w",temps)]." ".date("d",temps)." ".$mois[date("n",temps)]." ".date("Y",temps);
$heurefr = date("H:i:s",temps);

switch($concerne) {
case 'CRE':
$concerne = utf8_encode('CREATION');
break;
case 'IMP':
$concerne = utf8_encode('IMPRESSION');
break;
case 'WEB':
$concerne = utf8_encode('WEB DESIGN');
break;
default:
$concerne = utf8_encode('Ordre général');
}
$societe = ucwords(strtolower($societe));
$nom = strtoupper(strtolower($nom));
$localite = strtoupper(strtolower($localite));
$prenom = ucwords(strtolower($prenom));

$destinataire = "info@trucmuche.com";
$objet = "Demande de Renseignements www.trucmuche.com";

$msg = "\n";
$msg .= "=====================\n";
$msg .= "Message provenant d'un $RadioGroup1\n";
$msg .= "\n";
$msg .= "Entreprise : $societe\n";
$msg .= ">>> Contact : $nom $prenom\n";
$msg .= "$adresse\n";
$msg .= "$pays - $codepostal $localite\n";
$msg .= utf8_encode("Tél : ")."$tel\n";
$msg .= "Email : $email\n";
$msg .= "\n\n";
$msg .= "Concerne : $concerne\n";
$msg .= "\n";
$msg .= "Message :\n";
$msg .= "$message\n";
$msg .= "\n";
$msg .= "============================\n";
$msg .= "\n";

$entete = "From: trucmuche <> \n";
$entete .= "Reply-To: $destinataire \n\n";
$entete .= "Content-Type: text/plain; charset=\'UTF-8\' \n";
$entete .= "Content-Disposition: inline \n";
$entete .= "Content-Transfer-Encoding: 7bit \n";
$entete .= "MIME-Version: 1.0 \n";
$entete .= "Date: $datefr $heurefr \n";

mail(utf8_decode($destinataire),utf8_decode($objet), utf8_decode($msg), utf8_decode($entete));

Header("Location: ../formulaire01.html");
?>



jyd

3 réponses

Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Bonjour,

A priori pas de souci de codage sauf peut être, en ce qui concerne tes variables. JE suppose que les variables $concerne, $societe, $nom .... viennent d'un formulaire qui a été été poster par formulaire01.html.

Possibilité 1, le mail contient le texte du msg mais les variables sont vides:

Tel que tu les utilises cela signifie que ton PHP possède l'option REGISTER_GLOBAL=ON (option du PHP.INI) si toutefois cette option a été basculée à ON (ce qui est généralement le cas, pour du PHP 5 alors que sur PHP 4 souvent à ON. Solution utilisation de $_POST (pour formulaire en METHOD=POST) ou $_GET(pour formulaire en METHOD=GET) ou $_REQUEST (pour les deux méthodes).

Possibilité 2: La messagerie n'arrive pas à lire le mail, les logiciel de messagerie ne s'autorise par toujours tous les type de caractères. Le plus simple est de vérifier dans le logiciel de messagerie la source du message si cela est possible et bien voir que les infos sont incluse mais pas lu par le client SMTP. Dans ce cas, il faut voir $entete pour faire les réglages adéquat comme

$entete .= "Content-Type: text/plain; charset=\'UTF-8\' \n";  
$entete .= "Content-Transfer-Encoding: 7bit \n";


Utiliser des Caractères codés sur 8 Bits (UTF-8) avec un transfert 7 bits

A titre de test on peut essayer avec des entetes à blanc et voir le résultat.

Bon courage
______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

J'avance.
Mon problème de date est résolu...
MAIS j'ai encore un message vide en retour.
Pourquoi? A l'aide, svp.
Bonjour à tous.
PS: le pire, c'est qu'avant cela fonctionnait, mais plus maintenant !!!

<?php
date_default_timezone_set('Europe/Brussels');
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier",utf8_encode("Février"),"Mars","Avril","Mai","Juin","Juillet",utf8_encode("Août"),"Septembre","Octobre","Novembre",utf8_encode("Décembre"));

$temps = time();
$datefr = $jour[date("w",temps)]." ".date("d",temps)." ".$mois[date("n",temps)]." ".date("Y",temps);
$heurefr = date("H:i:s",temps);

switch($concerne) {
case 'CRE':
$concerne = utf8_encode('CREATION');
break;
case 'IMP':
$concerne = utf8_encode('IMPRESSION');
break;
case 'WEB':
$concerne = utf8_encode('WEB DESIGN');
break;
default:
$concerne = utf8_encode('Ordre général');
}
$societe = ucwords(strtolower($societe));
$nom = strtoupper(strtolower($nom));
$localite = strtoupper(strtolower($localite));
$prenom = ucwords(strtolower($prenom));

$destinataire = "info@trucmuche.com";
$objet = "Demande de Renseignements http://www.trucmuche.com";

$msg = "\n";
$msg .= "=====================\n";
$msg .= "Message provenant d'un $RadioGroup1\n";
$msg .= "\n";
$msg .= "Entreprise : $societe\n";
$msg .= ">>> Contact : $nom $prenom\n";
$msg .= "$adresse\n";
$msg .= "$pays - $codepostal $localite\n";
$msg .= utf8_encode("Tél : ")."$tel\n";
$msg .= "Email : $email\n";
$msg .= "\n\n";
$msg .= "Concerne : $concerne\n";
$msg .= "\n";
$msg .= "Message :\n";
$msg .= "$message\n";
$msg .= "\n";
$msg .= "============================\n";
$msg .= "\n";

$entete = "From: trucmuche <> \n";
$entete .= "Reply-To: $destinataire \n\n";
$entete .= "Content-Type: text/plain; charset=\'UTF-8\' \n";
$entete .= "Content-Disposition: inline \n";
$entete .= "Content-Transfer-Encoding: 7bit \n";
$entete .= "MIME-Version: 1.0 \n";
$entete .= "Date: $datefr $heurefr \n";

mail(utf8_decode($destinataire),utf8_decode($objet), utf8_decode($msg), utf8_decode($entete));

Header("Location: ../formulaire01.html");
?>

jyd
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

tu ass raison, il y a eu un changement chez one.com...

Pour solutionner cela, je fais
$nom = $_POST['nom']
etc.

Cela marche.
Merci à toi

jyd