| [ Index ] |
|
Code source de PHP NUKE 7.9 |
1 <?php 2 3 /************************************************************************/ 4 /* PHP-NUKE: Web Portal System */ 5 /* =========================== */ 6 /* */ 7 /* Copyright (c) 2005 by Francisco Burzi */ 8 /* http://phpnuke.org */ 9 /* */ 10 /* Based on Databese Backup System */ 11 /* Copyright (c) 2001 by Thomas Rudant (thomas.rudant@grunk.net) */ 12 /* http://www.grunk.net - http://www.securite-internet.org */ 13 /* */ 14 /* This program is free software. You can redistribute it and/or modify */ 15 /* it under the terms of the GNU General Public License as published by */ 16 /* the Free Software Foundation; either version 2 of the License. */ 17 /************************************************************************/ 18 19 if (!defined('ADMIN_FILE')) { 20 die ("Access Denied"); 21 } 22 23 global $prefix, $db, $admin_file; 24 $aid = substr("$aid", 0,25); 25 $row = $db->sql_fetchrow($db->sql_query("SELECT radminsuper FROM " . $prefix . "_authors WHERE aid='$aid'")); 26 if ($row['radminsuper'] == 1) { 27 28 switch($op) { 29 30 case "backup": 31 @set_time_limit(600); 32 $crlf="\n"; 33 34 switch($lang) 35 { 36 case french : 37 // French Text 38 $strNoTablesFound = "Aucune table n'a été trouvée dans cette base."; 39 $strHost = "Serveur"; 40 $strDatabase = "Base de données"; 41 $strTableStructure = "Structure de la table"; 42 $strDumpingData = "Contenu de la table"; 43 $strError = "Erreur"; 44 $strSQLQuery = "requête SQL"; 45 $strMySQLSaid = "MySQL a répondu:"; 46 $strBack = "Retour"; 47 $strFileName = "Sauvegarde BD"; 48 $strName = "Sauvegarde de la base de données"; 49 $strDone = "effectuée le"; 50 $strat = "à"; 51 $strby = "par"; 52 $date_jour = date ("d-m-Y"); 53 break; 54 55 default : 56 // English Text 57 $strNoTablesFound = "No tables found in database."; 58 $strHost = "Host"; 59 $strDatabase = "Database "; 60 $strTableStructure = "Table structure for table"; 61 $strDumpingData = "Dumping data for table"; 62 $strError = "Error"; 63 $strSQLQuery = "SQL-query"; 64 $strMySQLSaid = "MySQL said: "; 65 $strBack = "Back"; 66 $strFileName = "Save Database"; 67 $strName = "Database saved"; 68 $strDone = "On"; 69 $strat = "at"; 70 $strby = "by"; 71 $date_jour = date ("m-d-Y"); 72 break; 73 } 74 75 header("Content-disposition: filename=$strFileName $dbname $date_jour.sql"); 76 header("Content-type: application/octetstream"); 77 header("Pragma: no-cache"); 78 header("Expires: 0"); 79 80 // doing some DOS-CRLF magic... 81 $client = $_SERVER["HTTP_USER_AGENT"]; 82 if(ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) 83 { 84 $os = $regs[1]; 85 // this looks better under WinX 86 if (eregi("Win",$os)) 87 $crlf="\r\n"; 88 } 89 90 91 function my_handler($sql_insert) 92 { 93 global $crlf; 94 echo "$sql_insert;$crlf"; 95 } 96 97 // Get the content of $table as a series of INSERT statements. 98 // After every row, a custom callback function $handler gets called. 99 // $handler must accept one parameter ($sql_insert); 100 function get_table_content($db, $table, $handler) 101 { 102 $result = mysql_db_query($db, "SELECT * FROM $table") or mysql_die(); 103 $i = 0; 104 while($row = mysql_fetch_row($result)) 105 { 106 // set_time_limit(60); // HaRa 107 $table_list = "("; 108 109 for($j=0; $j<mysql_num_fields($result);$j++) 110 $table_list .= mysql_field_name($result,$j).", "; 111 112 $table_list = substr($table_list,0,-2); 113 $table_list .= ")"; 114 115 if(isset($GLOBALS["showcolumns"])) 116 $schema_insert = "INSERT INTO $table $table_list VALUES ("; 117 else 118 $schema_insert = "INSERT INTO $table VALUES ("; 119 120 for($j=0; $j<mysql_num_fields($result);$j++) 121 { 122 if(!isset($row[$j])) 123 $schema_insert .= " NULL,"; 124 elseif($row[$j] != "") 125 $schema_insert .= " '".addslashes($row[$j])."',"; 126 else 127 $schema_insert .= " '',"; 128 } 129 $schema_insert = ereg_replace(",$", "", $schema_insert); 130 $schema_insert .= ")"; 131 $handler(trim($schema_insert)); 132 $i++; 133 } 134 return (true); 135 } 136 137 // Return $table's CREATE definition 138 // Returns a string containing the CREATE statement on success 139 function get_table_def($db, $table, $crlf) 140 { 141 $schema_create = ""; 142 //$schema_create .= "DROP TABLE IF EXISTS $table;$crlf"; 143 $schema_create .= "CREATE TABLE $table ($crlf"; 144 145 $result = mysql_db_query($db, "SHOW FIELDS FROM $table") or mysql_die(); 146 while($row = mysql_fetch_array($result)) 147 { 148 $schema_create .= " $row[Field] $row[Type]"; 149 150 if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0")) 151 $schema_create .= " DEFAULT '$row[Default]'"; 152 if($row["Null"] != "YES") 153 $schema_create .= " NOT NULL"; 154 if($row["Extra"] != "") 155 $schema_create .= " $row[Extra]"; 156 $schema_create .= ",$crlf"; 157 } 158 $schema_create = ereg_replace(",".$crlf."$", "", $schema_create); 159 $result = mysql_db_query($db, "SHOW KEYS FROM $table") or mysql_die(); 160 while($row = mysql_fetch_array($result)) 161 { 162 $kname=$row['Key_name']; 163 if(($kname != "PRIMARY") && ($row['Non_unique'] == 0)) 164 $kname="UNIQUE|$kname"; 165 if(!isset($index[$kname])) 166 $index[$kname] = array(); 167 $index[$kname][] = $row['Column_name']; 168 } 169 170 while(list($x, $columns) = @each($index)) 171 { 172 $schema_create .= ",$crlf"; 173 if($x == "PRIMARY") 174 $schema_create .= " PRIMARY KEY (" . implode($columns, ", ") . ")"; 175 elseif (substr($x,0,6) == "UNIQUE") 176 $schema_create .= " UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")"; 177 else 178 $schema_create .= " KEY $x (" . implode($columns, ", ") . ")"; 179 } 180 181 $schema_create .= "$crlf)"; 182 return (stripslashes($schema_create)); 183 } 184 185 function mysql_die($error = "") 186 { 187 echo "<b> $strError </b><p>"; 188 if(isset($sql_query) && !empty($sql_query)) 189 { 190 echo "$strSQLQuery: <pre>$sql_query</pre><p>"; 191 } 192 if(empty($error)) 193 echo $strMySQLSaid.mysql_error(); 194 else 195 echo $strMySQLSaid.$error; 196 echo "<br><a href=\"javascript:history.go(-1)\">$strBack</a>"; 197 exit; 198 } 199 200 global $dbhost, $dbuname, $dbpass, $dbname; 201 mysql_pconnect($dbhost, $dbuname, $dbpass); 202 @mysql_select_db("$dbname") or die ("Unable to select database"); 203 204 $tables = mysql_list_tables($dbname); 205 206 $num_tables = @mysql_numrows($tables); 207 if($num_tables == 0) 208 { 209 echo $strNoTablesFound; 210 } 211 else 212 { 213 $i = 0; 214 $heure_jour = date ("H:i"); 215 print "# ========================================================$crlf"; 216 print "#$crlf"; 217 print "# $strName : $dbname$crlf"; 218 print "# $strDone $date_jour $strat $heure_jour $strby $name !$crlf"; 219 print "#$crlf"; 220 print "# ========================================================$crlf"; 221 print "$crlf"; 222 223 while($i < $num_tables) 224 { 225 $table = mysql_tablename($tables, $i); 226 227 print $crlf; 228 print "# --------------------------------------------------------$crlf"; 229 print "#$crlf"; 230 print "# $strTableStructure '$table'$crlf"; 231 print "#$crlf"; 232 print $crlf; 233 234 echo get_table_def($dbname, $table, $crlf).";$crlf$crlf"; 235 236 print "#$crlf"; 237 print "# $strDumpingData '$table'$crlf"; 238 print "#$crlf"; 239 print $crlf; 240 241 get_table_content($dbname, $table, "my_handler"); 242 243 $i++; 244 } 245 } 246 break; 247 } 248 249 } else { 250 echo "Access Denied"; 251 } 252 253 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Apr 1 11:11:59 2007 | par Balluche grâce à PHPXref 0.7 |