Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: cheztom le le 03-09-2010 a 09:21:17

Titre: [Résolu] fichier txt envoyé par mail(php)
Posté par: cheztom le le 03-09-2010 a 09:21:17

Bonjour,
j'ai le code suivant qui me permet de récupérer des info sur le visiteur de ma page: Date, Heure, Ip du visiteur, la chaine de caractère dans url ect..., et je voudrai envoyer ces info par email (php) à chaque fois que le visiteur passe sur le script


Code:

function detectip()
{
// Récupération de l'ip du visiteur
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip =$_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;

}


$param = parse_url($_SERVER['REQUEST_URI']);
$Path = $param["path"]; // le chemin du fichier ex. test/fichier.php
$Query = $param["query"]; // toutes les variable passées en requête


// ouverture du fichier
$fd = fopen ("log.txt" ,"a+");

// récupération de la date et de l'heure
$date = date ("d-m-Y");
$heure = date ("H:i:s");

$ip = detectip();

fwrite ($fd,"$date / $heure / $ip \r\n");// écriture dans le fichier
fwrite ($fd,"$Query / $Path \r\n");

// Fermeture du fichier
fclose ($fd);

Titre: Re:fichier txt envoyé par mail(php)
Posté par: Pad le le 03-09-2010 a 18:52:59

Rajoute cela après ton fclose et change ce qu'il y a changer :


Code:
   //EMAIL
   $mailTo="destinataire@free.fr";
   $headerMail= "Content-Type:text/html;charset=iso-8859-1\n";//permet d'envoyer les message au format html
   $headerMail.= "Content-Transfer-Encoding: 8bit\n";//permet d'envoyer les message au format html
   $headerMail.="expediteur@free.fr";
   $textMail="TXTDELEMAIL";
   mail($mailTo,"TITRE_EMAIL",$textMail,$headerMail);

Titre: Re:fichier txt envoyé par mail(php)
Posté par: cheztom le le 03-09-2010 a 19:33:55

j'ai pa encore test, mais si je veux les informations des fonction $date, $heure ect..., il faut que je l'ai récupère non? ou le fichier txt
pour être plus claire, le code que tu me donne récupère t'il tout les infos que j'enregistre dans fichier txt?

Titre: Re:fichier txt envoyé par mail(php)
Posté par: Krash le le 04-09-2010 a 01:24:34

Comme il l'a dit, change ce qu'il y a a changer.

dans la ligne $textMail="TXTDELEMAIL"; tu remplaces TXTDELEMAIL par le contenu que tu veux avec tes variables de date, ip etc

par exemple :

$textMail = 'date : ' . $date . '
heure : ' . $heure . '
ip : ' . $ip;

Le fait de retourner à la ligne permet d'avoir des retour à la ligne dans ton mail ensuite

Titre: Re:fichier txt envoyé par mail(php)
Posté par: cheztom le le 04-09-2010 a 02:12:45

nikel, pile poile ce que je voulait ;D

entre temps, j'ai trouvé ça qui permet d'envoyer un mail avec pièce joint,
super pratique pour up loader un fichier dans un mail

Un grand merci ;)
a+

Code:
$destination = "Destinataire@Domaine.com; // Destinataire du mail
$sujet = "Sujet du message"; // sujet du mail

$headers= "MIME-Version: 1.0\n"; // Les headers pour un mail multiparts
$headers.= "From: \"Votre nom\" <Votre_mail@Domaine.com>\n"; // Nom et expéditeur du mail
$headers.= "Content-type: multipart/mixed;\n";

$limite = '_parties_'.md5(uniqid (rand())); // Chaine permettant de différencier les différentes parties du mail
$headers.= " boundary=\"----=$limite\"\n\n";

$texte = "------=$limite\n"; // Première partie, corps du mail en HTML
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Oh! un mail^^</BODY></HTML>";

$fichier = 'Fichier.txt'; // Traitement pour attacher une PJ, D'abord on lit le fichier
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
$attachement .= "Content-Type: text/plain; name=\"Fichier.txt\"\n"; // Dans mon exemple, il s'agit d'un fichier txt, il faut mettre le bon mime type et le bon nom de fichier
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"Fichier.txt\"\n\n";
$attachement .= chunk_split(base64_encode($contenu)); // Ca y est on joint le fichier en l'encodant en base 64

mail($destination, $sujet, $texte.$attachement, $headers); // enfin on envoi le mail

Titre: Re:fichier txt envoyé par mail(php)
Posté par: Krash le le 04-09-2010 a 11:35:55

tu peux aussi utiliser la class phpmailer ou d'autres, tout est déjà prévu pour envoyer simplement des mails
Il y a aussi un petit tuto sur l'utilisation ici
http://stephaneey.developpez.com/tutoriel/php/phpmailer/

Titre: Re:fichier txt envoyé par mail(php)
Posté par: cheztom le le 04-09-2010 a 11:47:09

Super le tuto, encore merci ;D

par contre qu'elle est l'avantage (ou pas) de codé la pj en base64?


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.