PluginProbe
WP-DBManager / 2.02
WP-DBManager v2.02
4.0.0 trunk 1.00 2.00 2.01 2.02 2.03 2.04 2.05 2.10 2.11 2.20 2.30 2.31 2.40 2.50 2.65 2.70 2.71 2.72 2.73 2.74 2.75 2.76 2.78 All 40 releases
wp-dbmanager / dbmanager / database-backup.php

database-backup.php in WP-DBManager 2.02, at dbmanager/database-backup.php

196 lines 8.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 +----------------------------------------------------------------+
4 | |
5 | WordPress 2.0 Plugin: WP-DBManager 2.02 |
6 | Copyright (c) 2005 Lester "GaMerZ" Chan |
7 | |
8 | File Written By: |
9 | - Lester "GaMerZ" Chan |
10 | - http://www.lesterchan.net |
11 | |
12 | File Information: |
13 | - Database Backup |
14 | - wp-content/plugins/dbmanager/database-backup.php |
15 | |
16 +----------------------------------------------------------------+
17 */
18
19
20 ### Require Database Config
21 require('database-config.php');
22
23
24 ### Form Processing
25 if($_POST['do']) {
26 // Decide What To Do
27 switch($_POST['do']) {
28 case 'Backup':
29 $gzip = intval($_POST['gzip']);
30 if($gzip == 1) {
31 $backup['filename'] = $backup['date'].'_-_'.DB_NAME.'.sql.gz';
32 $backup['filepath'] = $backup['path'].'/'.$backup['filename'];
33 $backup['command'] = $backup['mysqldumppath'].' --host='.DB_HOST.' --user='.DB_USER.' --password='.DB_PASSWORD.' --add-drop-table '.DB_NAME.' | gzip > '.$backup['filepath'];
34 } else {
35 $backup['filename'] = $backup['date'].'_-_'.DB_NAME.'.sql';
36 $backup['filepath'] = $backup['path'].'/'.$backup['filename'];
37 $backup['command'] = $backup['mysqldumppath'].' --host='.DB_HOST.' --user='.DB_USER.' --password='.DB_PASSWORD.' --add-drop-table '.DB_NAME.' > '.$backup['filepath'];
38 }
39 passthru($backup['command'], $error);
40 if(!is_writable($backup['path'])) {
41 $text = "<font color=\"red\">Database Failed To Backup On '".date('l, jS F Y @ H:i')."'. Backup Folder Not Writable</font>";
42 } elseif(filesize($backup['filepath']) == 0) {
43 unlink($backup['filepath']);
44 $text = "<font color=\"red\">Database Failed To Backup On '".date('l, jS F Y @ H:i')."'. Backup File Size Is 0KB</font>";
45 } elseif(!is_file($backup['filepath'])) {
46 $text = "<font color=\"red\">Database Failed To Backup On '".date('l, jS F Y @ H:i')."'. Invalid Backup File Path</font>";
47 } elseif($error) {
48 $text = "<font color=\"red\">Database Failed To Backup On '".date('l, jS F Y @ H:i')."'</font>";
49 } else {
50 $text = "<font color=\"green\">Database Backed Up Successfully On '".date('l, jS F Y @ H:i')."'</font>";
51 }
52 break;
53 }
54 }
55
56
57 ### Backup File Name
58 $backup['filename'] = $backup['date'].'_-_'.DB_NAME.'.sql';
59
60
61 ### MYSQL Base Dir
62 $mysql_basedir = $wpdb->get_row("SHOW VARIABLES LIKE 'basedir'");
63 $mysql_basedir = $mysql_basedir->Value;
64 if($mysql_basedir == '/') { $mysql_basedir = '/usr/'; }
65 $status_count = 0;
66 $stats_function_disabled = 0;
67 ?>
68 <?php if(!empty($text)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$text.'</p></div>'; } ?>
69 <!-- Checking Backup Status -->
70 <div class="wrap">
71 <h2>Checking Backup Status</h2>
72 <p>
73 Checking Backup Folder (<b><?php echo $backup['path']; ?></b>) ...<br />
74 <?php
75 if(is_dir($backup['path'])) {
76 echo '<font color="green">Backup folder exists</font><br />';
77 $status_count++;
78 } else {
79 echo '<font color="red">Backup folder does NOT exist. Please create \'backup-db\' folder in \'wp-content\' folder and CHMOD it to \'777\' or change the location of the backup folder under DB Option.</font><br />';
80 }
81 if(is_writable($backup['path'])) {
82 echo '<font color="green">Backup folder is writable</font>';
83 $status_count++;
84 } else {
85 echo '<font color="red">Backup folder is NOT writable. Please CHMOD it to \'777\'.</font>';
86 }
87 ?>
88 </p>
89 <p>
90 <?php
91 if(file_exists($mysql_basedir.'bin/'.$backup['mysqldumppath'])) {
92 echo 'Checking MYSQL Dump Path (<b>'.$mysql_basedir.'bin/'.$backup['mysqldumppath'].'</b>) ...<br />';
93 echo '<font color="green">MYSQL dump path exists.</font>';
94 $status_count++;
95 } else if(file_exists($backup['mysqldumppath'])) {
96 echo 'Checking MYSQL Dump Path (<b>'.$backup['mysqldumppath'].'</b>) ...<br />';
97 echo '<font color="green">MYSQL dump path exists.</font>';
98 $status_count++;
99 } else {
100 echo 'Checking MYSQL Dump Path ...<br />';
101 echo '<font color="red">MYSQL dump path does NOT exist. Please check your mysqldump path under DB Options. If uncertain, contact your server administrator.</font>';
102 }
103 ?>
104 </p>
105 <p>
106 <?php
107 if(file_exists($mysql_basedir.'bin/'.$backup['mysqlpath'])) {
108 echo 'Checking MYSQL Path (<b>'.$mysql_basedir.'bin/'.$backup['mysqlpath'].'</b>) ...<br />';
109 echo '<font color="green">MYSQL path exists.</font>';
110 $status_count++;
111 } else if(file_exists($backup['mysqlpath'])) {
112 echo 'Checking MYSQL Path (<b>'.$backup['mysqlpath'].'</b>) ...<br />';
113 echo '<font color="green">MYSQL path exists.</font>';
114 $status_count++;
115 } else {
116 echo 'Checking MYSQL Path ...<br />';
117 echo '<font color="red">MYSQL path does NOT exist. Please check your mysql path under DB Options. If uncertain, contact your server administrator.</font>';
118 }
119 ?>
120 </p>
121 <p>
122 Checking PHP Functions (<b>passthru()</b>, <b>system()</b> and <b>exec()</b>) ...<br />
123 <?php
124 if(function_exists('passthru')) {
125 echo '<font color="green">passthru() enabled.</font><br />';
126 $status_count++;
127 } else {
128 echo '<font color="red">passthru() disabled.</font><br />';
129 $stats_function_disabled++;
130 }
131 if(function_exists('system')) {
132 echo '<font color="green">system() enabled.</font><br />';
133 } else {
134 echo '<font color="red">system() disabled.</font><br />';
135 $stats_function_disabled++;
136 }
137 if(function_exists('exec')) {
138 echo '<font color="green">exec() enabled.</font>';
139 } else {
140 echo '<font color="red">exec() disabled.</font>';
141 $stats_function_disabled++;
142 }
143 ?>
144 </p>
145 <p>
146 <?php
147 if($status_count == 5) {
148 echo '<b><font color="green">Excellent. You Are Good To Go.</font></b>';
149 } else if($stats_function_disabled == 3) {
150 echo '<b><font color="red">I\'m sorry, your server administrator has disabled passthru(), system() and exec(), thus you cannot use this backup script. You may consider using the default WordPress database backup script instead.</font></b>';
151 } else {
152 echo '<b><font color="red">Please Rectify The Error Highlighted In Red Before Proceeding On.</font></b>';
153 }
154 ?>
155 </p>
156 <p><i>Note: The checking of backup status is still undergoing testing, if you get a 'Good To Go' status but can't perform the backup or you get some errors but still can perform the backup, please drop me an <a href="mailto:gamerz84@hotmail.com?Subject=WP-DBManager: Checking Of Backup Status">email</a>.</i></p>
157 </div>
158 <!-- Backup Database -->
159 <div class="wrap">
160 <h2>Backup Database</h2>
161 <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
162 <table width="100%" cellspacing="3" cellpadding="3" border="0">
163 <tr style='background-color: #eee'>
164 <th align="left" scope="row">Database Name:</th>
165 <td><?php echo DB_NAME; ?></td>
166 </tr>
167 <tr style='background-color: none'>
168 <th align="left" scope="row">Database Backup To:</th>
169 <td><?php echo $backup['path']; ?></td>
170 </tr>
171 <tr style='background-color: #eee'>
172 <th align="left" scope="row">Database Backup Date:</th>
173 <td><?php echo date('jS F Y', $backup['date']); ?></td>
174 </tr>
175 <tr style='background-color: none'>
176 <th align="left" scope="row">Database Backup File Name:</th>
177 <td><?php echo $backup['filename']; ?></td>
178 </tr>
179 <tr style='background-color: #eee'>
180 <th align="left" scope="row">Database Backup Type:</th>
181 <td>Full (Structure and Data)</td>
182 </tr>
183 <tr style='background-color: none'>
184 <th align="left" scope="row">MYSQL Dump Location:</th>
185 <td><?php echo $backup['mysqldumppath']; ?></td>
186 </tr>
187 <tr style='background-color: #eee'>
188 <th align="left" scope="row">GZIP Database Backup File?</th>
189 <td><input type="radio" name="gzip" value="1">Yes&nbsp;&nbsp;<input type="radio" name="gzip" value="0" checked="checked" />No</td>
190 </tr>
191 <tr>
192 <td colspan="2" align="center"><input type="submit" name="do" value="Backup" class="button" />&nbsp;&nbsp;<input type="button" name="cancel" Value="<?php _e('Cancel'); ?>" class="button" onclick="javascript:history.go(-1)" /></td>
193 </tr>
194 </table>
195 </form>
196 </div>