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 :

Formulaire de contact et bibliothèque phpmailer


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Formulaire de contact et bibliothèque phpmailer
    Bonjour,

    en stage de fin d'étude je dois développer un site client.
    On m'a aussi demandé d'écrire et d'intégrer un formulaire de contact dans l'interface coté client.
    A travers ce formulaire, le client pourra faire une demande (devis par exemple) et celle-ci sera transmis par mail à ses interlocuteurs (Responsable d'agence et responsable secteur principalement).
    Après avoir effectué quelques recherches, notamment sur developpez.net, je me suis intéressé à la classe PHPMailer.
    J'ai donc téléchargé la dernière version (PHPMailer v_5.0.0) et j'ai écris mon formulaire en m'appuyant sur ce tutoriel et sur ce topic qui ressemble à mon problème.

    Je vous donne le code de mon formulaire :
    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
    <?php
    require_once("inc/class.phpmailer.php"); /* le chemin est OK */
    $destinataire="******@gmail.com"; /* mon mail caché */
    set_time_limit(0);
     
    if(isset($_POST['message'])){
      $mail = new PHPmailer();
      $mail->IsSMTP();
      $mail->IsHTML();
      $mail->Host="smtp.*****.net"; /* serveur STMP de l'entreprise */
      $mail->From=$_SESSION['mail']; /* je recupère le mail du client grâce à la variable de session correspondante */
      $mail->FromName=$_SESSION['societe']; /* idem au dessus */
      $mail->AddAddress($destinataire); 
      $mail->AddReplyTo($_SESSION['mail']); /* idem au dessus */
      $mail->Subject=$_POST['subject'];
      $mail->Body=htmlentities(@$_POST['message']);
      if(isset($_FILES["attach"]))
        if(is_uploaded_file($_FILES["attach"]["tmp_name"]))
          $mail->AddAttachment($_FILES["attach"]["tmp_name"],$_FILES["attach"]["name"]);
      //if(!$mail->Send())
       // echo $mail->ErrorInfo;
       // else
        echo "Mail envoyé avec succès.";
      echo "<br/>";
      $mail->SmtpClose();
      unset($mail);  
    }
    ?>
    <form method="post" action="" enctype="multipart/form-data">
    	<table width="350"  cellpadding="5" cellspacing="0">
    		<tr>
    			<td>Type de demande</td>
    			<td>
    				<select name="subject" id="subject">
    					<option value="subject1">Devis</option>
    					<option value="subject2">Autre</option>
    				</select>
    			</td>
    		</tr>
    		<tr>
    			<td>Commentaires</td>
    			<td><textarea name="message" id="message" rows=10 cols=60></textarea></td>
    		</tr>
    		<tr>
    			<td>Joindre un fichier</td>
    			<td><input name="attach" type="file" id="attach" /></td>
    			<td><input type="hidden" name="MAX_FILE_SIZE" value="200000"></td>
    		</tr>
    		<tr>
    			<td><input type="submit" name="Submit" value="Envoyer" /></td>
    		</tr>
    	</table>
    </form>
    Cette page s'appelle 'demande.php' et elle est appelé par la page 'index.php' où je gère mes sessions et la connexion à la BDD.

    Le problème est que lorsque je clique sur envoyer je reçois l'erreur suivante :

    Catchable fatal error: Object of class PHPMailer could not be converted to string in D:\projet\inc\class.phpmailer.php on line 406
    La ligne 406 est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $address = trim($address);
    Je crois comprendre que cela vient du type, alors dans ma page 'demande.php' j'ai essayé de remplacer les ' par des " mais le problème est le même. A vrai dire j'ai essayé de nombreuses combinaisons en désespoir de cause mais toujours le même erreur :/

    Alors si quelqu'un a déjà été confronté à ce problème ou a une idée je suis preneur car je n'arrive plus a voir ou sa cloche.

    Info complémentaires : je travaille sous wampserver 2.0 avec PHP 5.2.9-1, le serveur smtp est celui de l'entreprise où j'effectue mon stage, il est correcte car j'ai déjà réussi l'envoie d'un mail via un autre script.

  2. #2
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut
    Euh, n'ayant pas utilisé phpmailer, je peux te conseiller d'utiliser d'autres scripts (provenant de tuto) qui permettent d'envoyer des mail sans ajouter de librairies.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Malheureusement j'ai tendance a aimer la difficulté et à absolument trouver le pourquoi du comment
    Je vais revoir ce bout de code a tête reposer et demander à google si il a déjà eu ce problème.
    Au pire des cas je me retrancherais alors vers un autre script comme tu le suggère, d'ailleurs si tu en connais un bien sympa je suis aussi preneur ... même si je m'en sers pas, c'est toujours intéressant d'avoir çà de coté

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Je fais remonter mon topic, si quelqu'un a une idée ...

  5. #5
    Membre actif Avatar de fab76000
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 311
    Points : 294
    Points
    294
    Par défaut
    Comme ma précedente réponse je te conseille une autre fonction pour envoyer des mails, il y en a plein qui tourne sur le net

    Google est ton ami

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Que contient ta variable $address ?
    La fonction trim attend en paramètre une variable de type string.
    Il semblerai que ta variable $adress ne soit pas de type string et que la conversion ne soit pas possible automatiquement.

    Mais je peux bien sur me tromper, je n'ai jamais utilisé phpmailer moi non plus

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Je pense aussi que cela vienne du type comme le suggère l'erreur, cependant tous mes champs sont de type string (varchar(45) dans ma BDD).

    Je crois que je vais finalement suivre le conseil de fab76000 et trouver ou faire un autre script de contact.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Tes champs dans la BDD ok mais ta variable $adress ?
    Dans le code que tu nous montre, je ne vois pas à quel moment tu attribue une valeur à cette variable. Peut être qu'avec cette information on pourra t'aider

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bien vu Arnaud13
    $address est une variable du fichier class.phpmailer.php et j'avais du mal a voir le soucis.
    En fesant un
    avant l'instanciation de la class je récupère l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in D:\projet\demandes.php on line 4
    Je regarde tout çà de plus près et je vais voir comment faire pour récupérer le mail du client et l'insérer automatiquement en tant qu'expéditeur comme je comptais faire avec ce $_SESSION['mail']

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/01/2006, 07h23
  2. [Formulaire] de contact
    Par inferno66667 dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 19h32
  3. Prob avec formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2005, 18h53
  4. Prob avec PHP sur le formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2005, 17h06
  5. Problème d'accès formulaire de contact
    Par Mystic26 dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2005, 16h47

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