Envoyer une page php complete par email [Résolu]

Signaler
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015
-
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015
-
bonjour a vous tous,

j ai fais des recherche un peu partout et je ne trouve pas grand chose , c 'est pour ca que je viens demander votre aide.

voila, je cree une page qui s appel "imprime.php" qui me sert a imprimer la page sans bouton , sans liens ...

et j aimerais l envoyer par email.

$datamail='tout le code html de la page avec les changement de cote et double cote';
mail([mailto:xxxx@xx.xx,sujet,$datamail xxxx@xx.xx,sujet,$datamail]);

je recois la page avec la mise en page , mais les requetes qui me serve a remplir cette page "imprime.php" ne s execute pas avant l envoi.

j aimerais connaitre si il y a moyen d'envoyer cette page par mail avec les donnees de replissage fait par des requetes.
pour que la personne qui la recoit, n est rien d autre a afire que de l imprimer chez elle.

du style recuperer la source de la page,transformer en pdf,executer les requetes avant l envoi..je ne sais pas trop ou me lancer

je vous remercie d 'avance de vos expliquations et de votre interet a mon souci.

6 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Tu peux l'envoyer en HTML, plutôt qu'en PDF, si c'est pas vital pour toi.

Pour cela, le mieux est d'exécuter ton script "imprime.php" depuis le script qui envoie le mail.
ob_start();
require('imprime.php');
$datamail=ob_get_end();

Si j'ai répondu à côté, c'est que j'ai mal compris...
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Effectivement, tu te trompes... Y'a un petit truc que tu confonds.

Les paramètres que tu passes dans l'url ne doivent être utilisés que quand la page est appelée... via l'url.

Quand tu inclus un fichier (include, require, include_once, require_once), il faut spécifier le nom du fichier sur le serveur, je veux dire, sur l'ordinateur.
Les paramètres dans l'url servent à passer des valeurs à un script qui n'est pas inclus, et auquel on accède directement via le navigateur.
Si tu inclus un fichier, les variables qui sont utilisées dedans sont accessibles de la même manière que si le script inclus faisait partie intégrante du script principal, le script appelant.

Je te recommande de lire la doc sur la portée des variables : http://www.php.net/manual/fr/language.variables.scope.php

Vala :)

Donc pour conclure, si ton script imprime.php utilise une variable nomée $idinter, il te suffit de déclarer cette variable dans le script appelant, avant le require, ce qui semble être le cas dans ton script :

require("imprime.php");
C'est tout. $idinter ayant déjà une valeur, elle sera utilisée dans le script imprime.php.
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015

bonsoir ,
alors les explications dites ci dessus fonctionnent , le souci que j avais c'etait le passage d un nom et d un mot de passe , j ai donc utilise la fonction CURL,qui permet d y ajouter facilement le login et le mot de passe.
je recois par mail la totalité du code html par email ,maintenat le souci c'est que je recois le mail qu' en code et pas en html

je vous met le code qui fonctionne:
<?php
$idinter=$_GET['idinter'];
$url="http://xxxxxxxxxxxxxxxxxxxx/imprime.php?idinter=".$idinter;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'login:motdepasse');
$results = curl_exec($ch);
mail("[mailto:xxxxxxxxx@xxxxxx.xx","essai xxxxxxxxx@xxxxxx.xx","essai] ",$results);
?>

resultat dans le mail:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title></head>

   

..............................................................

&nbsp;

</html>

maintenat je vais voir pour recevoir le mail en html,si quelqu un a une idee je suis preneur.

merci encore de votre interet.
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015

merci pour ta reponse ,mais ca ne marche pas :
je pense que c'est moi qui se trompe

j aimerais un truc du style
$inter= $_get['idinter'];


ob_start();
require("imprime.php?idinter='.$idinter."");
$datamail=ob_get_end();
mail(xxxx@xxxxx.xx,essai,$datamail);

mais j ai une erreur
Warning : main(imprime.php?idinter =$idinter) [function.main]: failed to open stream: No such file or directory
et
Fatal error: main() [function.require]: Failed opening required 'imprime.php?idinter=$idinter' (include_path='/mnt/....xxxxxxx........:.:/usr/php4/lib/php')

voila
j espere que vous aller pouvoir m aider avec ca

merci d avanace
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015

merci pour ta reponse ,mais ca ne marche pas :
je pense que c'est moi qui se trompe

j aimerais un truc du style
$inter= $_get['idinter'];


ob_start();
require("imprime.php?idinter='.$idinter."");
$datamail=ob_get_end();
mail(xxxx@xxxxx.xx,essai,$datamail);

mais j ai une erreur
Warning : main(imprime.php?idinter =$idinter) [function.main]: failed to open stream: No such file or directory
et
Fatal error: main() [function.require]: Failed opening required 'imprime.php?idinter=$idinter' (include_path='/mnt/....xxxxxxx........:.:/usr/php4/lib/php')

voila
j espere que vous aller pouvoir m aider avec ca

merci d avanace
Messages postés
66
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
6 mars 2015

bon j ai trouvé c'etait une histoire de MIME pour l email,
j ai du rajouter le formatage du mail pour que ca marche:

$Destinataire = "[mailto:xxxxxxxx@xxxxxxxx.xx xxxxxxxx@xxxxxxxx.xx]";
$Sujet = "essai";
$From  = "From:xxxxxxx@xxxxxxx.xx\n";
$From .= "MIME-version: 1.0\n";
$From .= "Content-type: text/html; charset= iso-8859-1\n";
...............
le code CURL
..............
if (mail($Destinataire,$Sujet,$results,$From)){echo "l email a ete envoye";}

voila et comme ca ca marche impeccable.

j espere que ca servira a d autre.

merci a vous d 'avoir repondu aussi vite,merci au site (c'est super bien fait pour des debutant comme moi)

merci.