创建删除后无法登录或添加新管理员
Can't log in or add new admins after delete was created
我在 udemy 上了一门关于网络开发的课程,我发现显示的代码有一些错误(我不是唯一的错误),所以在一个多月没有得到导师的答复后,我如果你能帮助我,我会活下来。
这段代码是关于登录“管理员”区域,创建新管理员,编辑和删除他们。在添加“eliminar”(删除)之前,代码工作正常,当我单击删除时它会弹出警报,但不要删除 MySQL 中的项目,这不是唯一的问题。当我尝试登录时,似乎直到我删除了删除代码才让我登录,当我尝试添加新管理员时出现同样的问题,所以我试图在课程中寻求帮助但没有成功,并在中搜索新的解决方案其他学生的问题,但他们中的大多数人都像我一样迷路。你能帮我解决一下吗?
PD。我已经无路可退了,我在视频457/500,一个多月过去了,想求也求不来
这是模型:
<?php
include_once 'funciones/funciones.php';
$usuario=$_POST['usuario'];
$nombre=$_POST['nombre'];
$password=$_POST['password'];
$id_registro =$_POST['id_registro'];
if($_POST['registro'] == 'nuevo') {
$opciones=array(
'cost'=>12
);
$password_hashed=password_hash($password, PASSWORD_BCRYPT, $opciones);
try {
$stmt=$conn->prepare("INSERT INTO admins(usuario, nombre, password) VALUES (?,?,?)");
$stmt->bind_param("sss", $usuario, $nombre, $password_hashed);
$stmt->execute();
$id_registro=$stmt->insert_id;
if ($id_registro > 0) {
$respuesta=array(
'respuesta'=>'exito',
'id_admin'=>$id_registro
);
} else {
$respuesta=array(
'respuesta'=>'error',
);
}
$stmt->close();
$conn->close();
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
}
die(json_encode($respuesta));
}
if($_POST['registro'] == 'actualizar') {
try {
if (empty($_POST['password']) ) {
$stmt = $conn->prepare("UPDATE admins SET usuario = ?, nombre = ?, editado = NOW() WHERE id_admin = ? ");
$stmt->bind_param("ssi", $usuario, $nombre, $id_registro);
} else {
$opciones = array(
'cost' => 12
);
$hash_password = password_hash($password, PASSWORD_BCRYPT, $opciones );
$stmt = $conn->prepare('UPDATE admins SET usuario = ?, nombre = ?, password = ?, editado = NOW() WHERE id_admin = ? ');
$stmt->bind_param("sssi", $usuario, $nombre, $hash_password, $id_registro);
}
$stmt->execute();
if ($stmt->affected_rows) {
$respuesta = array(
'respuesta' => 'exito',
'id_actualizado' => $stmt->insert_id
);
}else {
$respuesta = array(
'respuesta' => 'error'
);
}
$stmt->close();
$conn->close();
} catch (\Exception $e) {
$respuesta = array(
'respuesta' => $e->getMessage()
);
}
die(json_encode($respuesta));
}
if($_POST['registro'] == 'eliminar') {
//die(json_encode($_POST));
$id_borrar = $_POST['id'];
try {
$stmt = $conn->prepare('DELETE FROM admins WHERE id_admin = ? ');
$stmt->bind_param('i', $id_borrar);
$stmt->execute();
if($stmt->affected_rows){
$respuesta = array(
'respuesta' => 'correcto',
'id_eliminado' => $id_borrar
);
} else {
$respuesta = array(
'respuesta' => 'cancel'
);
}
} catch (\Exception $e) {
$respuesta = array{
'respuesta' => $e->getMessage();
};
}
die(json_encode($respuesta));
}
if(isset($_POST['login-admin'])) {
$usuario=$_POST['usuario'];
$password=$_POST['password'];
//die(json_encode($_POST));
try {
include_once 'funciones/funciones.php';
$stmt=$conn->prepare("SELECT * FROM admins WHERE usuario = ?;");
$stmt->bind_param("s", $usuario);
$stmt->execute();
$stmt->bind_result($id_admin, $usuario_admin, $nombre_admin, $password_admin, $editado);
if ($stmt->affected_rows) {
$existe=$stmt->fetch();
if ($existe) {
if(password_verify($password, $password_admin)){
session_start();
$_SESSION['usuario']=$usuario_admin;
$_SESSION['nombre']=$nombre_admin;
$respuesta=array(
'respuesta'=>'exitoso',
'usuario'=>$nombre_admin
);
} else {
$respuesta=array(
'respuesta'=>'error'
);
}
} else {
$respuesta=array(
'respuesta'=>'error'
);
}
}
$stmt->close();
$conn->close();
} catch(Exception $e){
echo "Error: " . $e->getMessage();
}
die(json_encode($respuesta));
}
?>
这里是管理员-ajax:
$(document).ready(function(){
$('#guardar-registro').on('submit', function (e) {
e.preventDefault();
var datos = $(this).serializeArray();
$.ajax({
type: $(this).attr('method'),
data: datos,
url: $(this).attr('action'),
dataType: 'json',
success: function(data){
console.log(data);
var resultado = data;
if(resultado.respuesta == 'exito'){
Swal.fire(
'Correcto!',
'El administrador se creo correctamente!',
'success'
)
}else {
Swal.fire(
'Error!',
'Hubo un error!',
'Error'
)
}
}
})
});
// eliminar registros
$('.borrar-registro').on('click', function (e) {
e.preventDefault();
let id = $(this).attr('data-id');
let tipo = $(this).attr('data-tipo');
Swal.fire({
title: '¿Estás seguro?',
text: "Un registro eliminado no se puede recuperar",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Si, Eliminar!',
cancelButtonText: 'Cancelar'
}).then((result) => {
if (result.value) {
$.ajax({
type: 'post',
data: {
'id': id,
'registro': 'eliminar'
},
url: 'modelo-' + tipo + '.php',
success: function (data) {
var resultado = JSON.parse(data);
if (resultado.respuesta == 'correcto') {
Swal.fire(
'Eliminado!',
'Se eliminó el registro de la dase de datos.',
'success'
)
jQuery('[data-id="' + resultado.id_eliminado + '"]').parents('tr').remove();
}
}
})
} else if (result.dismiss === 'cancel') {
Swal.fire(
'Cancelado',
'No se eliminó el registro',
'error'
)
}
})
});
$('#login-admin').on('submit', function (e) {
e.preventDefault();
var datos = $(this).serializeArray();
$.ajax({
type: $(this).attr('method'),
data: datos,
url: $(this).attr('action'),
dataType: 'json',
success: function(data) {
console.log(data);
var resultado = data;
if(resultado.respuesta == 'exitoso'){
Swal.fire(
'Login Correcto!',
'Bienvenido '+resultado.usuario+' !!',
'success'
)
setTimeout(function(){
window.location.href = 'admin-area.php';
}, 2000);
}else {
Swal.fire(
'Error!',
'Usuario o Password Incorrecto! !',
'Error'
)
}
}
})
});
});
pdd。对不起,我知道我不擅长这个,但谢谢你的时间。
编辑 1:如果我删除再次添加的“eliminar”(删除)部分,我可以登录并再次添加新管理员,我猜这是我电脑的错误,但仍然无法使用删除部分。
代码现在可以运行了,这就是它的最终结果,感谢@Swati 提供的帮助和时间。
模型管理员:
if ($_POST['registro'] == 'eliminar') {
$id_borrar = $_POST['id'];
try {
$stmt = $conn->prepare('DELETE FROM admins WHERE id_admin = ?');
$stmt->bind_param('i', $id_borrar);
$stmt->execute();
if($stmt->affected_rows){
$respuesta = array(
'respuesta' => 'exito',
'id_eliminado' => $id_borrar
);
}else {
$respuesta = array(
'respuesta' => 'error'
);
}
} catch (Exception $e) {
$respuesta = array(
'respuesta' => $e->getMessage()
);
}
die(json_encode($respuesta));
}
管理员ajax:
$('.borrar_registro').on('click', function(e) {
e.preventDefault();
let id = $(this).attr('data-id');
let tipo = $(this).attr('data-tipo');
Swal.fire({
title: '¿Estás Seguro?',
text: "Un usuario eliminado no se puede recuperar",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Si, Eliminar',
cancelButtonText: 'Cancelar'
}).then((result) => {
if (result.value) {
$.ajax({
type: 'post',
data: {
'id': id,
'registro': 'eliminar'
},
url: 'modelo-' + tipo + '.php',
success: function(data) {
console.log(data);
let resultado = JSON.parse(data);
if (resultado.respuesta === 'exito') {
Swal.fire(
'¡Eliminado!',
'El registro a sido eliminado',
'success'
)
jQuery('[data-id="' + resultado.id_eliminado + '"]').parents('tr').remove();
} else {
Swal.fire(
'¡Error!',
'No se pudo eliminar',
'error'
)}
}
})
} else if (result.dismiss === 'cancel') {
console.log(id);
Swal.fire(
'Cancelado',
'No se eliminó el registro',
'error'
)
}
});
});
我在 udemy 上了一门关于网络开发的课程,我发现显示的代码有一些错误(我不是唯一的错误),所以在一个多月没有得到导师的答复后,我如果你能帮助我,我会活下来。
这段代码是关于登录“管理员”区域,创建新管理员,编辑和删除他们。在添加“eliminar”(删除)之前,代码工作正常,当我单击删除时它会弹出警报,但不要删除 MySQL 中的项目,这不是唯一的问题。当我尝试登录时,似乎直到我删除了删除代码才让我登录,当我尝试添加新管理员时出现同样的问题,所以我试图在课程中寻求帮助但没有成功,并在中搜索新的解决方案其他学生的问题,但他们中的大多数人都像我一样迷路。你能帮我解决一下吗?
PD。我已经无路可退了,我在视频457/500,一个多月过去了,想求也求不来
这是模型:
<?php
include_once 'funciones/funciones.php';
$usuario=$_POST['usuario'];
$nombre=$_POST['nombre'];
$password=$_POST['password'];
$id_registro =$_POST['id_registro'];
if($_POST['registro'] == 'nuevo') {
$opciones=array(
'cost'=>12
);
$password_hashed=password_hash($password, PASSWORD_BCRYPT, $opciones);
try {
$stmt=$conn->prepare("INSERT INTO admins(usuario, nombre, password) VALUES (?,?,?)");
$stmt->bind_param("sss", $usuario, $nombre, $password_hashed);
$stmt->execute();
$id_registro=$stmt->insert_id;
if ($id_registro > 0) {
$respuesta=array(
'respuesta'=>'exito',
'id_admin'=>$id_registro
);
} else {
$respuesta=array(
'respuesta'=>'error',
);
}
$stmt->close();
$conn->close();
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
}
die(json_encode($respuesta));
}
if($_POST['registro'] == 'actualizar') {
try {
if (empty($_POST['password']) ) {
$stmt = $conn->prepare("UPDATE admins SET usuario = ?, nombre = ?, editado = NOW() WHERE id_admin = ? ");
$stmt->bind_param("ssi", $usuario, $nombre, $id_registro);
} else {
$opciones = array(
'cost' => 12
);
$hash_password = password_hash($password, PASSWORD_BCRYPT, $opciones );
$stmt = $conn->prepare('UPDATE admins SET usuario = ?, nombre = ?, password = ?, editado = NOW() WHERE id_admin = ? ');
$stmt->bind_param("sssi", $usuario, $nombre, $hash_password, $id_registro);
}
$stmt->execute();
if ($stmt->affected_rows) {
$respuesta = array(
'respuesta' => 'exito',
'id_actualizado' => $stmt->insert_id
);
}else {
$respuesta = array(
'respuesta' => 'error'
);
}
$stmt->close();
$conn->close();
} catch (\Exception $e) {
$respuesta = array(
'respuesta' => $e->getMessage()
);
}
die(json_encode($respuesta));
}
if($_POST['registro'] == 'eliminar') {
//die(json_encode($_POST));
$id_borrar = $_POST['id'];
try {
$stmt = $conn->prepare('DELETE FROM admins WHERE id_admin = ? ');
$stmt->bind_param('i', $id_borrar);
$stmt->execute();
if($stmt->affected_rows){
$respuesta = array(
'respuesta' => 'correcto',
'id_eliminado' => $id_borrar
);
} else {
$respuesta = array(
'respuesta' => 'cancel'
);
}
} catch (\Exception $e) {
$respuesta = array{
'respuesta' => $e->getMessage();
};
}
die(json_encode($respuesta));
}
if(isset($_POST['login-admin'])) {
$usuario=$_POST['usuario'];
$password=$_POST['password'];
//die(json_encode($_POST));
try {
include_once 'funciones/funciones.php';
$stmt=$conn->prepare("SELECT * FROM admins WHERE usuario = ?;");
$stmt->bind_param("s", $usuario);
$stmt->execute();
$stmt->bind_result($id_admin, $usuario_admin, $nombre_admin, $password_admin, $editado);
if ($stmt->affected_rows) {
$existe=$stmt->fetch();
if ($existe) {
if(password_verify($password, $password_admin)){
session_start();
$_SESSION['usuario']=$usuario_admin;
$_SESSION['nombre']=$nombre_admin;
$respuesta=array(
'respuesta'=>'exitoso',
'usuario'=>$nombre_admin
);
} else {
$respuesta=array(
'respuesta'=>'error'
);
}
} else {
$respuesta=array(
'respuesta'=>'error'
);
}
}
$stmt->close();
$conn->close();
} catch(Exception $e){
echo "Error: " . $e->getMessage();
}
die(json_encode($respuesta));
}
?>
这里是管理员-ajax:
$(document).ready(function(){
$('#guardar-registro').on('submit', function (e) {
e.preventDefault();
var datos = $(this).serializeArray();
$.ajax({
type: $(this).attr('method'),
data: datos,
url: $(this).attr('action'),
dataType: 'json',
success: function(data){
console.log(data);
var resultado = data;
if(resultado.respuesta == 'exito'){
Swal.fire(
'Correcto!',
'El administrador se creo correctamente!',
'success'
)
}else {
Swal.fire(
'Error!',
'Hubo un error!',
'Error'
)
}
}
})
});
// eliminar registros
$('.borrar-registro').on('click', function (e) {
e.preventDefault();
let id = $(this).attr('data-id');
let tipo = $(this).attr('data-tipo');
Swal.fire({
title: '¿Estás seguro?',
text: "Un registro eliminado no se puede recuperar",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Si, Eliminar!',
cancelButtonText: 'Cancelar'
}).then((result) => {
if (result.value) {
$.ajax({
type: 'post',
data: {
'id': id,
'registro': 'eliminar'
},
url: 'modelo-' + tipo + '.php',
success: function (data) {
var resultado = JSON.parse(data);
if (resultado.respuesta == 'correcto') {
Swal.fire(
'Eliminado!',
'Se eliminó el registro de la dase de datos.',
'success'
)
jQuery('[data-id="' + resultado.id_eliminado + '"]').parents('tr').remove();
}
}
})
} else if (result.dismiss === 'cancel') {
Swal.fire(
'Cancelado',
'No se eliminó el registro',
'error'
)
}
})
});
$('#login-admin').on('submit', function (e) {
e.preventDefault();
var datos = $(this).serializeArray();
$.ajax({
type: $(this).attr('method'),
data: datos,
url: $(this).attr('action'),
dataType: 'json',
success: function(data) {
console.log(data);
var resultado = data;
if(resultado.respuesta == 'exitoso'){
Swal.fire(
'Login Correcto!',
'Bienvenido '+resultado.usuario+' !!',
'success'
)
setTimeout(function(){
window.location.href = 'admin-area.php';
}, 2000);
}else {
Swal.fire(
'Error!',
'Usuario o Password Incorrecto! !',
'Error'
)
}
}
})
});
});
pdd。对不起,我知道我不擅长这个,但谢谢你的时间。
编辑 1:如果我删除再次添加的“eliminar”(删除)部分,我可以登录并再次添加新管理员,我猜这是我电脑的错误,但仍然无法使用删除部分。
代码现在可以运行了,这就是它的最终结果,感谢@Swati 提供的帮助和时间。
模型管理员:
if ($_POST['registro'] == 'eliminar') {
$id_borrar = $_POST['id'];
try {
$stmt = $conn->prepare('DELETE FROM admins WHERE id_admin = ?');
$stmt->bind_param('i', $id_borrar);
$stmt->execute();
if($stmt->affected_rows){
$respuesta = array(
'respuesta' => 'exito',
'id_eliminado' => $id_borrar
);
}else {
$respuesta = array(
'respuesta' => 'error'
);
}
} catch (Exception $e) {
$respuesta = array(
'respuesta' => $e->getMessage()
);
}
die(json_encode($respuesta));
}
管理员ajax:
$('.borrar_registro').on('click', function(e) {
e.preventDefault();
let id = $(this).attr('data-id');
let tipo = $(this).attr('data-tipo');
Swal.fire({
title: '¿Estás Seguro?',
text: "Un usuario eliminado no se puede recuperar",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Si, Eliminar',
cancelButtonText: 'Cancelar'
}).then((result) => {
if (result.value) {
$.ajax({
type: 'post',
data: {
'id': id,
'registro': 'eliminar'
},
url: 'modelo-' + tipo + '.php',
success: function(data) {
console.log(data);
let resultado = JSON.parse(data);
if (resultado.respuesta === 'exito') {
Swal.fire(
'¡Eliminado!',
'El registro a sido eliminado',
'success'
)
jQuery('[data-id="' + resultado.id_eliminado + '"]').parents('tr').remove();
} else {
Swal.fire(
'¡Error!',
'No se pudo eliminar',
'error'
)}
}
})
} else if (result.dismiss === 'cancel') {
console.log(id);
Swal.fire(
'Cancelado',
'No se eliminó el registro',
'error'
)
}
});
});