impossible de mettre valeur $xxx dans mail php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : impossible de mettre valeur $xxx dans mail php

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 19 sept. 2010, 20:07

je n'avais pas pensé au logiciel qui bloquent les images , je vais resté donc en format texte et html .
le but principal est d'avoir le lien :)

Re: impossible de mettre valeur $xxx dans mail php

par Cyrano » 19 sept. 2010, 19:28

Sans le net, pas d'affichage de l'image, mais pas de message tout court non plus. Par contre il faut aussi tenir compte des client de messagerie qui peuvent bloquer les images et proposer à l'utilisateur d'afficher ou non les images. Donc attention à ne pas créer des messages exclusivement basés sur des images. Attention aussi à ceux qui utilisent un affichage en mode texte seulement. Dans l'idéal, un courriel devrait être expédier avec les deux version, texte brut et HTML.

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 19 sept. 2010, 19:10

je prends note de ta modif Cyrano , et je modifie mon code , merci pour l'aide .

en passant :) je veux integrer une image en bas du mail , mais si je met un <img> l'image sera pas integré au mail , mais simplement affiché en allant chercher l'image via le web , donc sans le net pas d'affichage.

Re: impossible de mettre valeur $xxx dans mail php

par Cyrano » 18 sept. 2010, 22:53

Et voilà, avec une meilleure méthode, tu arriveras toujours à trouver une solution.

Attention quand même à rester discipliné avec le code, tu as écrit :
$body .="<td><a href=$url><strong>$url</strong></a></td>";
En HTML, les valeurs d'attribut doivent être entre guillemets. Là bien sur, la chaine est déjà entre guillemets, et ça créerait un conflit. Mais tu peux toujours utiliser un caractère d'échappement, ou bien utiliser l'apostrophe pour encadrer la chaine, et on fait des concaténations propres pour les variables PHP :
$body .='<td><a href="'. $url .'"><strong>'. $url .'</strong></a></td>';

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 18 sept. 2010, 21:48

ça fonctionne !!!!!!!!!!! enfin :)
$body .="<td><a href=$url><strong>$url</strong></a></td>";
voici la balise mise dans la partie du mail , je reçois bien le mail avec le lien valide a clicker :)

milles merci pour l'aide , et surtout a Cyrano , pour m'avoir finalement donner la solution sans ma la dire sur le forum .
j'ai résonné différemment suite a son poste , et finalement j'ai trouvé :)

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 18 sept. 2010, 21:22

bon voila
j'ai fais mon mail en html et mis sans le script php, j'ai au debut pour testé mis un texte bidon , j'ai bien reçu le mail (c'est deja ça)
apres j'ai mis un lien activé , ça a marché .

j'ai voulu mettre la valeur $url dans le code html forcement j'ai reçu un beau mail avec un $url en gras mdr.
on peut pas mettre les balide <? $url ?> dans le mail ça marche pas .
me suis dit je vais tricher (oui c'est pas bien) en coupant le mail html en deux et en mettant la ligne php $url .
j'ai bien reçu le mail avec le lien mais pas moyen d'activer le lien forcement .

ça doit pas etre sorcié a trouver :) de recuperer la valeur $url dans le code html

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 18 sept. 2010, 20:39

ok
merci pour l'aide :)
je vais faire ma page html de mon mail ,
on vera apres pour l'integrer .

Re: impossible de mettre valeur $xxx dans mail php

par Cyrano » 18 sept. 2010, 08:26

breste une chose le fameux $url s'affiche dans le mail (heureusement)
mais je voudrais activer le lien , qu'avec un simple click dessus on a arrive sur le lien , possible ?
Tu procèdes à l'envers : construis une maquette de ce que tu veux obtenir et ensuite reconstruis dynamiquement la même chose.
Si la sortie doit être en html, alors monte ta maquette en html : quand tout a l'air de ressembler à ce que tu souhaites obtenir, tu peux alors t'occuper de programmation. Et donc pour un lien, tu as une url dynamique : dans un lien en HTML comment fait-on un lien dans une page ?

Re: impossible de mettre valeur $xxx dans mail php

par stealth35 » 18 sept. 2010, 05:57

bon cela fonctionne merci Cyrano (pour le lavage des yeux :D )

j'ai reussi a faire ma prez correct,
reste une chose le fameux $url s'affiche dans le mail (heureusement)
mais je voudrais activer le lien , qu'avec un simple click dessus on a arrive sur le lien , possible ?
yep, suffis de faire une balise <a href"">

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 18 sept. 2010, 01:11

bon cela fonctionne merci Cyrano (pour le lavage des yeux :D )

j'ai reussi a faire ma prez correct,
reste une chose le fameux $url s'affiche dans le mail (heureusement)
mais je voudrais activer le lien , qu'avec un simple click dessus on a arrive sur le lien , possible ?

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 18 sept. 2010, 00:04

                    
$body = "bonjour\n" ;
$body .= "$url\n" ;
ça marcheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee , par contre ça reste sur la meme ligne mais effectivement les 2 valeur sont separé cette fois .
reste trouver cette fois pour avoir les lignes les une au dessus des autres
tu m'as ouvert les yx Cyrano =D> =D> =D> =D> =D> merci

Re: impossible de mettre valeur $xxx dans mail php

par Cyrano » 17 sept. 2010, 23:44

Regarde bien ce que tu fais : :
$body .= $url ;
$body .= "bonjour";
Tu mets une concaténation en première ligne alors que la variable $body n'a jamais été initialisée : ça génère un warning, par mortel j'en conviens, mais ça reste une erreur.
Ensuite, tu ajoutes dans la seconde ligne "bonjour" tel quel. Supposons un instant que la valeur de $url soit « http://www.forum.phpfrance.com » (comme ça, juste au hasard hein !)

Si tu fais un
echo($body);
Ça va nous faire :
Je te laisse observer et comprendre ce qui cloche ;)

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 17 sept. 2010, 23:37

en premier desolé pour les posts "loupé" je serais plus attentif a l'avenir Cyrano

bon j'ai reussi à envoyer la valeur $url dans le mail , de cette façon
// mail debut
$body .= $url ; // la valeur $url est tjrs recupéré d'au dessus et fonctionne .
                
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
mail($xmail, "le lien", $body , $headers);
// mail fin
seul hic !
le code tel qu'il est marche , je recois bien la valeur $url dans le mail
par contre si je rajoute un $body au dessus ou au dessous un simple
$body .= "bonjour";
dans le code ce donne :
// mail debut
$body .= $url ;
$body .= "bonjour"; // si j'ajoute cette ligne meme au dessus le mail arrive pas 
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
mail($xmail, "le lien", $body , $headers);
// mail fin
la ca bloque pour que le mail marche il faut un $body seul avec la valeur $url
bon c'est pas un soucis coté serveur , mais un soucis coté script .
en fait pour faire le corps j'ai utilisé mon script "contact" lui fonctionne car pas de $valeur , tout est recupéré avec la fonction $_POST

reste maintenant a comprendre pourquoi le $body de plus d'une ligne ne va pas s'il l'une d'elle contient une url sous quelle forme qu'elle soit

Re: impossible de mettre valeur $xxx dans mail php

par Cyrano » 17 sept. 2010, 22:21

Salut,

On va commencer un peu raide, mais bon : si tu ne fais pas preuve d'un minimum de sens de l'observation, tu ne feras pas beaucoup de PHP de façon très constructive. Donc pour commencer, lorsque tu mets du code ici, utilise les boutons appropriés : pour du code PHP, il y a un bouton [PHP] à utiliser de préférence au bouton [Quote].

Cette mise au point étant faite, tu as affiché le code suivant :
<? 
$url = 'http://mon_lien.''; <= le lien est recupérer plus haut 
$xmail = $_POST["e-mail"] ; <= sur le site on met son mail , donc on le recup ici

// Mail ----------------
$body = "Bonjour \n";
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= (( la normalement je doit afficher le fameux $url , j'ai testé le script sans cette ligne , je reçois le mail sans soucis , mais des que je met $url , ben le mail arrive pas  pourtant quand je fais un "echo" le $url s'affiche bien , mais dans le mail impossible , pas moyen de trouver la commande exact pour balancer cet $url dans le mail ))	
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
//----------------------
if (!empty($xmail)) {
mail( $xmail, "xxx.fr , lien de votre Up ", $body , $headers);
}
?>
Avec la coloration syntaxique, tu dois immédiatement voir qu'il y a un problème, non ?

Je le dis souvent, ma signature est un genre de rappel : en programmation, le secret, c'est un savant mélange de rigueur et de discipline. Pour commencer, on vire les short_open_tag et on ne pousse pas le laxisme à l'extrême. Ensuite, on observe et on se rend compte que le problème de la ligne 3 vient d'une apostrophe en trop a la ligne précédente. Revu et vaguement corrigé rapidement, le code de départ devient alors :
<?php 
$url = 'http://mon_lien.'; // le lien est recupérer plus haut
$xmail = $_POST["e-mail"] ; // sur le site on met son mail , donc on le recup ici

// Mail ----------------
$body = "Bonjour \n";
$body .= "Cet E-Mail a été envoyé par notre robot ".'<br>';
$body .= ""; // (( la normalement je doit afficher le fameux $url , j'ai testé le script sans cette ligne , je reçois le mail sans soucis , mais des que je met $url , ben le mail arrive pas  pourtant quand je fais un "echo" le $url s'affiche bien , mais dans le mail impossible , pas moyen de trouver la commande exact pour balancer cet $url dans le mail ))
$headers = "From: [email protected] \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";
$headers .= "MIME-Version: 1.0 ";
//----------------------
if (!empty($xmail)) 
{
    mail( $xmail, "xxx.fr , lien de votre Up ", $body , $headers);
}
?>
Observe un détail : la couleur des commentaires par rapport au code PHP lui-même. Dis-toi bien que si tu fais un effort de rigueur, tu auras moins de difficultés : tu peux ne pas connaitre certaines fonctions et ignorer certaines méthodes de programmation, mais commence déjà par faire le code proprement au niveau où tu es, ce sera un notable progrès et avec cette habitude, tu avanceras ensuite beaucoup plus vite sur le reste :)

Re: impossible de mettre valeur $xxx dans mail php

par sax76 » 17 sept. 2010, 19:12

ok apres mangé alors :)