mtWeb > Download > Remote SQL
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
die("Failed\n");
}
echo "Welcome to localhost ;-)\n";
require_once 'salt.php';
require_once 'read_dump.php';
require_once '../config.php';
$db = db_connect();
$sql = "SELECT last FROM sql_serv";
$last = strtotime($db->getOne($sql));
$diff = strtotime('now') - $last;
if ($diff < 600) {
die("You're too fast\n");
}
echo "Unserializing data\n";
$data = unserialize($_POST['data']);
$hash = $data[0];
$size = $data[1];
$sql = base64_decode($data[2]);
unset($data);
if (strlen($sql) != $size) {
die("Incorrect size\nClient: $size\nServer: " . strlen($sql));
}
if ($hash !== md5($sql . $salt)) {
$sql = "UPDATE sql_serv SET last = now()";
$db->query($sql);
die("Error occurred\n");
}
echo "Splitting SQL dump\n";
// the last parameter is your MySQL version as an integer, I use 3.23.47
PMA_splitSqlFile($dump, $sql, 32347);
$queries = sizeof($dump);
echo "$queries queries to execute\n";
if ($queries) {
$i = 1;
foreach ($dump as $sql) {
echo "[$i/$queries] $sql\n";
$db->query($sql);
echo "Rows affected: " . $db->affectedRows() . "\n\n";
$i++;
}
}
echo "Disconnecting...\n";
$db->disconnect();
?>