|
Bonjour, j'ai testé le code et il ne m'indique pas d'erreur cependant je ne reçois toujours pas le mail :s J'ai vérifié mon adresse de réception et le mail ne me parvient toujours pas  Je n'ai pas trop compris l'avant derniere ligne quand tu me parles de "} // je n'ai pas trouvé l'ouvrante ({) !!" ? Tu parles de mon code je pense ? En fait j'aurais pu te donner le code qui se situe avant en effet et je m'excuse mais il y'a bien une accolade qui ouvre l'envoi je te montre le code
<?php
...
else
{
function get_extension($filename)
{ $parts = explode('.',$filename);
$last = count($parts) - 1;
...
?>
Je vais voir du côté de mon hebergeur car je ne vois vraiment pas d'où peut provenir le probleme... Merci de ton aide ! PS : je me permets de poster un autre petit souci que j'espere que tu pourras m'aider vu tes compétences  En fait je n'arrive pas à autoriser dans les champs de saisie tels que le nom, le prénom, la ville, l'adresse et le champs commentaire (situé sur la deuxième page de formulaire), l'insertion de lettres accentuées (çñÄÂÀÁäâàáËÊÈÉéèëêÏÎÌÍïîìíÖÔÒÓöôòóÜÛÙÚüûùúµ) et de caractères (par exemple les ponctués tels que la virgule, le point, le -, l'apostrophe). J'ai pu lire différents posts sur différents sites mais je ne suis pas parvenu à les autoriser sans que le résultat visible ne soit altéré. J'ai lu notamment que le soucis provenait du htmlentities qui changeait les caractères accentués dans leur semblable html (exemple : coupé devient coupé) et donc je me perds vraiment. Comment pourrais-je procéder ? J'ai lu aussi qu'il serait mieux de virer le htmlentities pour le remplacer mais bon le résultat tenté est médiocre. J'ai tenté de cette façon en virant le htmlentities (même si je sais que c'est dangereux du point de vue sécurité) pour remplacer les caractères accentués par des caractères non accentués mais rien y fait ! (marre d'être une quille en PHP 
<?php
//champ nom
$_SESSION["nom"] = $_POST["nom"];
//si le champs est rempli
if (!empty($_SESSION["nom"]))
{
//on teste que la valeur soit correcte
$_SESSION["nom"] = addslashes(trim($nom, ENT_QUOTES));
//--- test 1 ---
$search = array("ç","ñ","Ä","Â","À","Á","ä","â","à","á","Ë","Ê","È","É","é","è","ë","ê","Ï","Î",",","Ì","Í","ï","î","ì","í","Ö","Ô","Ò","Ó","ö","ô","ò","ó","Ü","Û","Ù","Ú","ü","û","ù","ú","µ");
$replace = array("c","n","a","a","a","a","a","a","a","a","e","e","e","e","e","e","e","e","i","i","i","i","i","i","i","i","i","o","o","o","o","o","o","o","o","u","u","u","u","u","u","u","u","u");
$p = ($_SESSION["nom"]);
$_SESSION["nom"] = str_replace($search, $replace, $p);
echo "test1 : " . $_SESSION["nom"];
echo "<br>";
echo "<br>";
...
$verif="!^[a-zA-Z_çñÄÂÀÁäâàáËÊÈÉéèëêÏÎÌÍïîìíÖÔÒÓöôòóÜÛÙÚüûùúµ ]{2,100}$!";
if(!preg_match($verif, $_SESSION["nom"]))
/* J'ai voulu tenté de remplacer le preg_match par un eregi comme il a été conseillé pour autoriser les accents mais bon, normalement ma fonction est censée accepter les accents et les remplacer :s
if(eregi("!^[a-zA-Z_çñÄÂÀÁäâàáËÊÈÉéèëêÏÎÌÍïîìíÖÔÒÓöôòóÜÛÙÚüûùúµ ]{2,100}$!", $_SESSION["nom"]))*/
{
//si le champs n'obeit pas au REGEX, on alerte
echo "Le nom que vous avez saisi contient des caracteres qui ne sont pas autorises (attention les accents sont interdits)";
exit;
}
}
else
{
//si le champs est vide, on alerte
echo "Vous n'avez pas saisi votre nom";
exit;
}
?>
-- Rien ne sert de courir, il faut partir à point.
Les chiffres de l'actualité - http://draedalus.wordpress.com |
|
le problème est dans les array, ils ne sont pas de même longueur (en nombre de contenu) remplace ces 2 lignes et ça va va aller:
$search = array("ç","ñ","Ä","Â","À","Á","ä","â","à","á","Ë","Ê","È","É","é","è","ë","ê","Ï","Î","" ,"" ,"Ì","Í","ï","î","ì","í","Ö","Ô","Ò","Ó","ö","ô","ò","ó","Ü","Û","Ù","Ú","ü","û","ù","ú","µ");
$replace = array("c","n","a","a","a","a","a","a","a","a","e","e","e","e","e","e","e","e","i","i","i","i","i","i","i","i","i","i","o","o","o","o","o","o","o","o","u","u","u","u","u","u","u","u","u");
|
|
Salut !
Je viens apporter des nouvelles ! Alors il y'avait un souci concernant le mail, en effet, pour des raisons de sécurité mon hébergeur refusait les rn pour éviter l'insertion de header dans les options afin de ne pas pouvoir employer les formulaires pour l'utilisation de spam.
J'ai donc modifié en question les header et le mail est envoyé par contre la pièce jointe, elle ne l'est pas :s
else { function get_extension($filename) { $parts = explode('.',$filename); $last = count($parts) - 1; $ext = $parts[$last]; return $ext; }
$file_name = $name_file; $extension=get_extension($file_name); $file_type="image/png"; if($extension=="gif"){$file_type="image/gif";} else if($extension=="bmp"){$file_type="image/bmp";}
// Destinataire $to = "marketing@ceci_est_prive.com";
//Objet $subject = "Demande de devis provenant de M./Mlle/Mme : " .$nom."rn";
// clé aléatoire de limite $boundary = md5(uniqid(microtime(), TRUE));
// Headers $headers = "From: $email <$email>"." "; $headers .= "MIME-Version: 1.0"; $headers .= "Content-Type: multipart/mixed;boundary=".$boundary.""; $headers .= "";
//Accuse de reception $headers .= "X-Confirm-Reading-To: ".$_SESSION["email"]."";
// Message $msg = "--$boundaryrn"; $msg .= "Content-Type: text/plain; charset="iso-8859-1"rn"; $msg .= "Content-Transfer-Encoding:8bitrn"; $msg .= "Coordonnees nom : $nom prenom : $prenom adresse : $adresse ville : $ville departement : $departement tel : $tel email : $email
L'installation type d'installation : $choix_photovoltaique type d'installation : $autre_photovoltaique Wc type de pose : $pose_photovoltaique
Le batiment type de batiment : $type_batiment type de batiment : $autre_batiment
La toiture type de toiture : $type_toiture orientation toiture : $orientation_toiture inclinaison toiture : $inclinaison_toiture hauteur toiture : $hauteur_toiture surface de la toiture : $toiture_A m de long pour $toiture_B m de large
Le projet date de projet : $delai_projet commentaires : $commentaires"."rn";
// Pièce jointe
if (file_exists($file_name)) { $file_size = filesize($file_name);
$handle = fopen($file_name, 'r') or die('Le fichier '.$file_name.'ne peut pas etre ouvert'); $content = fread($handle, $file_size); $f = fclose($handle); $content = chunk_split(base64_encode($content)); $msg .= "--$boundaryrn"; $msg .= "Content-type:$file_type;name="$file_name"rn"; $msg .= "Content-transfer-encoding: base64rn"; $msg .= "Content-Disposition: inline; filename="$file_name"rn"; $msg .= "rn"; $msg .= $content."rn"; $msg .= "--$boundary--rn"; } // Fin mail($to,$subject,$msg,$headers); header('Location: merci.html');
//on détruit la session quand les infos sont envoyées session_destroy(); }
et j'obtiens dans le mail, le cryptage mais pas la pièce jointe en question ^^'
--94f1d63bca2af1d2de9800c78e171098 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding:8bit Coordonnees nom : prenom : adresse : ville : departement : tel : email :
L'installation type d'installation : 2268 Wc type d'installation : Wc type de pose : integree industrielle
Le batiment type de batiment : batiment public type de batiment :
La toiture type de toiture : bac acier orientation toiture : Sud-Ouest inclinaison toiture : entre 10 et 20 degres hauteur toiture : entre 10 et 20 metres surface de la toiture : 9 m de long pour 9 m de large
Le projet date de projet : l'annee prochaine commentaires : je ne sais pas quoi choisir
Promis après j'arrête ^^' comme c'est mon dernier jour de stage j'essaye de trouver la solution, sinon j'essayerais de trouver le problème pour moi pour la suite.
Merci -- Rien ne sert de courir, il faut partir à point.
Les chiffres de l'actualité - http://draedalus.wordpress.com |