Faormulaires et date/heure locales

Résolu
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 26 juil. 2010 à 10:29
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 26 juil. 2010 à 14:05
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

RaftY Messages postés 56 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 12 août 2010
26 juil. 2010 à 13:25
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!
3
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
26 juil. 2010 à 10:53
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
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
26 juil. 2010 à 14:05
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
0
Rejoignez-nous