Dump mysql fichier dans fichier pour envoi mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Dump mysql fichier dans fichier pour envoi mail

par regne » 10 janv. 2007, 13:22

Ca ma virer les erreurs, merci

Par contre ca ne change rien au niveau de l'ecritutre dans mon fichier .txt

par jojolapine » 10 janv. 2007, 13:11

il faut que tu remplaces les occurences de $HTTP_USER_AGENT par $_SERVER['HTTP_USER_AGENT']

par regne » 10 janv. 2007, 13:10

c'est celle la :
if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {

par jojolapine » 10 janv. 2007, 13:05

quelle est la ligne 226 ?

Dump mysql fichier dans fichier pour envoi mail

par regne » 10 janv. 2007, 13:00

Bonjour,

j'assaye de faire une sauvegarde de ma bdd, j'ai pris phpmydump, que j'ai essayer d'adapter, mais bon je galere un peu.

j'en suis la
<? 
// MySQL hostname
$host = "";
//MySQL basename
$dbname ="";
// MySQL user
$uname = "";
// MySQL password
$upass ="";
// set FALSE to get table content
$structure_only=false;
//set TRUE to to get file with dump
$output = false;


//////////////////////////////////////////////////
//
//  phpMyDump v 1.0
//
//  check for new version
//  http://szewo.com/php/mydump/eng
//
// some functions are adapted from the phpMyAdmin 
//
//  do not change anything below this line
//////////////////////////////////////////////////
function mysqlbackup($host,$dbname, $uid, $pwd, $structure_only, $crlf) {  
  
 $con=@mysql_connect("localhost",$uid, $pwd) or die("Could not connect");  
 $db=@mysql_select_db($dbname,$con) or die("Could not select db");

 // here we check MySQL Version
 $result=@mysql_query("SELECT VERSION() AS version"); 
 if ($result != FALSE && @mysql_num_rows($result) > 0) {
  $row   = @mysql_fetch_array($result);
  $match = explode('.', $row['version']);
 } else {
  $result=@mysql_query("SHOW VARIABLES LIKE \'version\'"); 
  if ($result != FALSE && @mysql_num_rows($result) > 0){
   $row   = @mysql_fetch_row($result);
   $match = explode('.', $row[1]);
  }
 }

 if (!isset($match) || !isset($match[0])) {
  $match[0] = 3;
 }
 if (!isset($match[1])) {
  $match[1] = 21;
 }
 if (!isset($match[2])) {
  $match[2] = 0;
 }
 if(!isset($row)) {
  $row = '3.21.0';
 }

 define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2])));
 define('MYSQL_STR_VERSION', $row['version']);
 unset($match);

 $sql = "# MySQL dump by phpMyDump".$crlf;
 $sql.= "# Host: $host Database: $dbname".$crlf;
 $sql.= "----------------------------".$crlf;
 $sql.= "# Server version: ".MYSQL_STR_VERSION.$crlf;

 $sql.= $crlf.$crlf.$crlf;     
 out(1,$sql);
 $res=@mysql_list_tables($dbname);  
 $nt=@mysql_num_rows($res);  

 for ($a=0;$a<$nt;$a++) {  
  $row=mysql_fetch_row($res);  
  $tablename=$row[0];

  $sql=$crlf."# ----------------------------------------".$crlf."# table structure for table '$tablename' ".$crlf;
  // For MySQL < 3.23.20  
  if (MYSQL_INT_VERSION >= 32321) {
   $result=mysql_query("SHOW CREATE TABLE $tablename");
   if ($result != FALSE && mysql_num_rows($result) > 0) {
    $tmpres = mysql_fetch_array($result);
    $pos           = strpos($tmpres[1], ' (');
    $tmpres[1]     = substr($tmpres[1], 0, 13)
                     . $tmpres[0]
                     . substr($tmpres[1], $pos);
				 
    $sql .= $tmpres[1].";".$crlf.$crlf;
   }
   mysql_free_result($result);
  } else { 
   $sql.="CREATE TABLE $tablename(".$crlf;  
   $result=mysql_query("show fields  from $tablename",$con);  

   while ($row = mysql_fetch_array($result)) {
    $sql .= "  ".$row['Field'];
    $sql .= ' ' . $row['Type'];
    if (isset($row['Default']) && $row['Default'] != '') {
     $sql .= ' DEFAULT \'' . $row['Default'] . '\'';
    }
    if ($row['Null'] != 'YES') {
     $sql .= ' NOT NULL';
    }
    if ($row['Extra'] != '') {
     $sql .= ' ' . $row['Extra'];
    }
    $sql .= ",".$crlf;
   }
 
   mysql_free_result($result);
   $sql = ereg_replace(',' . $crlf . '$', '', $sql);
 
   $result = mysql_query("SHOW KEYS FROM $tablename");
    while ($row = mysql_fetch_array($result)) {
     $ISkeyname    = $row['Key_name'];
     $IScomment  = (isset($row['Comment'])) ? $row['Comment'] : '';
     $ISsub_part = (isset($row['Sub_part'])) ? $row['Sub_part'] : '';
     if ($ISkeyname != 'PRIMARY' && $row['Non_unique'] == 0) {
      $ISkeyname = "UNIQUE|$kname";
     }
     if ($IScomment == 'FULLTEXT') {
      $ISkeyname = 'FULLTEXT|$kname';
     }
     if (!isset($index[$ISkeyname])) {
      $index[$ISkeyname] = array();
     }
     if ($ISsub_part > 1) {
      $index[$ISkeyname][] = $row['Column_name'] . '(' . $ISsub_part . ')';
     } else {
      $index[$ISkeyname][] = $row['Column_name'];
     }
    } 
    mysql_free_result($result);
    
    while (list($x, $columns) = @each($index)) {
     $sql     .= ",".$crlf;
     if ($x == 'PRIMARY') {
      $sql .= '  PRIMARY KEY (';
      } else if (substr($x, 0, 6) == 'UNIQUE') {
      $sql .= '  UNIQUE ' . substr($x, 7) . ' (';
     } else if (substr($x, 0, 8) == 'FULLTEXT') {
      $sql .= '  FULLTEXT ' . substr($x, 9) . ' (';
     } else {
      $sql .= '  KEY ' . $x . ' (';
     }
     $sql     .= implode($columns, ', ') . ')';
    } 
    $sql .=  $crlf.");".$crlf.$crlf;
  
  } 
  out(1,$sql);
 if ($structure_only == FALSE) {
  // here we get table content
  $result = mysql_query("SELECT * FROM  $tablename");
  $fields_cnt   = mysql_num_fields($result);
  while ($row = mysql_fetch_row($result)) {
   $table_list     = '(';
   for ($j = 0; $j < $fields_cnt; $j++) {
    $table_list .= mysql_field_name($result, $j) . ', ';
   }
   $table_list = substr($table_list, 0, -2);
   $table_list     .= ')';

   $sql = 'INSERT INTO ' . $tablename 
                                   . ' VALUES (';
   for ($j = 0; $j < $fields_cnt; $j++) {
    if (!isset($row[$j])) {
     $sql .= ' NULL, ';
    } else if ($row[$j] == '0' || $row[$j] != '') {
     $type          = mysql_field_type($result, $j);
     // a number
     if ($type == 'tinyint' || $type == 'smallint' || $type == 'mediumint' || $type == 'int' ||
                        $type == 'bigint'  ||$type == 'timestamp') {
      $sql .= $row[$j] . ', ';
     }
     // a string
     else {
      $dummy  = '';
      $srcstr = $row[$j];
      for ($xx = 0; $xx < strlen($srcstr); $xx++) {
       $yy = strlen($dummy);
       if ($srcstr[$xx] == '\\')   $dummy .= '\\\\';
       if ($srcstr[$xx] == '\'')   $dummy .= '\\\'';
       if ($srcstr[$xx] == "\x00") $dummy .= '\0';
       if ($srcstr[$xx] == "\x0a") $dummy .= '\n';
       if ($srcstr[$xx] == "\x0d") $dummy .= '\r';
       if ($srcstr[$xx] == "\x1a") $dummy .= '\Z';
       if (strlen($dummy) == $yy)  $dummy .= $srcstr[$xx];
      }
      $sql .= "'" . $dummy . "', ";
     }
    } else {
     $sql .= "'', ";
    } // end if
   } // end for
   $sql = ereg_replace(', $', '', $sql);
   $sql .= ");".$crlf;
   out(1,$sql);   

  } 
  mysql_free_result($result);
  } 
 }
 return;  
}  

function define_crlf() {
 global $HTTP_USER_AGENT;
 $ucrlf = "\n";
 if (strstr($HTTP_USER_AGENT, 'Win')) {
  $ucrlf = "\r\n";
 }
 else if (strstr($HTTP_USER_AGENT, 'Mac')) {
  $ucrlf = "\r";
 }
 else {
  $ucrlf = "\n";
 }
 return $ucrlf;
} 

//print the result
function out($fptr,$s)   { 
 echo $s; 
} 

if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'OPERA');
} else if (ereg('MSIE ([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'IE');
} else if (ereg('OmniWeb/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'OMNIWEB');
} else if (ereg('Mozilla/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'MOZILLA');
} else if (ereg('Konqueror/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'KONQUEROR');
} else {
 define('USER_BROWSER_AGENT', 'OTHER');
}

  $mime_type = (USER_BROWSER_AGENT == 'IE' || USER_BROWSER_AGENT == 'OPERA')
                   ? 'application/octetstream'
                   : 'application/octet-stream';

				   
$now = gmdate('D, d M Y H:i:s') . ' GMT';
$filename = $dbname;
$ext = "sql";
$crlf = define_crlf();
// Send headers
if ($output == true) {
 header('Content-Type: ' . $mime_type);
 header('Expires: ' . $now);
 // lem9 & loic1: IE need specific headers
 if (USER_BROWSER_AGENT == 'IE') {
  header('Content-Disposition: inline; filename="' . $filename . '.' . $ext . '"');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
 } else {
  header('Content-Disposition: attachment; filename="' . $filename . '.' . $ext . '"');
  header('Pragma: no-cache');
      
 }
 mysqlbackup($host,$dbname,$uname,$upass,$structure_only,$crlf);
} 
 else {
 $sauvegarde=htmlspecialchars(mysqlbackup($host,$dbname,$uname,$upass,$structure_only,$crlf));
 echo $sauvegarde;
 
 //creation des variables pour ecriture fichier text

 $date= date("d-m-y").'-'.date("H:i");
 
//ecriture dans fichier texte

touch("video_$date.txt"); // Ceci créera le fichier texte nom_du_fichier.txt
$fp = fopen("video_$date.txt","r+"); // 1.On ouvre le fichier en lecture/écriture
fseek($fp,0);                     // 4.On se place en début de fichier
fputs($fp, "$sauvegarde");
fclose($fp);                      // 6.On ferme le fichier


}



?>
quand j'ouvre le script dans internet, je me retrouve avec :

Notice: Undefined variable: HTTP_USER_AGENT in /var/www/vhosts/httpdocs/dump/phpmydump.php on line 226

Notice: Undefined variable: HTTP_USER_AGENT in /var/www/vhosts/httpdocs/dump/phpmydump.php on line 228

Notice: Undefined variable: HTTP_USER_AGENT in /var/www/vhosts//httpdocs/dump/phpmydump.php on line 230

Notice: Undefined variable: HTTP_USER_AGENT in /var/www/vhosts/httpdocs/dump/phpmydump.php on line 232

Notice: Undefined variable: HTTP_USER_AGENT in /var/www/vhosts/httpdocs/dump/phpmydump.php on line 234

+ l'affichage de ma bdd sans aucune mise en forme, avec des "\r\n" un peu partout...
et impossible d'ecrire la sauvegarde dans mon fichier texte.
je peut ecrire d'autres chose, d'autres variable mais pas la sauvegarde.

le but final serait de faire un envoi de ce fichier texte par mail.

est ce que quelqu'un n'aurait pas un script de dump un peu plus simple, afin que je puisse mieux l'adapter ?

merci d'avance