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

Langage PHP Discussion :

Pb envoie PJ en php.


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Pb envoie PJ en php.
    Salut,

    J'ai recuperer un site en gestion meme si je ne suis pas specialement doué en language web.
    J'ai une page php qui doit envoyer un message mais avant doic tester s'il y a un fichier joint.
    Lors de l'execution du fichier, j'ai un message du type
    Warning: fopen() [function.fopen]: Filename cannot be empty in /home/unaf1/public_html/magic/mailCollectifAction.php on line 55

    Warning: fread() expects parameter 1 to be resource, boolean given in /home/unaf1/public_html/magic/mailCollectifAction.php on line 55
    .

    Voici mon code php...


    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <? require('cookie.php'); ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     
    <head>
    <title>TOTO - Liste des adhérents</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
     
    <body link="black" vlink="black">
     
    <?php
    include ('../maintenance.php');
    require "barre.php";
    ?>
     
    <h2>Message envoyé avec succès</h2>
     
    <?php 
     
    require( "config.inc.php" );
    require( "requetes.inc.php" );
     
    // $cond = "ORDER BY nom";
     
    ?>
     
    <?
     
    if ($HTTP_POST_FILES['fichier']['size'] != 0) {
      if (is_uploaded_file($HTTP_POST_FILES['fichier']['tmp_name']))
      {
    	$attach="oui";
        $fichier_temp = $HTTP_POST_FILES['fichier']['tmp_name'];
     
        $nom_fichier = $HTTP_POST_FILES['fichier']['name'];
        echo "Le fichier suivant a* été joint au message : '" 
                . $nom_fichier . "'.<br><br>";
      }
      else
      {
        echo '<h3 style="color:#FF0000">ATTENTION, une erreur est survenue lors du téléchargement de ce fichier : ' . $HTTP_POST_FILES['fichier']['name'] . "!</h3>";
    	exit();
      }
    }
     
    ?>
     
    <?
     
    // declaration de la classe
    require "mime_mail.class.php";
     
    // ouverture et lecture du fichier
    $fichier = fread(fopen($fichier_temp, "r"), filesize($fichier_temp));
     
    // instanciation de la classe
    $mail = new mime_mail();
    // sujet
    $mail->subject = $_POST['sujet'];
    // corps du message
    $mail->body = $_POST['message'];
    // adresse email de l'expediteur (optionnel)
    $mail->from = $FROM;
     
    // entetes supplementaires (optionnel)
    $entetemail = "X-Mailer: PHP/" . phpversion();
    $mail->headers = "$entetemail";
     
    // fichier attache (optionnel)
    if ($attach=="oui") {
    $mail->attach("$fichier", "$nom_fichier");
    }
    $mime =  "";
     
    // parametres optionnels
    if (!empty($mail->from))    $mime .=  "From: ".$mail->from. "\n";
    if (!empty($mail->headers)) $mime .= $mail->headers. "\n";
    if (!empty($mail->body))    $mail->attach($mail->body,  "",  "text/plain");
    // entete MIME
     
    $mime .=  "MIME-Version: 1.0\n".$mail->build_multipart();
    $query = selecto( $login , '`email`' , $cond );
    $result = mysql_query($query) or die("Zuuut alors ....");
     
    while ($line = mysql_fetch_array($result, MYSQL_BOTH)) {
      $dest = $line['email'];
     
    	//if( !empty($dest) ){
    	// adresse email de reception, passee en parametres
    	$mail->to = $dest;
    	// envoi du message
    	    // envoi du message
    	mail($mail->to, $mail->subject, "", $mime);
     
    	print "Mail envoyé a* $dest<BR>";
     
    echo $dest; echo "<br/>";
     // }
     
    } 
     
    /* Liberation des resultats */
    mysql_free_result($result);
    /* Fermeture de la connexion */
    mysql_close($link);?>
    </body>
    </html>
    -----------------------------> FIN

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    L'erreur provient du fait que $fichier_temp est probablement vide au moment où il est utilisé dans fopen.

    fopenrenvoi donc false au lieu d'une ressource de fichier ce qui produit l'erreur sur fread.

    Tu peux en avoir leur coeur net en faisant var_dump($fichier_temp); juste avant le fread.

    Note au passage que l'utilisation de $HTTP_POST_FILES est obsolète depuis plus de 10 ans , cela à été remplacé par en $_FILES en php 4.1
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci grunk pour ta reponse.

    Cependant avec ma faible comprehension du langage de programmation web, il m'a semblé comprendre que jsutement un test est fait sur la presence ou pas d'un fichier joint ( entre ligne 30 - 45 ) avant envoi du mail.
    Comme je le signale au debut de mon message je reprends en gestion le site d'une grosse association sans avoir la competence pure et effectivement depuis 2004 rien n'a evolué dessus. je cherche juste a corriger certains disfonctionnement en attendant la creation d'un nouveau site plus aux standards du net. Au passage je vais surrement lancer un appel d'offre au nom de l'association pour les codeurs je suis dispo en MP

Discussions similaires

  1. envoi sms en php
    Par osseili20 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 14h47
  2. Réponses: 3
    Dernier message: 18/04/2007, 16h35
  3. [Mail] envoi de mail php
    Par nicordi dans le forum Langage
    Réponses: 16
    Dernier message: 31/10/2006, 00h00
  4. [Mail] Envoi email avec php
    Par laymounos dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 14h31

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