Envoie sauvegarder de ma base avec pièce jointe zip

Messages postés
4
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
4 juin 2010
- - Dernière réponse : jihednond
Messages postés
144
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
- 7 juin 2010 à 18:08
bonjour, je suis débutant en programation et je viens réaliser un facturier. Afin de sauvegarder régulièrement ma base de donné j'utilise un scripte qui sauvegarde la base au format zip en local sur mon pc (jusque là tout fnctionne) et qui envoie une copie de ce fichier zip par mail à une adresse e mon choix mais là j'ai un problème....après envois le fichier zip reste désespèrément vide.

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ici les parametres pour la connexion a modifier
$host="localhost"; // host =
$user="root"; // login de la base
$passe="mot de passe"; // password
$base="facturier"; // nom de la base
$mailTo="email";
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

$action = @$_GET["action"];

if($action=="oui") {

function Compacter($base) { // Permet de compacter la base avant de lancer toute la procédure
$tables = mysql_list_tables($base);
while ($enr = mysql_fetch_row($tables))
@mysql_query("OPTIMIZE TABLE ".$enr[0]);
}

if($connexion = @mysql_connect($host,$user,$passe)) { // on effectue la connexion

Compacter($base);

$select_base=@mysql_select_db($base); // Selection de la base de données

// CREATION DU FICHIER

$fname = "backup_".$base.".sql";
$f2 = fopen($fname,"w");

fputs($f2,"# Sauvegarde de base de données\n");
fputs($f2,"# Batch par Florent MARIE aka fmarie - 2005\n\n");
$tables = mysql_list_tables($base);
while ($enr = mysql_fetch_row($tables)) {
fputs($f2,"# Les tables traitées sont ".$enr[0].";\n");
}
fputs($f2,"\n");
$tables = mysql_list_tables($base);
while ($enr = mysql_fetch_row($tables)) {
fputs($f2,"DELETE FROM $enr[0];\n");
}

$tables = mysql_list_tables($base);
while ($enr = mysql_fetch_row($tables)) {
$res = mysql_query("SELECT * FROM $enr[0]");
// le nombre de champs de la table
$champs = mysql_num_fields($res);
// Pour chaque ligne
while($val=mysql_fetch_array($res)) {
$tmp = "INSERT INTO ".$enr[0]." VALUES(";
$c=0;
// Pour chaque champ
while($c < $champs) {
// Une virgule sauf au premier
if($c>0) $tmp .= ", ";
// Le contenu du champ
$tmp .= "'".AddSlashes($val[$c])."'";
$c++;
}
$tmp .= ");\n";
// Ecrit la ligne
fputs($f2,$tmp);
}
}
fclose($f2);



// ZIP DU FICHIER

include("zip.lib.php");

// Compresse le fichier
$zipfile = new zipfile();
$zipfile -> addFile(implode("",file($fname)), $fname);
// Sauve le zip
$f2=fopen($fname.".zip","w");
fputs($f2,$zipfile -> file());
fclose($f2);

// NETTOYAGE

// Détruit le fichier initial
// mais laisse le zip au cas où...
unlink($fname);


// ENVOI LE ZIP EN PJ


include("mail.php");
// sendmail("","","",$_POST["mail"],"","","Sauvegarde de la base $base","",$fname.".zip");
sendmail("","","",$_POST["mail"],"","","Sauvegarde de la base $base","",$fname".zip");

?>
Vérifiez votre mail.

[save.php Retour]

Merci



Entrez votre mail pour recevoir la sauvegarde :








le fichier include pour l'envoie du mail

require "mime_mail.class.php";
function sendMailpj($mailFrom,$mailTo,$sujet,$body,$pj) {
$mail = new mime_mail();
$mail->to = $mailTo;
$mail->subject = $sujet;
$mail->body = $body;
$mail->from = $mailFrom;
$entetedate = date("D, j M Y H:i:s -0500");
$entetemail = "X-Mailer: PHP/" . phpversion() . "\n" ;
$entetemail .= "Date: $entetedate";
$mail->headers = "$entetemail";
if(strpos($pj,",")) $tb = explode(",",$pj);
else $tb = explode(";",$pj);
for($i=0;$iattach("$tmp", "$tmp2");
}
}
$mail->send();
}


function sendMail($nomFrom,$mailFrom,$nomTo,$mailTo,$CC,$BCC,$sujet,$body,$pj) {
if($pj) return sendMailpj($mailFrom,$mailTo,$sujet,$body,$pj);
$tete = "From: ".$nomFrom." \n";
$tete .= "Reply-To: ".$mailFrom."\n";
$temp ""; $temp2 "";
if(strpos($CC,"@")) {
if(strpos($CC,",")) $tb = explode(",",$CC);
else $tb = explode(";",$CC);
for($i=0;$i
Afficher la suite 

1 réponse

Messages postés
144
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
0
Merci
bonjour,

vous voulez utiliser PHP pour générer une sauvegarde de votre base de données MySQL :

<?php
include 'config.php';  // Paramètre de connexion
include 'opendb.php';  // Connexion au serveur de base de données

$tableName  = 'usager';
$backupFile = 'backup/usager.sql';
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query);

include 'closedb.php';  // Fermeture de la connexion au serveur
?>



Afin de restaurer une fichier de sauvegarde, exécuter la requete suivante LOAD DATA INFILE grâce au script php suivant :

<?php
include 'config.php';  // Paramètre de connexion
include 'opendb.php';  // Connexion au serveur de base de données

$tableName  = 'usager';
$backupFile = 'backup/usager.sql';
$query      = "LOAD DATA INFILE '$backupFile' INTO TABLE $tableName";
$result = mysql_query($query);

include 'closedb.php';  // Fermeture de la connexion au serveur
?>

Commenter la réponse de jihednond