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 :

[Mail] envoi de lien http par mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut [Mail] envoi de lien http par mail
    Bonjour,

    Je collecte des infos sur des fournisseurs dans une base données, j'ai bien évidemment leur mail mais d'autres infos doivent être saisies par eux alors je souhaterai envoyer un mail à ces fournisseurs pour qu'il complétent leur données via un fomulaire PHP.

    J'ai adapté le code suivant mais il est toujours en échec
    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
     
    $destinataire = "maboite@toto.fr";
    $objet = "formulaire evaL" ;
    $message = '
    <html>
    <head>
    <title>formulaire eval</title>
    </head>
    <body> 
     
    <table>
    <tr> 
    <th width="59"><font color="#FF0000">EVAL</font></th>
    </tr>
    <tr> 
    <td> SAISIE DE votre évaluation en utilisant le lien ci-dessous</td>
    </tr>
    <tr> 
    <td> http://localhost/fournisseur/evaluation_fournisseur.php?X=$res[0] </td>
    </tr>
    </table>
    </body> 
    </html>
    ';
     
     
    /* Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
     
    /* Quelques types d’entêtes : errors, From cc's, bcc's, etc */
    $headers .= "From: ttttttttt <tttt@tyty.fr>\n";
     
    $headers .= "Cc: bou@bbb.fr\n";
    //$headers .= "Bcc: autre.destinataire@exemple.com\n";
     
    print($destinataire);
    print($objet);
    print($message);
    print($headers);
     
    // On envoi l’email
    if ( mail($destinataire, $objet, $message, $headers) ) echo "Envoi du mail réussi.";
       else echo "Echec de l’envoi du mail.";
    Je suppose que c'est la création de :
    http://localhost/fournisseur/evaluation_fournisseur.php?X=$res[0]
    qui fait planter l'envoi de message.

    Merci de votre aide

  2. #2
    Membre actif Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Points : 268
    Points
    268
    Par défaut
    salut,

    tu peux preciser d'ou viens l'erreur ? qu'est ce qui marche pas ?


    _______________

    Agir, rectifier, remettre tout a Zero mais ne jamais reste inactif a la recherche du parfait.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Mon souci se situe dans le $message qui est le de mon mail.
    Premièrement, j'avais oublier de poser le lien j'ai donc la ligne ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href ="http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=$res[0]">http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=$res[0] </a>
    Quand je fais afficher le message je vois $res[0] alors que je voudrais voir la valeur contenue dans le tableau résultat de ma requête.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut

    Bah oui, si c'est du html, les variables php ne sont pas interprétées.

    Avec ça, c'est pas mieux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href ="http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=<?php echo $res[0]; ?>">http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=$res[0]</a>

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Et ceci dit, je n'aime pas trop le "one-line".
    Il suffit de faire un peu de Perl pour voir les dégâts que ça peut faire sur la lisibilité...

    Donc je ferais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $param = $res[0];
    ?>
    <a href ="http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=<?php echo $param; ?>">http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=$res[0]</a>
    Certes dans ce cas, ça peut paraître superflu, mais si tu veux manipuler le paramètre, c'est bien plus facile.

  6. #6
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Quand tu délimites des chaines avec ' au lieu de ", les variables php à l'intérieur ne sont pas évaluées.

    Auusi, Il vaut mieux mettre "blah {$res[0]} blah" plutôt que "blah $res[0] blah" car ça peut poser des problèmes d'interprétation des variables pour php

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Moi j'dirais que vu le code, la balise php est déja ouverte, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href ="http://localhost/achats/fournisseur/evaluation_fournisseur.php?X='.$res[0].'">http://localhost/achats/fournisseur/evaluation_fournisseur.php?X='.$res[0].'</a>
    m'enfin, je sais pas... ca me parrait logique ^^

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Oui $message est une variable PHP ainsi j'ai préféré faire une concaténation de variable pour arriver à mon but certes le code n'est pas joli et l'envoi de mai et tjs en échec

    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
     
    	$destinataire = "TABOITE@hotmail.com";
    	$objet = "formulaire evaL" ;
    	$message = '
    	<html>
    	<head>
    	<title>formulaire eval</title>
    	</head>
    	<body> 
     
    	<table BORDER="1">
    	<tr> 
    	<th width="59"><font color="#FF0000">EVAL</font></th>
    	</tr>
    	<tr> 
    	<td> SAISIE DE votre évaluation en utilisant le lien ci-dessous</td>
    	</tr>
    	<tr> 
    	<td> 	 
     
    	<A HREF="
    	http://localhost/achats/fournisseur/evaluation_fournisseur.php?code=
    	';
     
     	$message .= $_POST['newcode']; 
     
    	$message .= '&X='; 	
     
     	$message .= $_POST['nomf']; 
     
    	$message .= '">http://localhost/achats/fournisseur/evaluation_fournisseur.php?X=
    	';
     
     	$message .= $_POST['nomf']; 
    	$message .= '</a>
    	</td>
    	</tr>
    	</table>
     
    	</body> 
    	</html>
    	';
     
    	/* Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
    	$headers = "MIME-Version: 1.0\n";
    	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
     
    	/* Quelques types d’entêtes : errors, From cc's, bcc's, etc */
    	$headers .= "From: MABOITE@hotmail.com <MABOITE@hotmail.com>\n";
     
    	// On envoi l’email
    	if ( mail($destinataire, $objet, $message, $headers) ) echo "Envoi du mail réussi.";
    	else 
    	{
    		echo "Echec de l’envoi du mail.";
    		echo "<br> destinataire =";
    		echo $destinataire;
    		echo "<br> objet = ";
    		echo $objet;
    		echo "<br> message = ";		
    		echo $message;
    		echo "<br> headers =";		
    		echo $headers;
    	}
    et le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Echec de l’envoi du mail.
    destinataire =TABOITE@hotmail.com
    objet = formulaire evaL
    message = EVAL 
    SAISIE DE votre évaluation en utilisant le lien ci-dessous 
    http://localhost/fournisseur/evaluation_fournisseur.php?X= LOL  
     
    headers =MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: MABOITE@hotmail.com
    ça peut être quoi?
    le headers?
    le fournisseur d'accès?

    Je sais pas. Merci pour votre aide

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    je viens de tester en local, en remplacant les variables $_POST par le nom de la variable tout simplement (donc plus rien de dynamique), et j'avais effectivement un espace, tu as un retour a la ligne en trop ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	http://localhost/achats/fournisseur/evaluation_fournisseur.php?code=
    	';

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Modification effectuée, mais envoi toujours KO.
    Content-type du header est important pour l'envoi de mon mail, charset aussi non ?
    Enfin j'ai jonglé avec ça et pour l'instant tjs en échec.
    A part afficher les 4 variables qui constituent mon envoi, qu'est ce que je pourrai afficher encore comme donnée pour en savoir un peu plus sur l'échec de l'envoi.
    Merci.

Discussions similaires

  1. [Mail] Envoi date (datetime) formulaire par email
    Par loady dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2006, 21h30
  2. [Mail] envoi image sur serveur par e-mail
    Par thibotus01 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 09h17
  3. lien contact par mail
    Par benjamin_normand dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/01/2006, 01h25
  4. [Mail] Envoie de caractère spéciaux par mail() ?
    Par Oberown dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2005, 16h13
  5. Réponses: 1
    Dernier message: 15/07/2005, 11h21

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