begin process at 2012 05 28 22:27:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

envoie sauvegarder de ma base avec pièce jointe zip


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

envoie sauvegarder de ma base avec pièce jointe zip

vendredi 4 juin 2010 à 22:00:24 | envoie sauvegarder de ma base avec pièce jointe zip

jmsch57

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.
Code PHP :
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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.<br> 
      <a href="save.php">Retour</a><br> 
      Merci 
      <?php
   }


} else { ?>

   <form action="save.php?action=oui" method="post"> 
      Entrez votre mail pour recevoir la sauvegarde :
      <input name="mail" type="text"> 
      <br> 
      <input name="send" type="submit" value="send"> 
   </form> 

<?php } ?> 


le fichier include pour l'envoie du mail

Code PHP :
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;$i<sizeof($tb);$i++) { 
        if(file_exists($tb[$i])) { 
            $tmp = fread(fopen($tb[$i], "r"), filesize($tb[$i])); 
            $tmp2 = explode("/",$tb[$i]); $tmp2 = $tmp2[sizeof($tmp2)-1]; 
            $mail->attach("$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." <".$mailFrom.">\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<sizeof($tb);$i++) { 
            if($i==0) $temp = $tb[$i]; 
            else $temp .= ",".$tb[$i]; 
        } 
        $tete .= "Cc: ".$temp."\n"; 
    } 
    if(strpos($BCC,"@")) { 
        if(strpos($BCC,",")) $tb = explode(",",$BCC); 
        else $tb = explode(";",$BCC); 
        for($i=0;$i<sizeof($tb);$i++) { 
            if($i==0) $temp2 = $tb[$i]; 
            else $temp2 .= ",".$tb[$i]; 
        } 
    } elseif($BCC && file_exists($BCC)) { 
        $fichlst = file($BCC); 
        while(list($cle,$val) = each($fichlst)) { 
            if($temp2) $temp2 .= ",".trim($val); 
            else $temp2 = trim($val); 
        } 
    } 
    if($temp2) $tete .= "Bcc: ".$temp2."\n"; 
    if(strtolower(substr($body,0,6)) == "<html>")  
        $tete .= "Content-Type: text/html; charset=iso-8859-1\n"; 
    return mail($nomTo." <".$mailTo.">",$sujet,$body,$tete); 
} 
?>
lundi 7 juin 2010 à 18:08:33 | Re : envoie sauvegarder de ma base avec pièce jointe zip

jihednond



bonjour,

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

Code PHP :
<?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 :

Code PHP :
<?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
?>




Cette discussion est classée dans : mail, base, mysql, tables, zip


Répondre à ce message

Sujets en rapport avec ce message

Contenu de la base mysql [ par bonjovi51 ] S@lut Ô programmeurs, j'ai besoin de votre aide. J'aimerai savoir si il est de possible d'afficher les tables de ma base mysql (et non pas le contenu Interroger 2 tables d'une meme base (php+mysql) [ par alex1025 ] Bonjour,Je vous expliqueje veux ajouter un système d'annonce qui est reservé aux membressauf que j'ai 2 types de membres rangées dans 2 tables différe mySql => Exporter les scripts des tables d'une base [ par nitrique ] Bonjour @ tous,J'aimerais (comme le dit le titre) exporter les scripts des tables d'une base sous mySql (avoir les: insert into).Un peu comme le fait Taille des tables et d'une base de donnée MYSQL [ par cyberastuces ] Bonjour a tous,je cherche comment afficher la taille de toutes mes tables et ensuite la taille de la base de donnée MySQL. Merci d'avance pour votre a comment rercuperer des mail contenue dasn une base mysql avec outook ????????????? [ par fredericmaill ] bonjour !!j'aimerais recuper les mail de mon serveur imap, mails qui sont enregistrer dans une base mysql.je voudrais les recupere directement dans ou comparer deux tables de, mysql et informix [ par patass ] Bonjour à tous, Je voudrais comparer les valeurs de deux tables; une issue d'une base informix et l'autre d'une base mysql; Je bute sur la méthode à e Formulaire avec fichier à enregistrer dans base de données. [ par yukisan ] Bonjour à tous, Donc voilà je me heurte à un problème, je suis en train de concevoir un formulaire permettant l'inscription à un concours. Les part requête php sur deux bases [ par bl75013 ] bonsoir, je débute, merci de votre compréhension j'ai deux tables je souhaite faire une requête sur ces 2 tables si dans une de ces tables aucuns rens afficher le contenu d'un base mysql en faisant une connection à dreaweaver cs3 [ par armelkoudou ] bonjour très cher frère cela fait deux semaines que je trottine sur une action que je maitrise peu . en faite j'achève le site web d'un ami, mais le p probléme dans le script qui insere un pdf dans un base de données mysql [ par henni20 ] bjr j'ai écrie un script en suivant des tuto pour insérer des fichiers pdf dans ma base de données mysql . le script insère les pdf dans la base dans


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales