Probleme pour la creation d'un upload
Hors ligneDraedalus Le 11/07/2007 à 12:24 Profil de Draedalus Configuration de Draedalus

salut, je viens de faire les changements et le résultat est identique

Si ça se trouve le probleme vient d'ailleurs ?
Je te renvoie le code que j'ai réutilisé

<?php
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@blablablou_antispam_bloublou.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>"."rn";
$headers .= "MIME-Version: 1.0rn";
$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."rn";
$headers .= "rn";
 
//Accuse de reception
$headers .= "X-Confirm-Reading-To: ".$_SESSION["adresse"]."rn";
 
// Message
$msg "--$boundaryrn";
$msg .= "Content-Type: text/plain; charset="iso-8859-1" rn";
$msg .= "Content-Transfer-Encoding:8bitrn";
$msg .= "Coordonneesn
nom : $nom
prenom : $prenom 
adresse : $adresse 
ville : $ville 
departement : $departement 
tel : $tel 
email : $emailn
 
L'installationn
type d'installation : $choix_photovoltaique 
type d'installation : $autre_photovoltaique Wc
type de pose : $pose_photovoltaiquen
 
Le batimentn
type de batiment : $type_batiment 
type de batiment : $autre_batimentn
 
La toituren
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 largen
 
Le projetn
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();
}
?>
--
Rien ne sert de courir, il faut partir à point. Les chiffres de l'actualité - http://draedalus.wordpress.com
Hors ligneJeanluc Le 11/07/2007 à 17:54 Profil de Jeanluc Configuration de Jeanluc

Bon, j'espère que toute la ponctuation va passer maintenant.
Il y a juste un truc que tu dois vérifier à l'avant derbière ligne
Tiens moi au courant.

Jeanluc


moi a écrit :

<?php
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@blablablou_antispam_bloublou.com";

//Objet
$subject = "Demande de devis provenant de M./Mlle/Mme : " .$nom."\r\n";

// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));

// Headers
$headers  = "From: $email <$email>"."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;boundary=".$boundary."\r\n";
$headers .= "\r\n";

//Accuse de reception
$headers .= "X-Confirm-Reading-To: ".$_SESSION["adresse"]."\r\n";

// Message
$msg = "--$boundary\r\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$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"."\r\n";

// 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 .= "--$boundary\r\n";
     $msg .= "Content-type:$file_type;name=\"$file_name\"\r\n";
     $msg .= "Content-transfer-encoding: base64\r\n";
     $msg .= "Content-Disposition: inline; filename=\"$file_name\"\r\n";
     $msg .= "\r\n";
     $msg .= $content."\r\n";
     $msg .= "--$boundary--\r\n";
}
// Fin
mail($to,$subject,$msg,$headers);
header('Location: merci.html');

//on détruit la session quand les infos sont envoyées
session_destroy();
} // je n'ai pas trouvé l'ouvrante ({) !!
?>
Hors ligneDraedalus Le 12/07/2007 à 10:10 Profil de Draedalus Configuration de Draedalus

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&eacute;) 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($nomENT_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
Hors ligneJeanluc Le 12/07/2007 à 18:12 Profil de Jeanluc Configuration de Jeanluc

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");

Hors ligneDraedalus Le 13/07/2007 à 12:34 Profil de Draedalus Configuration de Draedalus

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
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels