Hello, je suis pas sur d'avoir tout compris ce que tu demandes, mais quoi qu'il en soit ce bout de code peut t'aider: il s'agit d'un code sans fioriture pour sauver et mailer une bdd...
<?php
function mail_attachement($to , $sujet , $message , $fichier , $typemime , $nom , $reply , $from){
$limite = "_parties_".md5(uniqid (rand()));
$mail_mime = "Date: ".date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/mixed;\n";
$mail_mime .= " boundary=\"----=$limite\"\n\n";
//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
$texte = "This is a multi-part message in MIME format.\n";
$texte .= "Ceci est un message est au format MIME.\n";
$texte .= "------=$limite\n";
$texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$texte .= "Content-Transfer-Encoding: 7bit\n\n";
$texte .= $message;
$texte .= "\n\n";
//le fichier
$attachement = "------=$limite\n";
$attachement .= "Content-Type: $typemime; name=\"$nom\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"$nom\"\n\n";
$fd = fopen( $fichier, "r" );
$contenu = fread( $fd, filesize( $fichier ) );
fclose( $fd );
$attachement .= chunk_split(base64_encode($contenu));
$attachement .= "\n\n\n------=$limite\n";
mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom: $from\n".$mail_mime);
}
$text = 'Salut, voici le matos que tu voulais';
$fichier = 'db.sql';
$typemime = 'application/text';
$nom = 'sauvegarde_db.sql';
$reply = 'mlk7934@hotmail.com';
$from = 'mlk7934@hotmail.com';
passthru('mysqldump -u username dbname -ppasswd > db.sql');
mail_attachement('mlk7934@hotmail.com' , 'Sauvegarde DB' , $message , $fichier , $typemime , $nom , $reply , $from);
?>
username est le nom d'utilisateur (ne pas oublier le -u), dbname le nom de la base que tu veux sauver et passwd (ne pas oublier le -p) est le mot de passe pour mysql. Oublie pas qu'il faut pouvoir ecrire, donc etre dans un dossier avec un chmod 703
Le probleme connu est que parfois des personnes ont un fichier vide (sosofi pourrait t'en dire qqch!
http://phpcs.com/forum.v2.aspx?ID=508416) et aucune idee pourquoi ca ne marche pas chez ces personnes (si quelqu'un a une idee?).
Chez moi tout beigne.
Il faut par contre que ton hebergeur autorise la fonction passthru.
Enjoy, ++