Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2701 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer texte pour envoi par mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer texte pour envoi par mail

n°1767435
Mc canard
Posté le 31-07-2008 à 18:42:00  profilanswer
 

Bonjour à tous,
 
j'ai envie de développer un service web sur la base d'une plate-forme Wordpress en y ajoutant des possibilités supplémentaires pour les visiteurs.
Je voudrais mettre en place en bas de chaque billet un champs pour envoyer le contenu textuel du billet par mail a l'adresse que le lecteur entrera dans ce champs.
 
L'adresse mail expéditrice sera celle du site du genre "admin@nomdedomaine.com" est sera prédéfinie à l'avance et le contenu du message aussi car se sera le texte du billet.
 
Étant très novice en php je m'en remet à vous, si vous avez des directions a me faire suivre je vous en remercie.
 
J'aimerais aussi pouvoir faire la même chose sur twitter ou autre service sociaux mais se serait abusé non ? :p
 
Merci par avance
Cordialement

mood
Publicité
Posté le 31-07-2008 à 18:42:00  profilanswer
 

n°1767439
CyberDenix
Posté le 31-07-2008 à 19:03:39  profilanswer
 

Hé bien à première vue rien de dramatique.
 
Grosso-modo :
1. Tu trouves la page dans wordpress qui affiche les articles
2. Tu vas tout en bas et tu ajoute un formulaire (<form method='POST' action='envoi_article_par_email.php'></form> ) avec dedans une entrée de type texte (<input name='email' type='text' /> ), une entrée cachée (<input name='article_id' type='hidden' /> ) et un bouton d'envoi (<input type='submit' /> )
3. Tu créés le fichier envoi_article_par_email.php
4. Tu ouvres ce fichier
5. Dans ce fichier tu récupères la valeur de ton entrée texte (c'est à dire l'e-mail, avec $_POST['email']) et la valeur de ton champ caché (c'est à dire l'identifiant de l'article, avec $_POST['article_id']).
6. Tu récupère l'article via l'id (si tu ne sais pas comment faire tu peux carrément balancer l'article dans le champ caché. C'est moche, mais à la guerre comme à la guerre).
7. Tu envoies ton e-mail


---------------
Directeur Technique (CTO)
n°1767441
Mc canard
Posté le 31-07-2008 à 19:08:57  profilanswer
 

Ok je vois ça.
 
Merci beaucoup

n°1767469
Mc canard
Posté le 31-07-2008 à 20:06:05  profilanswer
 

bon j'ai compris le principe mais j'arrive pas a le mettre en place, je suis vraiment mauvais...

n°1767617
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 01-08-2008 à 09:42:03  profilanswer
 

Sur les 7 points de CyberDenix, qu'est ce que tu n'arrives pas à mettre en place?


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
n°1767761
Mc canard
Posté le 01-08-2008 à 12:29:42  profilanswer
 

le 6 et 7, je n'arrive pas a récupérer l'article pour l'envoyer

n°1767857
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 01-08-2008 à 14:52:42  profilanswer
 

sur envoi_article_par_email, tu ajoutes:

Code :
  1. $idarticle = isset( $_POST['id_article'] ) ? $_POST['id_article] : '';
  2. $req = "select * from article where id_article = ".$idarticle;
  3. $resultat = mysql_query($req);
  4. ...


 
bien sur, il faut éviter de mettre * en précisant les champs qui t'intéressent. Apres, tu les récupères ($infoarticle = $result['nom_du_champ'] par exemple) et tu n'as plus qu'a te servir de la fonction mail() de php


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
n°1767863
CyberDenix
Posté le 01-08-2008 à 14:58:57  profilanswer
 

Tout à fait, le plus difficile étant de savoir quels sont les champs et tables SQL utilisées par WordPress.  
 
Normallement tu devrais avoir cette information dans le point 1., avec la page qui affiche les articles WordPress. Ben oui, pour afficher les articles il faut accéder à la base de données. Je te conseille donc de scruter le code de cette page attentivement afin de récupérer la partie qui t'intéresse, c'est à dire la sélection de l'article en base de données.
 
Après, l'envoi d'un e-mail, c'est simple comme bonjour.


Message édité par CyberDenix le 01-08-2008 à 14:59:21

---------------
Directeur Technique (CTO)
n°1767972
Mc canard
Posté le 01-08-2008 à 17:09:00  profilanswer
 

cette page à le code suivant :

Citation :


<div class="post-date"><span class="month"><?php the_time('F')?></span><br /><span class="dayofmonth"><?php the_time('j')?></span></div>
 <h3 class="h1" id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Lien Permanent vers <?php the_title(); ?>"><?php the_title(); ?></a></h3>
 <div class="post-meta-top">
 <div class="auth"><span>Posté par <strong><?php the_author_posts_link(); ?></strong> @ <?php the_time('H:i'); ?></span></div>
 </div>
   
 <div class="clearboth"></div>  
 <!--content with more link-->
 <?php the_content('<p>Lire la suite ce cet article »</p>'); ?>


 
Il faut mettre "the_ID()" dans une variable ?
 ou "the_content()" ?
 

n°1768017
CyberDenix
Posté le 01-08-2008 à 18:48:30  profilanswer
 

Si tu veux prendre l'id, il te faudra :
$hidden = 'post-'.the_ID(); // Regarde bien, ya 'post-' juste devant !
Mais tu auras besoin de savoir faire une sélection en base avec cet id.
 
Sinon tu prends
$hidden =  the_content(); // C'est crade mais t'es à peu près sûr de réussir


Message édité par CyberDenix le 01-08-2008 à 18:48:59

---------------
Directeur Technique (CTO)
mood
Publicité
Posté le 01-08-2008 à 18:48:30  profilanswer
 

n°1768019
Mc canard
Posté le 01-08-2008 à 18:51:22  profilanswer
 

j'aime bien le "C'est crade mais t'es à peu près sûr de réussir", tu me connais mal :)
 
Même avec les bon outils parfois j'ai beaucoup de mal, et la c'est le cas ^^

n°1768065
Mc canard
Posté le 01-08-2008 à 20:48:29  profilanswer
 

Par contre quand je met $hidden =  the_content(); ça m'affiche le contenu .

n°1768075
Mc canard
Posté le 01-08-2008 à 21:02:45  profilanswer
 

Bon je crois que je vais abandonner et trouver quelqu'un qui me le fasse complètement parce que la je patauge malgré  vos conseils, j'y arrive pas.
 
ça parait tellement simple mais le php et moi c'est une longue histoire.
 
Merci malgré tout de vous être penché dessus.

n°1768497
CyberDenix
Posté le 03-08-2008 à 15:24:26  profilanswer
 

Hum, il y a une solution :
 

Code :
  1. ob_start();                    // On va rediriger toutes sorties d'écran vers un tampon
  2. the_content();                 // Cette fonction fait des sorties d'écran
  3. $hidden = ob_get_contents();   // On récupère le contenu du tampon
  4. ob_end_clean();                // On vide le tampon
  5.  
  6. // Maintenant, on a le contenu de l'article dans $hidden :)


Message édité par CyberDenix le 03-08-2008 à 15:27:53

---------------
Directeur Technique (CTO)
n°1768499
Mc canard
Posté le 03-08-2008 à 15:30:10  profilanswer
 

J'ai trouvé :  
 
dans ma page avec le formulaire :
 
<form method='POST' action='mail.php'>
<input name='email' type='text' size="40" />
<textarea name='content'><?php the_content();?></textarea><br />
<input type='submit' />
</form>

 
 
et dans ma page mail.php :
 
<?php
$_POST['email'];
$_POST['content'];
$mail = $_POST['email'];
$content = $_POST['content'];
 
$headers ='From: "moi"<adresse@fai.fr>'."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";  
 
    if(mail($mail, 'Sujet', $content, $headers))
     {
          echo 'Votre message est bien envoyé;';
     
     }
     else
     {
          echo 'Votre message n'est pas envoyé;';
   
     }
 
?>

 
et j'ai masqué le textarea avec le CSS parce que si je lui met type="hidden" bah il est pas hidden


Message édité par Mc canard le 03-08-2008 à 15:30:59
n°1768865
CyberDenix
Posté le 04-08-2008 à 13:23:52  profilanswer
 

Tu n'as pas suivi ce que j'ai décrit ci-dessus.
 
Essaye avec :

Code :
  1. $out = '';
  2. $out .= '<form method=\'POST\' action=\'mail.php\'>';
  3. $out .= '  <input name=\'email\' type=\'text\' value=\'\' />';
  4. ob_start();                    // On va rediriger toutes sorties d'écran vers un tampon
  5. the_content();                 // Cette fonction fait des sorties d'écran
  6. $content = ob_get_contents();   // On récupère le contenu du tampon
  7. ob_end_clean();                // On vide le tampon
  8. $out .= '  <input name=\'content\' type=\'hidden\' value=\''.$content.'\' />';
  9. $out .= '  <input type=\'submit\' value=\'Envoyer cet article par e-mail\' />';
  10. $out .= '</form>';
  11. echo $out;


Message édité par CyberDenix le 04-08-2008 à 14:05:11

---------------
Directeur Technique (CTO)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer texte pour envoi par mail

 

Sujets relatifs
[PHP/HTML] récupérer valeur PHP depuis javascriptCompteur visite + envoi de mail
Question fonction mail()probleme envoi mail avec MIME::Lite
recupérer donnesenvoi formulaire par mail .NET 2.0
AS3: changer le texte, garder le formatage? 
Plus de sujets relatifs à : Récupérer texte pour envoi par mail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR