Veremos en este post, como poder borrar las tablas de un usuario mediante una función de php.
Si pasamos el script tras comprobar que el query que borra el usuario se cumple, no tendrémos problemas en caso de que este no se haya borrado en la tabla de usuarios.
Vemos también como se pasan unos parámetros a los log y los datos se ecriben en cascada, según las tablas que ha detectado.
Espero que os seá muy útil.
/************* BORRAMOS TODAS LAS TABLAS DE USUARIO ***************/
/* Se busca las tablas en la base de datos */
/* REFERENCIA DEL USUARIO O $_SESSION['iniref'] = $_POST['ref'] */
/* $nom PARA LA CLAVE USUARIO ACOMPAÑANDA DE _ O NO */
global $db;
global $db_name;
global $nom;
$nom = strtolower($_POST['ref']);
$nom = "clb_".$_POST['ref']."%"; // SOLO COINCIDEN AL PRINCIPIO
$nom = "LIKE '$nom'";
//$consulta = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME $nom ";
$consulta = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME $nom ";
$respuesta = mysqli_query($db, $consulta);
//$count = mysqli_num_rows($respuesta);
//print("* NUMERO TABLAS: ".$count."<br>");
//print("* CLAVE TABLA USUARIO: ".$nom."<br>");
//global $fila;
//$fila = mysqli_fetch_row($respuesta);
if(!$respuesta){
print("<font color='#FF0000'>300 Se ha producido un error: </font></br>".mysqli_error($db)."</br>");
} else {
while ($fila = mysqli_fetch_row($respuesta)) {
if($fila[0]){
/* PROCEDEMOS A BORRAR LAS TABLAS DEL USUARIO */
global $sqlt1;
$sqlt1 = "DROP TABLE `$db_name`.`$fila[0]` ";
if(mysqli_query($db, $sqlt1)){
// SE PASAN PARAMETROS A .LOG
global $tx1;
$tx1 = "\t* HA BORRADO LA TABLA ".$fila[0]."\n";
global $deletet2;
$deletet2 = $deletet2.$tx1;
} else {
global $tx1;
$tx1 = "\t* ".mysqli_error($db)."\n";
print ("<font color='#FF0000'>*** </font></br> ".mysqli_error($db).".</br>");
global $deletet2;
$deletet2 = $tx1;
}
/* HASTA AQUI BORRA TABLAS Y PASA LOS LOG DE BBDD */
} // FIN IF $FILA[0]
} // FIN WHILE
// SE GRABAN LOS DATOS EN LOG DEL ADMIN
global $deletet2;
$deletet1 = $dd1.$dd2.$dd4."\n";
global $deletet;
$deletet = $deletet1.$deletet2;
} // FIN ELSE !$respuesta
No hay comentarios:
Publicar un comentario
Gracias por vuestros aportes.