IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Probléme upload piéce jointe


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Probléme upload piéce jointe
    Bonjour à tous,

    J'ai un probléme, voici mon fichier PHP qui permet l'envoi d'email avec piéce jointe, le probléme est qu'il m'est impossible de chager la piéce jointe, pour quels raisons je ne sais pas, j'ai peu être uné idée.

    La ligne: $fichierr = "adresses.txt"; doit se confondre avec la ligne:

    $pieceJointe = $_FILES['fichier'];


    Merci d'avance



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    <!doctype html>
    <html>
    <head>
    </head>
    <body align="center">
    	<?php
    		if($_POST)
    	?>
    	<form name="formule" action="messagerie(1).php" method="POST" enctype="multipart/form-data"> <!--Formulaire -->
    	<table>
    		<tr>
    			<td>Objet</td> <!-- Objet dans formulaire-->
    			<td align="right"><input name="objet" type="text"/></td> //Ligne pour écrire l'objet
    			<td rowspan="10" valign="top" align="left"> <!--Colonnes des adresses mails-->
    			<?php
    				$email = ""; //Création variable emhttp://www.lesite.net/forum/affich-2149411-php-piece-jointe-avec-mailail
    				$fichierr = "adresses.txt"; //Nom du fichier contenant les adresses
    				$donnees = fopen($fichierr,"r"); //Ouverture du fichier contenant les adresses => "r" = en lecture
    				$chaine = fread($donnees, filesize($fichier)); //Récupération des données du fichier
    				fclose($donnees);//Fermeture du fichier
    				$pos1 = 0; // Position du début de la chaine
    				$last = true; //Variable pour savoir si l'on est a la fin du fichier
    				while($last) //Boucle jusqu'à ce qu'on ateigne la fin de la chaine (Tant que)
    				{
    					if($pos2 = strpos($chaine, ";", $pos1)) //Detection de la position du caractère de séparation des adresses
    						$taille = $pos2 - $pos1; //Variable contenant la taille de la chaine contenant UNE adresse mail
    					else
    					{
    						$taille = strlen($chaine); 
    						$last = false; //Prend false pour arrêter la boucle while
    					}
    					$contact = substr($chaine, $pos1, $taille); //Récuperd toutes les informations sur le contact
    					$pos1 = $pos2 + 1; //Nouvelle position du début de la recherche dans la chaine (avec ; puis passage à la suivante)
    					$pos3 = strrpos($contact, " "); //Detection de la position du dernier espace séparant le nom du contact de son adresse mail
    					$nom = substr($contact, 0, $pos3); //Découpage de la chaine pour récupérer le nom , $pos3 = position de l'espace entre contact et adresse mail
    					$adresse = substr($contact, $pos3 + 1); //Découpage de la chaine pour récupérer l'adresse mail
     
     
    					$checkBoxAdresse = str_replace(".",",",$adresse); //Remplace les virgules par des points dans l'adresse
    					$checkBoxAdresse = str_replace("
    ","",$checkBoxAdresse); //Supprime le caractère "Entrée"
     
     
    					if(isset($_POST[$checkBoxAdresse]))//Si il y a un retour du formulaire avec l'adresse contenu dans $checkBoxAdressse éxécution du code ci dessous
    					{
    						$email = $email.$nom.' < '; //mise en place des balises pour l'envoi du mail
    						$email = $email.$adresse.' >, ';
    					}
    					echo '<input name="'.$checkBoxAdresse.'" type="checkbox">'.$nom.'<br>
    					'; // mise en place des checkBox
    				}
    				if(isset($_POST['objet']) && isset($_POST['message'])) //Teste s'il y a l'envoit d'un objet et d'un message
    				{
    					$objet = $_POST['objet']; //Récuperation de l'objet du message
    					$message = $_POST['message']; //Récuperation du message
    					if(isset($_FILES['fichier'])) //Vérification si $_FILES['fichier'])existe
    					{
    						$pieceJointe = $_FILES['fichier']; //Récupération du fichier 
    						$corps = $message.$pieceJointe; //Ajout du fichier au message
    					}
    					else
    						$corps = $message;  //Insertion de message
    					$headers = 'From: Nom Prénom <adresse@exemple.com>'; //Nom de la personne qui envoie l'email
    					mail($email, $objet, $corps, $headers); //Envois du mail
    				}
     
     
    			?>
     
    			</td>
    		</tr>
    		<tr>
    			<td><input type="file" name="fichier"/></td>
    		</tr>
    		<tr>
    			<td>Message</td>
    		</tr>
    		<tr>
    			<td colspan="2"><textarea name="message" id="message" cols="50" rows="10" style="color:grey"></textarea></td>
    		</tr>
    	</table>
    	<input type="submit" value="Envoyer"/>
    	</form>
    </body>
    </html>

  2. #2
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Bonjour,

    Déjà on ne fait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pieceJointe = $_FILES['fichier'];
    Pour récupérer un fichier ou son contenu en PHP. Ensuite pour faire une pièce jointe dans un email il faut respecter plusieurs éléments, il y a quelque tuto sur le net qui devrait te permettre de trouver ton bonheur (je n'en ai pas en tête là de suite...)

    Ou sinon utiliser tout simplement PHPMailer reste aussi une très bonne solution.

    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci de votre aide, vous m'avez parler de:$pieceJointe = $_FILES['fichier']; qui est pas correct, mais que fait-on alors pour que ce soir correcte ?

  4. #4
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Alors en plus ceci :

    On évite car c'est un test toujours vrai, car même si on a pas de formulaire soumis la variable $_POST existera toujours.

    Ensuite généralement pour joindre un fichier à un email on fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $FichierAjoindre = file_get_contents(PATH TO FILE);
     
     
    			$GOrsToto = chunk_split(base64_encode($FichierAjoindre));
     
    			$message .= "Content-Type: ".$ContentTypeTop."; name=\"".$NameTopImage."\"\r\n";
    			$message .= "Content-Transfer-Encoding: base64\n";
    			$message .= "Content-ID: <image1>\n";
     
    			$message .= "Content-Disposition: inline; filename=\"".$NameTopImage."\"\n\n";
    			$message .= $GOrsToto . "\n";
    			$message .= "\n\n";
    			$message .= "--" . $boundary . "\n";
     
    			$message .= "\n";
    			$message .= "--" . $boundary . "\n";
    La je suis sur l'envoie d'une image en PJ que j'utilise dans mon email ensuite.

    Pour revenir sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pieceJointe = $_FILES['fichier'];
    Si vous faite cela PHP va retournez "Array" lorsque vous ferrez l'affichage de $pieceJointe.

    Je pense que vous devriez sincèrement revoir certainne base avant de réaliser ce genre de script qui peuvent être très dangereux en plus. Utilisation pour spammer, propagation de phishing, virus etc.

    Cordialement,

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci de votre réponse.

    Tout d'abord le fichier que je souhaite envoyer en piéce est un fichier issu de Ardour qui est donc au format WAV.

    Vous venez de m'indiquer un code permettant de joindre un fichier à un email, le probléme est que je ne vois pas du tout ou placer ce code dans mon fichier PHP afin qu'il fonctionne

Discussions similaires

  1. Problème de pièce jointes
    Par L1011 dans le forum Outlook
    Réponses: 1
    Dernier message: 23/10/2008, 21h10
  2. Problème de pièce jointe
    Par cirtey dans le forum ASP.NET
    Réponses: 10
    Dernier message: 02/01/2008, 18h42
  3. Problème avec pièce jointe .jpg
    Par javelot69 dans le forum Outlook Express / Windows Mail
    Réponses: 14
    Dernier message: 25/10/2007, 13h55
  4. Réponses: 2
    Dernier message: 03/07/2007, 17h04
  5. [Mail] Problème avec pièce jointe
    Par coco38 dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2007, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo