Récupérer texte pour envoi par mail - PHP - Programmation
Marsh Posté le 31-07-2008 à 19:03:39
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
Marsh Posté le 31-07-2008 à 20:06:05
bon j'ai compris le principe mais j'arrive pas a le mettre en place, je suis vraiment mauvais...
Marsh Posté le 01-08-2008 à 09:42:03
Sur les 7 points de CyberDenix, qu'est ce que tu n'arrives pas à mettre en place?
Marsh Posté le 01-08-2008 à 12:29:42
le 6 et 7, je n'arrive pas a récupérer l'article pour l'envoyer
Marsh Posté le 01-08-2008 à 14:52:42
sur envoi_article_par_email, tu ajoutes:
Code :
|
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
Marsh Posté le 01-08-2008 à 14:58:57
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.
Marsh Posté le 01-08-2008 à 17:09:00
cette page à le code suivant :
Citation : |
Il faut mettre "the_ID()" dans une variable ?
ou "the_content()" ?
Marsh Posté le 01-08-2008 à 18:48:30
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
Marsh Posté le 01-08-2008 à 18:51:22
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 ^^
Marsh Posté le 01-08-2008 à 20:48:29
Par contre quand je met $hidden = the_content(); ça m'affiche le contenu .
Marsh Posté le 01-08-2008 à 21:02:45
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.
Marsh Posté le 03-08-2008 à 15:24:26
Hum, il y a une solution :
Code :
|
Marsh Posté le 03-08-2008 à 15:30:10
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
Marsh Posté le 04-08-2008 à 13:23:52
Tu n'as pas suivi ce que j'ai décrit ci-dessus.
Essaye avec :
Code :
|
Marsh Posté le 31-07-2008 à 18:42:00
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 ?
Merci par avance
Cordialement