Discussion:
Envoie par mail de la page html courante
(trop ancien pour répondre)
turtly
2009-04-08 15:54:30 UTC
Permalink
Bonjour,
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par php
ou javascript en cliquant sur un bouton envoi de type submit ou non. De
préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.

J'ai essayé avec javascript et mailto. Mais mon mail est vide, la page n'étant
pas un formulaire au sens strict. Mailto semble en effet n'intégrer dans un mail
que le contenu de champs de saisie type="text".
Il n'intégre par des trucs comme <td><?php echo $donnee; ?></td> sensé afficher
des données issues d'une requête oracle passée en variable à php.

J'ai résussi avec php à envoyer un mail avec pièce jointe (page courante
enregistrée manuellement sur le serveur, je ne sais pas commetn l'enregistrer
automatiquement via php) le problème est que le fichier doit être côté serveur
et que je souhaite que ma page courante, si je l'enregistre avant de l'envoyer
soit du côté client (enregsitrement que je peux faire grâce à javascript).

Conclusion :
Comme je ne sais pas comment envoyer la page courante par mail sans
l'enregistrer, je tente de l'envoyer après l'avoir enregistrée.
Mais, comme, je ne sais pas enregsitrer cette page du côté serveur via PHP, je
l'enregistre sur le PC de l'utilisateur via javascript. Mais alors, php n'arrive
pas à la trouver lorsque je lui indique le chemin pour la pièce jointe.

Je vous remercie de votre aide éventuelle.
Pascal PONCET
2009-04-08 21:43:54 UTC
Permalink
Post by turtly
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par php
ou javascript en cliquant sur un bouton envoi de type submit ou non. De
préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.
Bonjour,

Question bête : comment est générée la page sur le serveur ? c'est du
PHP ? vous pouvez modifier le source ?

La logique voudrait qu'une commande de l'utilisateur (un bouton ou un
lien) génère à nouveau la page qui lui a été servie, puis que ce script
PHP la passe dans le corps du mail à envoyer.

Cordialement,
Pascal
turtly
2009-04-09 09:07:27 UTC
Permalink
Post by turtly
Post by turtly
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par php
ou javascript en cliquant sur un bouton envoi de type submit ou non. De
préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.
Bonjour,
Question bête : comment est générée la page sur le
serveur ? c'est du
PHP ? vous pouvez modifier le source ?
La logique voudrait qu'une commande de l'utilisateur (un bouton ou un
lien) génère à nouveau la page qui lui a été
servie, puis que ce script
PHP la passe dans le corps du mail à envoyer.
Cordialement,
Pascal
Bonjour,
J'apporte des précisions à mon premier message.
La page chargée par l'utilisateur et à envoyer par mail est une page HTML qui
contient dans un tableau des données issues d'Oracle.
Une première page PHP passe des requêtes sql.
Un include permet d'afficher la page HTML que l'utilisateur pourra envoyer par
mail.
Cette page est mise à jour lors de son chargement grâce à des variables
alimentées par les données retournées par la requête.
Je voudrais soit via javascript, soit via PHP que l'utilisateur puisse envoyer
par mail cette page HTML lorsqu'il clique sur un bouton. Ceci sans forcément
l'avoir enregistrée avant.
Je sais comment envoyer un mail avec pièce jointe via PHP. Le problème est que
je ne sais pas comment enregistrer cette page HTML côté serveur.
Je sais comment faire que l'utilisateur via javascript enregistre cette page
sur son micro, mais ja ne sais pas comment l'envoyer en pièce jointe ou dans le
corps d'un mail.

Merci pour votre aide
Olivier Miakinen
2009-04-09 09:28:06 UTC
Permalink
Post by turtly
J'apporte des précisions à mon premier message.
La page chargée par l'utilisateur et à envoyer par mail est une page HTML qui
contient dans un tableau des données issues d'Oracle.
Une première page PHP passe des requêtes sql.
Un include permet d'afficher la page HTML que l'utilisateur pourra envoyer par
mail.
Cette page est mise à jour lors de son chargement grâce à des variables
alimentées par les données retournées par la requête.
Je voudrais soit via javascript, soit via PHP que l'utilisateur puisse envoyer
par mail cette page HTML lorsqu'il clique sur un bouton. Ceci sans forcément
l'avoir enregistrée avant.
Voici une idée : <http://www.php.net/ob_start>.

<?php
ob_start();
?>
... ici le code actuel de la page en question ...
<?php
if (isset($_REQUEST['mail_it']) && ...) {
$html = ob_get_contents();
mail(..., $html, ...);
ob_end_clean();
include "mail_was_sent.php";
} else {
ob_end_flush();
}
?>

Bien sûr, il faut faire tous les contrôles qui vont bien avant d'envoyer
le message. À ce propos voici une page très intéressante (malgré les
fautes d'orthographe) que Michael Denis vient de signaler sur fciwa :
<http://www.phpsecure.info/v2/article/MailHeadersInject.php>.

Il faut aussi rajouter le « ob_end_flush() » avant d'éventuels appels à
exit() en cours de programme.

Cordialement,
--
Olivire Miakinen
Continuer la lecture sur narkive:
Loading...