1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
<?
//Informations : ce fichier contient les fonctions utilisées par le script autosauve
//Pour toute information, éditer le fichier index.php contenu dans le même répertoire que ce fichier
//fonction mail
function mail_attach($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: 32bit\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 ) );
$fp = fopen($fichier, "rb");
$buff = fread($fp, filesize($fichier));
fclose($fp);
$attachement .= chunk_split(base64_encode($buff));
$attachement .= "\n\n\n------=$limite\n";
return mail($to, $sujet, $texte.$attachement, "Reply-to:$reply\nFrom:$from\n".$mail_mime);
}
function backupDatabase($link , $db_name , $structure , $donnees , $format , $insertComplet="", $filename){
/* Parametres :
* $link : lien vers la base de donnees
* $db_name : nom de la base de donnees
* $structure : true => sauvegarde de la structure des tables
* $donnees : true => sauvegarde des donnes des tables
* $format : format des donnees ('INSERT' => des clauses SQL INSERT,
* 'CSV' => donnees separees par des
virgules)
* $insertComplet (optionnel) : true => clause INSERT avec nom des
champs
*/
if (!is_resource($link))
return false;
mysql_select_db($db_name);
$format = strtoupper($format);
//$filename = "backup_".$db_name."_".date("Y_m_d").".sql";
$fp = fopen($filename, "w");
if (!is_resource($fp))
return false;
// liste des tables
$res = mysql_list_tables($db_name, $link);
$num_rows = mysql_num_rows($res);
$i = 0;
while ($i < $num_rows)
{
$tablename = mysql_tablename($res, $i);
if ($structure === true)
{
fwrite($fp, "DROP TABLE IF EXISTS `$tablename`;\n");
// requete de creation de la table
$query = "SHOW CREATE TABLE $tablename";
$resCreate = mysql_query($query);
$row = mysql_fetch_array($resCreate);
$schema = $row[1].";";
fwrite($fp, "$schema\n\n");
}
if ($donnees === true)
{
// les données de la table
$query = "SELECT * FROM $tablename";
$resData = mysql_query($query);
if (mysql_num_rows($resData) > 0)
{
$sFieldnames = "";
if ($insertComplet === true)
{
$num_fields = mysql_num_fields($resData);
for($j=0; $j < $num_fields; $j++)
{
$sFieldnames .= "`".mysql_field_name($resData, $j)."`, ";
}
$sFieldnames = "(".substr($sFieldnames, 0, -1).")";
}
$sInsert = "INSERT INTO `$tablename` $sFieldnames values ";
while($rowdata = mysql_fetch_assoc($resData))
{
$lesDonnees = "<guillemet>".implode("<guillemet>,
<guillemet>", $rowdata)."<guillemet>";
$lesDonnees = str_replace("<guillemet>", "'",
addslashes($lesDonnees));
if ($format == "INSERT")
{
$lesDonnees = "$sInsert($lesDonnees);";
}
fwrite($fp, "$lesDonnees\n");
}
}
}
$i++;
}
fclose($fp);
}
?> |
Partager