Tengo en php una utilidad que en local recupera la base de datos mysql, hace una serie de operaciones y me crea un fichero de una de las tablas tabla.sql que subo con un formulario a un directorio denominado backup, al subir ese fichero se lanza una aplicación en el servidor que en teoria debería reataurar la base de datos con los nuevos datos que ha recuperado en local pero... ¡oh curiosidad! No incluye los nuevos productos, se queda en el día anterior que subí la base de datos, lo curioso es que si elimino el fichero tabla.sql de la ubicación desde la que deberia recuperarla en el servidor el script da error, osea que funciona, pero no lo hace corrrectamente.
Este es el codigo del formulario formenviar.php:
Código PHP:
<center>Enviar la base de datos:
<form type="text" method="POST" action="enviar.php" enctype='multipart/form-data'>
<input type="file" name="archivo" size="20" class="cajon">
<INPUT TYPE="SUBMIT" value="Enviar base de datos" class="boton">
</form>
</center>
Código PHP:
<HTML>
<HEAD>
<TITLE>Formulario enviar</TITLE>
<link rel="stylesheet" type="text/css" href="../../css/gestion.css">
</HEAD>
<BODY>
<?require ("../conex.php");
$extensiones=array("html","exe","php");
$path="/home/httpd/vhosts/dominio.com/httpdocs/backup/";
$nombre=$HTTP_POST_FILES['archivo']['name'];
$tamanio=$HTTP_POST_FILES['archivo']['size'];
$tipo=$HTTP_POST_FILES['archivo']['type'];
$var = explode(".","$nombre");
$num = count($extensiones);
$valor = $num-1;
for($i=0; $i<=$valor; $i++) {
if($extensiones[$i] == $var[1]) {
echo "Tipo de Archivo no admitido";
exit;
}
}
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
{
copy($HTTP_POST_FILES['archivo']['tmp_name'], "$path$nombre");
echo "El archivo se ha subido correctamente al servidor, muchas gracias <p>";
echo "Nombre: $nombre <p>";
echo "Tamaño: $tamanio <p>";
echo "Tipo: $tipo";
}
else { echo "Error al subir el archivo"; }
echo "Su base esta siendo restaurada.......\n<br>";
$filename = "/home/httpd/vhosts/dominio.com/httpdocs/backup/tabla.sql";
$executa = "mysqldump --host=localhost --user=usuario --password=contraseña --opt basededatos tabla <$filename";
system($executa, $resultado);
if ($resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }
else {
echo "Fin. Su base está emplazada en su alojamiento.";
}
//Después de restaurarla borramos el fichero tabla.sql del servidor
$return = @unlink('/home/httpd/vhosts/dominio.com/httpdocs/backup/tabla.sql');
// Return FALSE if not found
var_dump($return);
?>
<br>
</BODY>
</HTML>
Agradecería una ayudita. Gracias