hola LexterXPS, primero que nada muy buenos videos me han servido de mucho. He realizado todo el tutorial y se queda validando, checho la consola y dice complete
ya replique los dos videos, geniales amigo muchas gracias me has ayudado mucho, me gustaria saber si tenes mas videos pero haciendo una aplicacion con admin lte template de menus
Hola tengo este problema al momento de enviar los de usuario y contraseña el login se queda validando... pero solo pasa cuando ingreso usuarios y contraseña correctos en los incorrectos me aparece el mensaje diciendo que el usuario y contraseña son incorrectos
Hola bro todo perfecto no me manda ningun error, solamente que en cosola dice. complete XHR finished loading: POST " direccion de mi codigo en el servidor localhost" Y no me carga a la pagina de admin. Alguna recomendacion?
Hola LexterXPS , muchas gracias por los vídeos. Están genial y me han servido de mucho. Solo tengo una consulta, ¿cómo se haría para poder hacer el login con un password que está encriptado, por ejemplo con sha1, en la base de datos? He probado en el archivo login.php y que la variable $pas sea un sha1(post) pero no funciona. En cualquier caso, gracias.
@@LexterDev Muchas gracias por tu rápida respuesta. El caso es que no me funciona. He probado dos opciones en el login.php: 1) $pas = $mysqli->real_escape_string(sha1($_POST['passlg'])); y no va, incluso eliminando el real_escape_string 2) Y la segunda forma, dejando $pas como está, sin el sha1, y crear una variable $pass = sha1($pas); y en $nueva_consulta->bind_param('ss',$usuario,$pass) pero tampoco me funciona. Mil gracias si puedes responderme, es para un trabajo que tengo que entregar!!!
hola, te hago una consulta, hice el codigo tal cual lo tenes vos... nada mas que con mis datos de conexion a mi base de datos... pero me tira 'HTTP ERROR 500' y no puede accederse a la pagina... como puedo saber de donde proviene el error??
Ese error es de servidor bro, no es problema del código. Revisa que tu servidor tengas las extensiones necesarias para trabajar con este código, porque parece ser que no. Saludos
Hola nuevamente gracias por tus tutoriales, me podrás sacar una duda, el archivo login.php necesita protegerse verificando inicio de sesión al igual que los index de usuario y admin? por ejemplo para que al escribir en la barra de direcciones: main_app/login.php redireccione en caso de no haber iniciado sesión? Gracias y Saludos!!!
Gracias, justamente a eso me refiero después de haber seguido el tercer video, quedan protegidos los directorios Usuario y Admin, pero me refiero al archivo login.php propio. Si escribis: main_app/Admin retorna perfecto pero no si escribis main/login.php. Ahi es donde se muere el servidor. El propio archivo login.php tiene solo session_start(); pero no tiene la validacion if(isset($_SESSION['usuario'])){.... como los index.php. Espero haberme explicado.
O sea que tu tienes el index y el login en archivos separados, según entiendo no? En ese caso sería lo mismo en ambos archivos, para saber si ya se ha iniciado sesión bro. :)
Aahhhh nooo, en ese no, pero en login.php se valida que sólo si la petición es mediante AJAX, se realizará todo, de lo contrario no. Así que aunque se intente ingresar a ese archivo mediante la URL no serviría nada, sin embargo si quieres hacerlo más seguro aún, puedes validar que si no existe la sesión, pues que lo saque de ahí, y si existe pues que se ejecute el código que está ahora.
Hola que tal LexterXPS saludos, ya he aplicado los cambios que realizas en el vídeo en mi código pero, ni en consola me muestra un error solo se queda Validando? ya revise y pues nada más no le encuentro el error, esto es lo que muestra >Object {error: true} jquery-3.2.1.min.js:2 complete Gracias .
muchas gracias, solo agregaria algo que tal vez sea útil. Si alguien intenta hacerlo, sabemos que utilizará para ingresar con 'or '1'='1, podriamos guardar algo para saber de donde vino el intento?
@@pablo94371 claro yo decía poder guardar en una tabla a tal fin, los datos del ataque, digo ip, server, trace, etc y como bien vos sugeriste la geolocalización. Gracias y saludos
Hola amigo muy buenos videos me ha servido mucho para aprender pero tengo un problema cuando estoy en la pagina del usuario hace todo lo que debe hacer pero al presionar la flecha hacia atras del navegador me carda la pagina del administrador, no lo he podido resolver, espero tu ayuda gracias man.
Sí, siempre y cuando la sesión sea del administrador. Eso lo enseño en el siguiente vídeo donde usamos sesiones, ahí se puede hacer, pero sólo teniendo permiso, puedes buscarlo en mi canal "Uso de sesiones".
Ok muchas gracias. Me están siendo de mucha ayuda tus tutoriales. Seguiré probando a ver donde puede estar el fallo en el código, ya que sí soporta php y tengo la 7.01.
Hola! Estoy haciendo el tutorial y el del primer video me funciona correcto, pero cuando modifico con los cambios de este vídeo, me da error. La linea que me salta el error, despues de buscar y quitar código, es esta: if ($nueva_consulta = $mysqli->prepare("SELECT nombre, Tipo_usuario FROM usuarios WHERE usuario = ? AND clave = ?")){ En la consola el error me dice: login.php 500 (Internal Server Error) jQuery-3.1.1.min.js:4 La linea 4 corresponde a: xhr.send( ( options.hasContent && options.data ) || null ); ¿Por qué puede ser? Estoy ejecutando el código en un servidor, no en el ordenador, ¿puede ser por eso?
El error 500 quiere decir que hubo un problema con el servidor y la petición no se envía o es rechazada. No tiene mucho que ver con el código, sino con el servidor en sí.
Me ha costado lo mío, pero ya lo tengo! Era porque en mi server no está instalada la librería mysqlnd, por lo que no se puede usar ->get_result. En lugar de eso debo usar bind_result y fetch. Una vez adaptado el código funciona perfectamente.
Que tal LexterXPS tengo una duda el tu link rel="stylesheet" href="css/main.css" supongo que es todo tu estilo de tu proyecto, cierto? y por que mi error no se oculta, siempre que recargo mi pagina esta presente el error y no se como esconderlo
porque no me funciona cuando los datos son correctos, mi consulta tiene un error, le hice la modificación para que mis usuarios puedan entrar con su correo o con el nombre de usuario. esta es mi consulta: SELECT name FROM users WHERE (name = ? OR email = ?) AND pass = ? pero cuando los datos son correctos ejecuta esta funcion: .fail(function(resp){ console.log(resp.resposeText); }) en lugar de .done(function(respuesta){ console.log(respuesta); if(respuesta.error == false){ location.href = 'layout/index.php'; }else{ $('.error').slideDown('slow'); setTimeout(function(){ $('.error').slideUp('slow'); },3000); $('.boton').val('Iniciar Sesión'); } }) y por lo tanto se queda validando aun que las instrucciones ya se hayan ejecutado
Hermano debes tener en cuenta esto, no te recomiendo que tomes el nombre como un identificador para acceso, porque pueden tener dos usuario el mismo nombre entonces esto puede entrar en conflicto en la BD y la comparacion de usuarios, tienes que buscar un campo donde el identificador sea unico, me gusta la idea del correo electronico, te puede pasar que tengas registrado dos pernas con nombre juan y esto pasa el sistema no podra identificar de cual juan de los dos le dara el acceso y puede pasar que uno de los dos entre el panel que no le corresponda,. ten pendiente esta parte
Buenas noches gracias por compartir sus conocimientos... tengo un problema quiza podria ayudarme Al momentos de logearme me sale esto linea 41 $mysqli->close(); ?> COnsola me muestra esto Notice: Undefined variable: mysqli in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php on line 42 Fatal error: Uncaught Error: Call to a member function close() on null in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php:42 Stack trace: #0 {main} thrown in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php on line 42 main.js:33 complete
Al parecer la variabale de conexión a la base de datos no está declarada en el script PHP, por eso no la reconoce. Haría que revisar donde está esa variable, y asegurarse que está siendo integrada y/o agregada en el script donde se usa.
si, cuando creas la base de datos en phpmyadmin y creas los campos pones por ejemplo codigo de tipo (int,varchar, etc.) eso quisiera saber, en tu tabla
Para los nombres de usuario utiliza varchar y para la clave igual porque la clave puede tener valores numericos, letras etc, para el tipo de usuario varchar y para el identificador de fila entero
Muy buenos videos bro, el primero me salio perfecto y en este estoy teniendo un problemita, me sale esto en la consola: mysqli_stmt::bind_result() expects at least 1 parameter, 0 given in C:\xampp\htdocs\PortalTestPHP\validatelogin.php
Ojo que a bind_result le debes pasar las variables que vas a usar en la sentencia preparada creada anteriormente, al parecer no le estás pasando nada. Si sigues el vídeo, no uso bind_result, sino bind_param .
yo igual estoy usando bind_param, pero cambie el get_result por el bind_result porque no me funcionaba. Actualice el bind_param por el bind result y me da esto Uncaught Error: Cannot pass parameter 1 by reference
Muy buen video, pero tengo un error, seguí paso a paso tus videos pero no puedo ni agregar una imagen y eso que me descargue el archivo css que subiste y bueno el segundo problema es que a la hora de validar si lo hace, pero el problema que tengo es en main.js que no me redirige a las paginas tanto de admin como la de usuarios, sale el error que la direccion login/main_app/Admin no se encuentra en el servidor. Ayudame porfa
Ahi sigues hice todo paso a paso y me manda un error me podrias ayuadar ese es el error Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\xampp\htdocs\Login_Tutorial\Main_app\login.php on line 6 la ninea 6 es esta $mysqli=>set_charset('utf8'); solo se queda validando
De maravilla aplausos...........Bro si agrego a mi base de datos 2 usuarios con las mismas contraseñas pero lo único que cambia es la primera letra mayúscula del usuario y los tipos de usuario ejemplo: 1.- usuario:alberto, contraseña:123 y tipo_usuario Admin 2.-usuario: Alberto, contraseña:123 y tipo_usuario:Usuario. no me deja lograr y me lanza el mensaje de datos no validos. es parte de la seguridad que se aplico? o en mi código hay un error? Saludos, en verdad eres un Master.
Debes revisar, te sugiero que para ese caso. hagas que la validación del login sea Case Sensitive, basta con que le agregues a la consulta SQL WHERE BINARY... a cada campo de la cláusula WHERE.
Veo un error en tu código, tu codigo en la variable $dato( $dato = $resultado->fetch_assoc(); -----------> debes colocarlo de esta manera $datos = $resultado->fetch_assoc(); ------------> te falto esa letra) cuando haces referencias en $datos['Tipo_usuario'])); te da error porque no reconoce esa variable porque para el no existe, que no tiene datos por eso da un error debe quedar de esta manera if($resultado->num_rows ==1) { $datos = $resultado->fetch_assoc(); echo json_encode(array('error'=> false,'tipo'=> $datos['Tipo_usuario'])); }else{ echo json_encode(array('error'=> true)); } espero que te ayude hermano, si te ayudo me dejas saber y si no también espero tu respuesta
Deberías subir los archivos php y js, me sale error en login.php, que mwsqli no está definido, no lo encuentra, y entra directo al fail, aparte de que no muestra el mensaje de error en la parte superior :c
Pues el error te está diciendo lo que pasa bro. El objeto mysqli no está definido, revisa el archivo de conexión y revisa si los nombres están bien escritos. El mensaje superior no va a aparecer habiendo errores así.
LexterXPS Gracias. La verdad que no, no entie do por qué no salga bien, lo copié como tal, incluso hoy mismo estuve con mi profesor checandolo y dijo que no habría por qué salir ese error si está bien escrito
me salio este error en la consola Fatal error: Call to undefined method mysqli_stmt::get_result() in C:\VertrigoServ\www\sutetech\logiprincs\login.php on line 11 y aquí se queda validando... y nada.
buen video amigo,pero me sale este error, por favor ayudame Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\ControlEscolarUTC\Usuarios\login1.php on line 19
Tomando en cuenta que este vídeo tiene 6 años a este momento, la lógica pierde validez en la password ya que sí es válido poner un caracter para que a contraseña sea más fuerte. Por lo cual el SQL injection no se checa en el cliente, si no que en el servidor o back-end, con query parametrizadas, en php con las funciones input_get o input_post en vez de $_GET o $_POST. Saludos pd: si utilizan Laravel o variantes, o cualquier otro framework PHP esto viene por defecto protegido para SQL Injection, pero no quita que siempre tengas q tener mucho cuidado.
Hola, sí tienes toda la razón. Grabé este video hace ya bastante tiempo y ahora hay muchas y mejorares herramientas para desarrollo. Sin embargo, muchas personas prefieren no hacerlo y dejan de lado la seguridad de las aplicaciones.
Hola me aparece este error en la consola al ejecutar : Fatal error: Call to a member function close() on null in C:\xampp\htdocs\Secure_Mining\Main_app\login.php on line 33 main.js:38 complete me podrias ayudar o dejar un link con el archivo login.php Gracias
ya descubri la falla: debe quedar el if igual a este if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
@@LexterDev ejemplo una pagina x debil a sql injection y ya cambie el password a text pero no jala :v y probe usando usuario real pero que pasa por que no jala?
Tremendo muchas gracias. había un Prof. en la uni que reprobó a todos por no tener seguridad XD Menos a mi gracias a ti :3
EXCELENTE TUTORIAL ME SIRVIÓ MUCHO TIENES UN SUSCRIPTOR MAS.....
que pasa si en una consulta uso prepare y execute con variables ficticias : pero no uso bind param ¿sería vulnerable?
de lo mejor!!!!!!!!
ya estoy mas que suscrito y con campanita activa :v!!!
gracias hermano!!!!
Saludos!!!!
Puedes publicar el codgio del login en github?
hola LexterXPS, primero que nada muy buenos videos me han servido de mucho. He realizado todo el tutorial y se queda validando, checho la consola y dice complete
Excelente tutorial, saludos 🇺🇾
Hola, muchas gracias; despejaste muchas dudas.
Por otro lado, no encuentro en tu canal el video de como armaste tu código HTML y CSS.
Saludos
el unico que no esta es el css lo demas lo consigues escribiendolo tu, el css esta en su primer de es tutorial, son 3 en total
me podrías ayudar, se me queda en validación infinita
ya replique los dos videos, geniales amigo muchas gracias me has ayudado mucho, me gustaria saber si tenes mas videos pero haciendo una aplicacion con admin lte template de menus
hola me podrias pasar el codigo por favor a mi correo axel.910921@gmail.com, a mi no me funciona el codigo del segundo video
Hola tengo este problema al momento de enviar los de usuario y contraseña el login se queda validando... pero solo pasa cuando ingreso usuarios y contraseña correctos en los incorrectos me aparece el mensaje diciendo que el usuario y contraseña son incorrectos
Eso sirve para evitar que te doxxen?
Muchas gracias, me sirvió bastante!
Con gusto. Qué bueno que te haya servido. Un saludo 😁.
amigo por si solo el real_escape_string es capas de eliminar los caracteres especiales que son enviados al servidor?
Hola bro todo perfecto no me manda ningun error, solamente que en cosola dice.
complete
XHR finished loading: POST " direccion de mi codigo en el servidor localhost"
Y no me carga a la pagina de admin. Alguna recomendacion?
1:44 mi mente explota
Como hacer que solo se pueda tener una unica sesion por usuario? Es decir, no multi login.
una consulta, ese ' or'1'=1 si lo pongo en la url del sitio web, tambien podría ocacionar injection sql ??
No, porque la petición el formilario se envía por medio de método POST, en la URL es otra cosa.
@@LexterDev gracias por aclarar, una ultima consulta, por la url del sitio web, como pueden acceder ? quizas pienso yo con un csrf, xss ?
Osea que si uso opera mini puedo poner ese código en el campo de password y tendría el acceso de igualmenera ya que no soporta el pattern
No, porque para eso también se usa seguridad del lado del servidor. Saludos :)
Hola LexterXPS
, muchas gracias por los vídeos. Están genial y me han servido de mucho. Solo tengo una consulta, ¿cómo se haría para poder hacer el login con un password que está encriptado, por ejemplo con sha1, en la base de datos? He probado en el archivo login.php y que la variable $pas sea un sha1(post) pero no funciona. En cualquier caso, gracias.
Pues sólo debes comparar la cadena sha1 convirtiéndola en sha1 al momento de consultar. SHA1($_POST['password'])
@@LexterDev Muchas gracias por tu rápida respuesta. El caso es que no me funciona. He probado dos opciones en el login.php:
1) $pas = $mysqli->real_escape_string(sha1($_POST['passlg'])); y no va, incluso eliminando el real_escape_string
2) Y la segunda forma, dejando $pas como está, sin el sha1, y crear una variable $pass = sha1($pas); y en $nueva_consulta->bind_param('ss',$usuario,$pass) pero tampoco me funciona.
Mil gracias si puedes responderme, es para un trabajo que tengo que entregar!!!
hola, te hago una consulta, hice el codigo tal cual lo tenes vos... nada mas que con mis datos de conexion a mi base de datos... pero me tira 'HTTP ERROR 500' y no puede accederse a la pagina... como puedo saber de donde proviene el error??
Ese error es de servidor bro, no es problema del código. Revisa que tu servidor tengas las extensiones necesarias para trabajar con este código, porque parece ser que no. Saludos
Muy buen tuto! Sirve!
Hola nuevamente gracias por tus tutoriales, me podrás sacar una duda, el archivo login.php necesita protegerse verificando inicio de sesión al igual que los index de usuario y admin? por ejemplo para que al escribir en la barra de direcciones: main_app/login.php redireccione en caso de no haber iniciado sesión? Gracias y Saludos!!!
Si bro. Eso lo hago en la tercer parte. La puedes buscar en mi canal😋
Gracias, justamente a eso me refiero después de haber seguido el tercer video, quedan protegidos los directorios Usuario y Admin, pero me refiero al archivo login.php propio. Si escribis: main_app/Admin retorna perfecto pero no si escribis main/login.php. Ahi es donde se muere el servidor. El propio archivo login.php tiene solo session_start(); pero no tiene la validacion if(isset($_SESSION['usuario'])){.... como los index.php. Espero haberme explicado.
O sea que tu tienes el index y el login en archivos separados, según entiendo no? En ese caso sería lo mismo en ambos archivos, para saber si ya se ha iniciado sesión bro. :)
como esta ahí en el tutorial, Index es un archivo con el formulario, y login.php es el acceso a la bd, en ese archivo no hay restricción con sesion.
Aahhhh nooo, en ese no, pero en login.php se valida que sólo si la petición es mediante AJAX, se realizará todo, de lo contrario no. Así que aunque se intente ingresar a ese archivo mediante la URL no serviría nada, sin embargo si quieres hacerlo más seguro aún, puedes validar que si no existe la sesión, pues que lo saque de ahí, y si existe pues que se ejecute el código que está ahora.
Muy Bueno el video algo que me llamo la atención es que las url no muestran la extención de los archivos como hiciste eso
Aaaaaahhh si, bueno en realidad uso WAMP versión 3.x y ya es opcional ponerla por la versión de apache que trae. Saludos
basicamente el WAMP crea un htaccess que hace que las urls sean amigables... puedes buscar como crear un .htaccess a mano para hacerlo
Muchas gracias bro!
Hola que tal LexterXPS saludos, ya he aplicado los cambios que realizas en el vídeo en mi código pero, ni en consola me muestra un error solo se queda Validando? ya revise y pues nada más no le encuentro el error,
esto es lo que muestra
>Object {error: true} jquery-3.2.1.min.js:2
complete
Gracias .
Al parecer el error es del lado del archivo php bro. Por eso se queda así.
muchas gracias, solo agregaria algo que tal vez sea útil. Si alguien intenta hacerlo, sabemos que utilizará para ingresar con 'or '1'='1, podriamos guardar algo para saber de donde vino el intento?
que tal podrias acceder a la geolocalizacion de quien intenta ingresar y guardar esa geolocalizacion eso en cualquier formulario que uses
@@pablo94371 claro yo decía poder guardar en una tabla a tal fin, los datos del ataque, digo ip, server, trace, etc y como bien vos sugeriste la geolocalización. Gracias y saludos
Hola amigo muy buenos videos me ha servido mucho para aprender pero tengo un problema cuando estoy en la pagina del usuario hace todo lo que debe hacer pero al presionar la flecha hacia atras del navegador me carda la pagina del administrador, no lo he podido resolver, espero tu ayuda gracias man.
Eso se soluciona en la parte 3 bro, dónde muestro el uso de sesiones para evitar eso, puedes buscarla en mi canal :)
puedes acceder con url a la carpeta raiz del administrador?
Sí, siempre y cuando la sesión sea del administrador. Eso lo enseño en el siguiente vídeo donde usamos sesiones, ahí se puede hacer, pero sólo teniendo permiso, puedes buscarlo en mi canal "Uso de sesiones".
Tengo problemas para poder hacerlo funcionar en un servidor con Nginx ¿Es posible que Ajax no funcione en este servidor?
Por AJAX no hay problema, se ejecuta en el navegador. Verifica que NGinx tenga soporte para PHP y verifica la versión que sea mínimo 5.5.
Ok muchas gracias. Me están siendo de mucha ayuda tus tutoriales. Seguiré probando a ver donde puede estar el fallo en el código, ya que sí soporta php y tengo la 7.01.
Hola! Estoy haciendo el tutorial y el del primer video me funciona correcto, pero cuando modifico con los cambios de este vídeo, me da error. La linea que me salta el error, despues de buscar y quitar código, es esta: if ($nueva_consulta = $mysqli->prepare("SELECT nombre, Tipo_usuario FROM usuarios WHERE usuario = ? AND clave = ?")){ En la consola el error me dice: login.php 500 (Internal Server Error) jQuery-3.1.1.min.js:4 La linea 4 corresponde a: xhr.send( ( options.hasContent && options.data ) || null ); ¿Por qué puede ser? Estoy ejecutando el código en un servidor, no en el ordenador, ¿puede ser por eso?
El error 500 quiere decir que hubo un problema con el servidor y la petición no se envía o es rechazada. No tiene mucho que ver con el código, sino con el servidor en sí.
Me ha costado lo mío, pero ya lo tengo! Era porque en mi server no está instalada la librería mysqlnd, por lo que no se puede usar ->get_result. En lugar de eso debo usar bind_result y fetch. Una vez adaptado el código funciona perfectamente.
Ahh genial bro, el problema en efecto estaba en el servidor. Genial que ya lo solucionaste :)
Hola amigo, por favor podrías indicarme como hiciste el arreglo. Resulta que tengo el mismo problema que comentas
@@marcosromero5938 amigo en que parte del código utilizas el bind_result y el fetch??
Puedes publicar el código?.......
Que tal LexterXPS tengo una duda el tu link rel="stylesheet" href="css/main.css" supongo que es todo tu estilo de tu proyecto, cierto? y por que mi error no se oculta, siempre que recargo mi pagina esta presente el error y no se como esconderlo
REvisa que el div tenga la clase "error" y que en el css, esa clase tenga un display: none.
muchas gracias, te agradezco... excelentes vídeos, en cambio de doy like y me suscribo
pueden mandar el archivo comprimido por favor
porque no me funciona cuando los datos son correctos, mi consulta tiene un error, le hice la modificación para que mis usuarios puedan entrar con su correo o con el nombre de usuario. esta es mi consulta:
SELECT name FROM users WHERE (name = ? OR email = ?) AND pass = ?
pero cuando los datos son correctos ejecuta esta funcion:
.fail(function(resp){
console.log(resp.resposeText);
})
en lugar de
.done(function(respuesta){
console.log(respuesta);
if(respuesta.error == false){
location.href = 'layout/index.php';
}else{
$('.error').slideDown('slow');
setTimeout(function(){
$('.error').slideUp('slow');
},3000);
$('.boton').val('Iniciar Sesión');
}
})
y por lo tanto se queda validando aun que las instrucciones ya se hayan ejecutado
ya encontré mi error le habia cambiado el nombre a una variable
Hermano debes tener en cuenta esto, no te recomiendo que tomes el nombre como un identificador para acceso, porque pueden tener dos usuario el mismo nombre entonces esto puede entrar en conflicto en la BD y la comparacion de usuarios, tienes que buscar un campo donde el identificador sea unico, me gusta la idea del correo electronico, te puede pasar que tengas registrado dos pernas con nombre juan y esto pasa el sistema no podra identificar de cual juan de los dos le dara el acceso y puede pasar que uno de los dos entre el panel que no le corresponda,.
ten pendiente esta parte
Buenos Videos :)
Interesante vídeo ✌👍
Sin duda, es un área que muchos dejan de lado, la seguridad. Saludos bro. :)
Buenas noches gracias por compartir sus conocimientos... tengo un problema quiza podria ayudarme
Al momentos de logearme me sale esto
linea 41 $mysqli->close();
?>
COnsola me muestra esto
Notice: Undefined variable: mysqli in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php on line 42
Fatal error: Uncaught Error: Call to a member function close() on null in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php:42
Stack trace:
#0 {main}
thrown in C:\xampp\htdocs\facturacion\Login_Tutorial\Main_app\login.php on line 42
main.js:33 complete
Al parecer la variabale de conexión a la base de datos no está declarada en el script PHP, por eso no la reconoce. Haría que revisar donde está esa variable, y asegurarse que está siendo integrada y/o agregada en el script donde se usa.
Para quitarle esa seguridad solo tengo que darle a inspeccionar elemento y borrar eso
¿que tipo de datos son en la base de datos?
Qué tipo de datos? no entiendo tu pregunta, si me la explicas mejor para poder ayudarte :)
si, cuando creas la base de datos en phpmyadmin y creas los campos pones por ejemplo codigo de tipo (int,varchar, etc.) eso quisiera saber, en tu tabla
Para los nombres de usuario utiliza varchar y para la clave igual porque la clave puede tener valores numericos, letras etc, para el tipo de usuario varchar y para el identificador de fila entero
Muy buenos videos bro, el primero me salio perfecto y en este estoy teniendo un problemita, me sale esto en la consola:
mysqli_stmt::bind_result() expects at least 1 parameter, 0 given in C:\xampp\htdocs\PortalTestPHP\validatelogin.php
Ojo que a bind_result le debes pasar las variables que vas a usar en la sentencia preparada creada anteriormente, al parecer no le estás pasando nada. Si sigues el vídeo, no uso bind_result, sino bind_param .
yo igual estoy usando bind_param, pero cambie el get_result por el bind_result porque no me funcionaba. Actualice el bind_param por el bind result y me da esto Uncaught Error: Cannot pass parameter 1 by reference
Amigo, como hago esa "notifiacion" que muestran al logearse incorrectamente.
Eso lo muestro en la parte 1 bro, ahí está el código HTML y el CSS en la descripción de ese vídeo :)
Oh, SUPER! gracias :) muy buenos vídeos! Saludos.
Saludos bro :)
Muy buen video, pero tengo un error, seguí paso a paso tus videos pero no puedo ni agregar una imagen y eso que me descargue el archivo css que subiste y bueno el segundo problema es que a la hora de validar si lo hace, pero el problema que tengo es en main.js que no me redirige a las paginas tanto de admin como la de usuarios, sale el error que la direccion login/main_app/Admin no se encuentra en el servidor. Ayudame porfa
Agregar una imagen? Dónde o cómo? Y con lo otro, revisa las rutas, si te dice eso es porque está mal alguna de esas.
Porfa, me puedes pasar tu proyecto porfa al correo djalvarados@gmail.com. Gracias de antemano por tu apoyo
Ahi sigues hice todo paso a paso y me manda un error me podrias ayuadar ese es el error
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\xampp\htdocs\Login_Tutorial\Main_app\login.php on line 6
la ninea 6 es esta
$mysqli=>set_charset('utf8');
solo se queda validando
ES $mysqli->set_charset('utf8'); // como el error indica estas utilizando Doble fecha => y se usa Fecha simple ->
Es guion, no un igual: $mysqli -> set_charset('utf8');
excelente video amigo gracias, el codigo para poder verlo lo podras poner para descargar
De maravilla aplausos...........Bro si agrego a mi base de datos 2 usuarios con las mismas contraseñas pero lo único que cambia es la primera letra mayúscula del usuario y los tipos de usuario ejemplo: 1.- usuario:alberto, contraseña:123 y tipo_usuario Admin 2.-usuario: Alberto, contraseña:123 y tipo_usuario:Usuario. no me deja lograr y me lanza el mensaje de datos no validos. es parte de la seguridad que se aplico? o en mi código hay un error?
Saludos, en verdad eres un Master.
Debes revisar, te sugiero que para ese caso. hagas que la validación del login sea Case Sensitive, basta con que le agregues a la consulta SQL WHERE BINARY... a cada campo de la cláusula WHERE.
publica el codigo porfavor
hola se queda verificando no hacen el login se me puedes apoyar, ya cheque los comentarios anteriores
Veo un error en tu código, tu codigo en la variable $dato( $dato = $resultado->fetch_assoc(); -----------> debes colocarlo de esta manera $datos = $resultado->fetch_assoc(); ------------> te falto esa letra) cuando haces referencias en $datos['Tipo_usuario'])); te da error porque no reconoce esa variable porque para el no existe, que no tiene datos por eso da un error debe quedar de esta manera
if($resultado->num_rows ==1) {
$datos = $resultado->fetch_assoc();
echo json_encode(array('error'=> false,'tipo'=> $datos['Tipo_usuario']));
}else{
echo json_encode(array('error'=> true));
}
espero que te ayude hermano, si te ayudo me dejas saber y si no también espero tu respuesta
Deberías subir los archivos php y js, me sale error en
login.php, que mwsqli no está definido, no lo encuentra, y entra directo al fail, aparte de que no muestra el mensaje de error en la parte superior :c
Pues el error te está diciendo lo que pasa bro. El objeto mysqli no está definido, revisa el archivo de conexión y revisa si los nombres están bien escritos. El mensaje superior no va a aparecer habiendo errores así.
LexterXPS Gracias.
La verdad que no, no entie do por qué no salga bien, lo copié como tal, incluso hoy mismo estuve con mi profesor checandolo y dijo que no habría por qué salir ese error si está bien escrito
el primero me salio genial y con esta modificación se queda validando y nada,
Si queda así es por algún error en el código bro. Revisa la consola puede que el error esté ahí
he revisado y nada "profe",
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
require 'conexion.php';
sleep(2);
$mysqli->set_charset('utf8');
$usuario=$mysqli->real_escape_string($_POST['usuariolg']);
$pas=$mysqli->real_escape_string($_POST['passlg']);
if($nueva_consulta = $mysqli->prepare("SELECT Nombre, Tipo_usuario FROM usuarios WHERE Usuario = ? AND Password = ? ")){
$nueva_consulta->bind_param('ss',$usuario,$pas);
$nueva_consulta->execute();
$resultado = $nueva_consulta->get_result();
if($resultado->num_rows == 1){
$datos = $resultado->fetch_assoc();
echo json_encode(array('error'=>false,'tipo'=> $datos['Tipo_usuario']));
}else{
echo json_encode(array('error'=>true));
}
$nueva_consulta->close();
}
}
$mysqli->close();
?>
Revisaste la consola? Si hay un error ahí te lo va a mostrar bro
me salio este error en la consola
Fatal error: Call to undefined method mysqli_stmt::get_result() in C:\VertrigoServ\www\sutetech\logiprincs\login.php on line 11 y aquí se queda validando... y nada.
Ese error es porque no tienes instalada la extensión mysqlnd en el servidor. Prueba usando bind_result() en lugar de get_result()
buen video amigo,pero me sale este error, por favor ayudame
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\ControlEscolarUTC\Usuarios\login1.php on line 19
Ese es un error por una mala concatenación, hay una comilla sin cerrar bien, puede ser por eso. Revisa.
Tomando en cuenta que este vídeo tiene 6 años a este momento, la lógica pierde validez en la password ya que sí es válido poner un caracter para que a contraseña sea más fuerte. Por lo cual el SQL injection no se checa en el cliente, si no que en el servidor o back-end, con query parametrizadas, en php con las funciones input_get o input_post en vez de $_GET o $_POST. Saludos
pd: si utilizan Laravel o variantes, o cualquier otro framework PHP esto viene por defecto protegido para SQL Injection, pero no quita que siempre tengas q tener mucho cuidado.
Hola, sí tienes toda la razón. Grabé este video hace ya bastante tiempo y ahora hay muchas y mejorares herramientas para desarrollo. Sin embargo, muchas personas prefieren no hacerlo y dejan de lado la seguridad de las aplicaciones.
@@LexterDev te confiezo q mis primeras aplicaciones en PHP era SQL injectables, hasta q no lo vives no lo sientes jajaja saludos.
Hola me aparece este error en la consola al ejecutar :
Fatal error: Call to a member function close() on null in C:\xampp\htdocs\Secure_Mining\Main_app\login.php on line 33
main.js:38 complete
me podrias ayudar o dejar un link con el archivo login.php
Gracias
ya descubri la falla:
debe quedar el if igual a este
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
Ok bro, genial :)
Muchas gracias excelentes tutoriales
Tenia el mismo error solo copie y pegue tu liga y ya quedo :) Thanks!!!
oye
Lol :v pero si no lo cambio desde los documentos no afecta o si?
A qué te refieres exactamente bro?
@@LexterDev ejemplo una pagina x debil a sql injection y ya cambie el password a text pero no jala :v y probe usando usuario real pero que pasa por que no jala?
Podría contactarte por facebook para mostrarte capturas de cómo lo tengo?
Dale, en la descripción del vídeo está el fb. Manda un inbox y me dices.
compoartan el codigo
¿Amigo hazme este favor, has un video de sql injection con php o mysql y tengo 40 cuenta y me sub y te doy like? si va