Excelente Curso, volvi a retomar desde el Video 1 ya que me aleje para adentrarme en Redes CCNA, lo cual me llevo un año autodidacta. En fin queria comentar que yo agregue algo para verificar si el campo llega vacio, que te diga "Complete el campo" si asi lo fuera simplemente luego de hacer la conexion en la segunda pagina PHP y antes de pasar lo que trae el campo GET a una variable, if($_GET["buscar"] !== " " ){ ........ }else{ echo "Complete el formulario!"; } Bueno no se si lo habran comentado ya pero queria aportar eso. Saludos Maestro y excelente sus cursos seguimos aprendiendo! 2020
Me he quedado muy sorprendido con el tema de la inyección. En las webs profesionales no se puede hacer. Es importante proteger nuestras páginas. Un saludo y gracias por el curso.
No es por nada, pero el aprendizaje con tus cursos se me está conviertiendo como en adicción, jajaj. Prendo el computador y siento que falta algo y me doy cuenta que es darle al play.... jajja. Muy agradecido.
Me he quedado sorprendido, gracias porque nunca he visto una clase en la que no haya aprendido algo que realmente me emocione y quede fascinado al aprender.
Saludos, profesor Juan, desde Zulia Venezuela, le doy muy sinceras gracias por tan importante aporte a difundir la programación alrededor del mundo y ayudarnos aprender una excelente carrera. Aprovecho la oportunidad del mensaje para hacerle una consulta... en este vídeo #47, en la ultima parte donde se eliminan registros, cuando ejecuto el código aparentemente funciona perfectamente, me devuelve el mensaje baja ejecutada, sin embargo en la tabla USUARIOS de Mysql, no elimina el registro..
Interesantisimo el tema, no tenia conocimiento acerca de estos riesgos, y como tan buen curioso me fui a probarlo a paginas de farmacias, y todas redirigen hacia paginas 403 jeje
Muy buenas.... Una cosa importante que quiero comentar, he probado la inyección SQL y funciona, pero me he dado cuenta que sin introducir nada en el cuadro de texto y pulsar en buscar nos muestra la tabla sin necesidad de inyección SQL. Cómo lo arreglamos. Una vez más lo mencionó, excelente trabajo, gracis
Creo que por la pandemia muchas empresas mejoraron el funcionamiento de sus páginas web, al menos las que verifiqué el método de inyectado SQL no funciona. De todas formas esta información es útil para principiantes.
Excelentes videos todos, explicados paso a paso como debe ser, eso se llama excelencia, no hacer las cosas por salir del paso. Profe si esta en tus posibilidades subir un curso sobre Django, ya que nunca lo he podido completar, porque siempre me salen errores y he intentado pero no los he podido resolver, saludos.
es un tema muy interesante, lo he intentado pero parece que ya no se puede hacer (al menos en este ejemplo, seguramente hayan mas formas en que se puede vulnerar), pero en mi caso automáticamente se cambia la ultima comilla generando un error en la consulta.
@@pildorasinformaticas lo estare esperando con ansias.. Un saludo desde bogota colombia y muchas gracias por tu esfuerzo de enseñar y soportar a los que hacen comentarios mal intencionados.
+pildorasinformaticas un cordial saludos desde Rep.Dom, sigo tus vídeos. excelente trabajo. Me preguntaba si en lo concerniente a este ultimo tendrás alguno donde expliques así detalladamente inseguridad sobre XSS. de antemano Gracias
+Richard Hernandez Hola !! No, no lo tengo. De momento este es el último vídeo del curso, pero pronto saldrá el siguiente. De todas formas no voy a profundizar en seguridad Cross Scripting ni similar. Un saludo
+Khalifa Boulbayem Así es. Todo criterio SQL establecido con Where puede verse afectado por inyección SQL si no se toman las medidas oportunas. Un saludo
En este último video cuando aplicas la sentencia SQL "DELETE" veo que le has quitado el asterisco, me puedes decir porque?. Y si introduces un nombre que no está registrado en la consulta te dice que la baja ha sido procesada aunque no sea cierto... ¿ Está bien el condicional?. Por supuesto, te agradezco de antemano la respuesta, así como las clases del curso.
+CARLOS RODRIGUEZ Hola !! MySql no admite el * en sentencias DELETE. Puedes probarlo y lo verás. El condicional se mejora en el vídeo siguiente para que no pase lo que mencionas. Un saludo
Si revisas la clase donde se trata el tema de eliminar registros (creo es en el vídeo 45) encontrarás la respuesta. De todas formas aquí te dejo un fragmento de código que considero responderá tu pregunta. Saludos cordiales. $resultados = mysqli_query($conexion, $query); if($resultados == false){ echo "Error en la consulta"; }else{ /*Para solucionar la incoherencia de que nos diga que ha eliminado un registro cuando en realidad no ha encontrado nada para eliminar, usaremos la función mysqli_affected_rows aquí dentro de un condicional anidado. */ if(mysqli_affected_rows($conexion)== 0){ echo "No hay registros a eliminar. Se ha encontrado " . mysqli_affected_rows($conexion) . " fila con ese criterio."; }elseif(mysqli_affected_rows($conexion)== 1){ echo "Se ha eliminado 1 registro que coincide con este criterio."; }else{ echo "Se han eliminado " . mysqli_affected_rows($conexion) . " registros coincidentes con este criterio."; } }
Excelente tutorial, una duda, cuando escribo 'or '1'='1 en mi formulario de login no me aparece ninguno de los datos registrados, simplemente me arroja esto la pantalla: SELECT * FROM REGISTRO WHERE USUARIO='Juan' AND CONTRASENA='\' or \'1\'=\'1'....... aparecen esas diagonales, pero no me muestra ningún dato registrado, de igual manera para la búsqueda de productos, no me arroja ningún resultado al momento de poner el or, gracias!
Gracias por responder. Y si, sin duda es algo extraño, he seguido el curso desde el inicio (felicidades por cierto, explicas muy bien), y hasta ahora no había tenido ningún error, el código es el siguiente:
Profe muchas gracias por el vídeo, pero no me funciona lo del apostrofe, no se si estoy escribiendo la tecla correcta, agradezco por favor su claridad con este símbolo
Buenos dias desde mexico Pildorasinformaticas. no tiene nada que ver mi pregunta. pero me gustaria saber si me puedes ayudarme. como puedo leer de un lector de codigo d barras desde el lenguaje php?
Hola! voy por la mitad del curso y no se si podré resolver la duda que tengo...Debo solucionar un problema en una página que no fue hecha por mi. Desde una aplicación en un celular se envía un mensaje de whatssap con un link a un destinatario, con la información de un sitio de internet, pero el enlace no funciona. Le podría enviar el código para que me pueda ayudar? Desde ya muchas gracias!!
¿Qué instrucción sql me permite a mi buscar por cualquier palabra que use en una bbdd? Si tengo varios campos y que por cualquiera se pueda buscar y no sólo por uno. Algo global.
Hola !! En una BBDD entera no conozco tal instrucción sql. Hay por ahí scripts que permiten buscar un término en una BBDD MySql por ejemplo siempre que tengas acceso al servidor. pero nos e trata de instrucción sql sino de scripts php. Busca en google porque son varias líneas de código y es imposible acordarse de memoria. Un saludo!!
una cosa no entiendo, si uno no declara con ECHO para que imprima la sentencia SQL por pantalla, sino se tiene ese dato, como va a funcionar esa inyeccion?
+Matias Daneri Dime minuto y segundo del vídeo donde aparece la instrucción para que no la tenga que buscar. Son muchas dudas y muchos vídeos !! Un saludo
También valdría la que tú pones, pero estamos escribiendo más. No es necesario. El caso es escribir dentro del cuadro de texto una condición que se cumpla siempre (en el vídeo se ponen dos ejemplo 1=1 z=z). Y cuanto menos escribamos, pues mejor. Un saludo!!
Hola profesor tengo una pregunta: cuando no se encuentra el usuario,articulo en la base de datos, como puedo mostrar en pantalla que el articulo ,usuario no se encuentra?
Pues varias formas, por ejemplo: utilizando un contador dentro del while que recorre el recordset de la consulta o utilizando la función rowCount(). Si utilizas un contador lo declaras fuera del while y lo igualas a 0. Dentro del while lo incrementas. Si cambia el valor inicial quiere decir que ha encontrado registros. Si no cambia no ha encontrado registros. Evaluar esto con un if es sencillo. Si utilizas rowCount() esta función devuelve el nº de filas resultante de la consulta. Si es=0 quiere decir que no hay registros. Si buscas rowCount en google encontrarás muchos ejemplos de uso. Un saludo!!
maestro me da error : Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\curso_php_pildoras\pagina_baja.php on line 23 pero realiza la operacion de eliminar.
Estoy probando y ya no funciona eso... o algo estoy haciendo mal.... uso php 8.0 y si pongo eso no me muestra todo el registro, por el resto muy buenas explicaciones.
Hombre.... tal cual tal cual.... no. Mira esta línea: while ($fila=mysqli_fetch_array($resultados , MYSQLY_ASSOC)){.... ¿De dónde sale la Y de MYSQLY? Un saludo
Otro error posible puede ser cuando estas llamando a la pagina de la base de datos require("datos_conexion.php"); este archivo este apuntando a otra base de datos con la cual se estaba trabajando. A mi tambien me salia un error en la parte del while pero cambie el nombre de la base de datos a la cual se hace referencia este archivo y ya trabaja todo bien. Saludos.
Buenas, tengo un problemilla, y es que cuando escribo: cenicero' or '1'='1 me aparece en la consulta 'cenicero\' or \'1\'=\'1' y por supuesto la inyección no funciona. Me estoy volviendo loco poniendo y quitando comillas. Muchas gracias de antemano
+Alvaro Barranco. Vale, viendo el siguiente video me hago una idea de lo que pasa. Resulta que salen las barras (slashes) para evitar la inyeccion SQL. Pero, porque aparecen si yo no he puesto ni mysqli_real_escape_string ni mysqli_addslashes????
En primer lugar, genial trabajo como siempre, Tengo un problema con la inyección sql, me da error y no se porque, me dice : Warning mysqli_fetch_array expexts parameter 1 to be mysqli_result .....en mi linea de código que es en la entrada del while, he revisado linea por linea, y no veo nada mal, no se porque será, me funciona bien sin hacer la inyección Gracias por todo!!
+fran050674 Hola !! Parece ser que estás construyendo mal la instrucción sql de la inyección. Puedes copiar y pegar por aquí lo que escribes en el cuadro de texto para ver si es correcto. Un saludo
He conseguido hacer la inyección sql, pero ha sido todo muy curioso, Si nos centramos en el código exáctamente en ......= '$busqueda' vemos que está ente comillas simples, Si hago 'z'='z' da error porque en la página porque al salir el mensaje en la página web la útlima z le aparecen dos comillas simples: asi 'z'='z'' y por eso da error. Voy al código y pongo = '$busqueda sin la ultima comilla o en la instruccion 'z'='z sin la ultima comilla y si sale la inyección, tienes que ir jugando con las comillas para que no se repita....que lio ¿no?, puedes poner sólo = $consulta en el códgio y luego en el cuadro de texto poner 'cenicero' y sale la consulta, poner = $consulta' sin la primera comilla con poner z'='z' le haces la inyección también. Sin poner comillas en el código ...=$consulta.. con poner el cuadro de texto 'z'='z' sin el or ni nada más, te sale la inyección. Lo que he comprobado es que se debe evitar la duplicación de la comilla simple, que cosas, y que inseguro la verdad. Espero que entiendas lo que he dicho jeje. Gracias por contestar
si, si, si... te entiendo. Y tienes razón. Todo está en ir jugando con las comillas y las instrucciones SQL. Y como bien dices evitar la duplicidad de las comillas teniendo en cuenta que la instrucción SQL ya pone una por si misma
Muchas gracias por tu esfuerzo, parece que no, pero si se va aprendiendo poco a poco, videos atrás no me habría atrevido a investigar por mi cuenta, con trabajo y mucho esfuerzo se van sacando las cosas hacia delante, es verdad que las tareas complejas todavía se nos quedan muy grandes, pero eso ya será cosa de la capacidad de cada uno. Ojalá hagas este curso lo más completo que tu tiempo y los demás cursos, te permitan, lo que estas haciendo en el curso de Java, impresionante. No conocía php, me está dando una grata sorpresa. Sigue asi, por favor!
ya podia yo rucarme buscando "cenicero" que en otro video lo cambiamos a "cenicero ceramica"... JAJAJAJAJAJAJAJAJAJAJAJA Oye porque a mi no me encuentra cenicero ceramica poniendo solamente cenicero y a el profesor si? saludos.
puse co..o con ñ jajaj en google y ´or ´1´=´1 y salen unas cuentas de estados unidos del año 60 y anteriores de cosas que vendieron jajaja que cosas se ven por ahí
Excelente Curso, volvi a retomar desde el Video 1 ya que me aleje para adentrarme en Redes CCNA, lo cual me llevo un año autodidacta. En fin queria comentar que yo agregue algo para verificar si el campo llega vacio, que te diga "Complete el campo" si asi lo fuera
simplemente luego de hacer la conexion en la segunda pagina PHP y antes de pasar lo que trae el campo GET a una variable,
if($_GET["buscar"] !== " " ){
........
}else{
echo "Complete el formulario!";
}
Bueno no se si lo habran comentado ya pero queria aportar eso. Saludos Maestro y excelente sus cursos seguimos aprendiendo! 2020
Me he quedado muy sorprendido con el tema de la inyección. En las webs profesionales no se puede hacer. Es importante proteger nuestras páginas. Un saludo y gracias por el curso.
Gracias por el comentario. Es un tema importante. Un saludo!!
Estoy en la carrera de Ing. en Sistemas Computacionales y tus vídeos me han servido de una manera increíble, muchas gracias!!!! :D
Gracias a ti por seguir mis vídeos. Me alegro de que hayan servido de ayuda. Un saludo!
Excelente video, mil gracias desde VALENCIA.
No es por nada, pero el aprendizaje con tus cursos se me está conviertiendo como en adicción, jajaj. Prendo el computador y siento que falta algo y me doy cuenta que es darle al play.... jajja. Muy agradecido.
Gran explicación! muchas gracias!
Mas claro que el agua, imposible, gracias Maestro¡¡¡¡
Me he quedado sorprendido, gracias porque nunca he visto una clase en la que no haya aprendido algo que realmente me emocione y quede fascinado al aprender.
Gracias ! Me alegro de que te gusten los cursos. Un saludo!
Saludos, profesor Juan, desde Zulia Venezuela, le doy muy sinceras gracias por tan importante aporte a difundir la programación alrededor del mundo y ayudarnos aprender una excelente carrera. Aprovecho la oportunidad del mensaje para hacerle una consulta... en este vídeo #47, en la ultima parte donde se eliminan registros, cuando ejecuto el código aparentemente funciona perfectamente, me devuelve el mensaje baja ejecutada, sin embargo en la tabla USUARIOS de Mysql, no elimina el registro..
muy buenos videos, muy bien explicado todo.eh seguido cada video de este tutorial y eh logrado terminarlo. saludos desde Mexico
+Ricardo Najar Gonzalez Muchas gracias por el comentario y sobre todo por seguir mis cursos. Un saludo
Interesantisimo el tema, no tenia conocimiento acerca de estos riesgos, y como tan buen curioso me fui a probarlo a paginas de farmacias, y todas redirigen hacia paginas 403 jeje
Cordial saludo Don Juan; muy claro y muchas gracias.
Un gran abrazo.
+Antonio Valderrama Gracias !! Un abrazo
Muy buenas.... Una cosa importante que quiero comentar, he probado la inyección SQL y funciona, pero me he dado cuenta que sin introducir nada en el cuadro de texto y pulsar en buscar nos muestra la tabla sin necesidad de inyección SQL. Cómo lo arreglamos. Una vez más lo mencionó, excelente trabajo, gracis
sorprendido muy interesante
Excelentes cursos, Saludos desde Mexico!!
Creo que por la pandemia muchas empresas mejoraron el funcionamiento de sus páginas web, al menos las que verifiqué el método de inyectado SQL no funciona. De todas formas esta información es útil para principiantes.
Muchas gracias por el curso, esperando el próximo vídeo.
+daro d Gracias por seguir el curso. En breve el próximo vídeo. Un saludo
gracias por el tuto, esperemos que el próximo video salga pronto..para ver como se controlan este tipo de cosas.... saludos y gracias...estaré atento
Fenomenal como siempre. Eres un crack
+Lewis V Gracias !! :))
Excelentes videos todos, explicados paso a paso como debe ser, eso se llama excelencia, no hacer las cosas por salir del paso. Profe si esta en tus posibilidades subir un curso sobre Django, ya que nunca lo he podido completar, porque siempre me salen errores y he intentado pero no los he podido resolver, saludos.
Gracias por el comentario y tomo nota de tu petición. Un saludo!!
hasta ahora todo ok , interesante la parte de la inyeccion
, gracias por compartir profe (Y)
Gracias a ti por el comentario y por seguir mis vídeos. Un saludo!!
Excelente profe!!!
Ahora a borrar la base de datos de Facebook :D
es un tema muy interesante, lo he intentado pero parece que ya no se puede hacer (al menos en este ejemplo, seguramente hayan mas formas en que se puede vulnerar), pero en mi caso automáticamente se cambia la ultima comilla generando un error en la consulta.
Ing juan tienes pensado hacer un curso de seguridad informática ?
Sí. Le estoy dando vueltas desde hace tiempo a cómo plantear ese curso. Espero hacerlo en el futuro. Un saludo!
@@pildorasinformaticas lo estare esperando con ansias.. Un saludo desde bogota colombia y muchas gracias por tu esfuerzo de enseñar y soportar a los que hacen comentarios mal intencionados.
me siento como todo un hacker! jajaj 8) gracias!
el medio descubrimiento!!
Muchas gracias!
10/08/2020 lo maximo
+pildorasinformaticas un cordial saludos desde Rep.Dom, sigo tus vídeos. excelente trabajo. Me preguntaba si en lo concerniente a este ultimo tendrás alguno donde expliques así detalladamente inseguridad sobre XSS. de antemano Gracias
+Richard Hernandez Hola !! No, no lo tengo. De momento este es el último vídeo del curso, pero pronto saldrá el siguiente. De todas formas no voy a profundizar en seguridad Cross Scripting ni similar. Un saludo
Ok,Gracias.
Para hacer una inyeccion puedo hacerla solo desde una maquina virtual o necesito tor tambien?
Buen vídeo. Una pregunta, ¿Cómo haces las flechas y recuadros rojos? xDD
Hola Juan!
La inyección sql afecta a todas las instrucciones que se pueden declarar con la condición where?
+Khalifa Boulbayem Así es. Todo criterio SQL establecido con Where puede verse afectado por inyección SQL si no se toman las medidas oportunas. Un saludo
excelente!!!
genial!
En este último video cuando aplicas la sentencia SQL "DELETE" veo que le has quitado el asterisco, me puedes decir porque?. Y si introduces un nombre que no está registrado en la consulta te dice que la baja ha sido procesada aunque no sea cierto... ¿ Está bien el condicional?. Por supuesto, te agradezco de antemano la respuesta, así como las clases del curso.
+CARLOS RODRIGUEZ Hola !! MySql no admite el * en sentencias DELETE. Puedes probarlo y lo verás. El condicional se mejora en el vídeo siguiente para que no pase lo que mencionas.
Un saludo
Si revisas la clase donde se trata el tema de eliminar registros (creo es en el vídeo 45) encontrarás la respuesta. De todas formas aquí te dejo un fragmento de código que considero responderá tu pregunta. Saludos cordiales.
$resultados = mysqli_query($conexion, $query);
if($resultados == false){
echo "Error en la consulta";
}else{
/*Para solucionar la incoherencia de que nos diga que ha eliminado un registro cuando en realidad no ha encontrado nada para eliminar, usaremos la función mysqli_affected_rows aquí dentro de un condicional anidado. */
if(mysqli_affected_rows($conexion)== 0){
echo "No hay registros a eliminar. Se ha encontrado " . mysqli_affected_rows($conexion) . " fila con ese criterio.";
}elseif(mysqli_affected_rows($conexion)== 1){
echo "Se ha eliminado 1 registro que coincide con este criterio.";
}else{
echo "Se han eliminado " . mysqli_affected_rows($conexion) . " registros coincidentes con este criterio.";
}
}
profesor una pregunta la inyección se aplica o se usa igual en los distintos lenguajes de programación ,ojala me responda gracias.
Hola !! El concepto es el mismo pero las funciones para evitar la inyección en este curso solo son válidas para PHP. Un saludo!!
Excelente tutorial, una duda, cuando escribo 'or '1'='1 en mi formulario de login no me aparece ninguno de los datos registrados, simplemente me arroja esto la pantalla: SELECT * FROM REGISTRO WHERE USUARIO='Juan' AND CONTRASENA='\' or \'1\'=\'1'....... aparecen esas diagonales, pero no me muestra ningún dato registrado, de igual manera para la búsqueda de productos, no me arroja ningún resultado al momento de poner el or, gracias!
Sin ver el código es difícil que te pueda ayudar con esta duda. Es extraño lo que comentas.
Gracias por responder. Y si, sin duda es algo extraño, he seguido el curso desde el inicio (felicidades por cierto, explicas muy bien), y hasta ahora no había tenido ningún error, el código es el siguiente:
Profe muchas gracias por el vídeo, pero no me funciona lo del apostrofe, no se si estoy escribiendo la tecla correcta, agradezco por favor su claridad con este símbolo
Buenos dias desde mexico Pildorasinformaticas. no tiene nada que ver mi pregunta. pero me gustaria saber si me puedes ayudarme. como puedo leer de un lector de codigo d barras desde el lenguaje php?
La inyección no me funcionaba y probé con la siguiente instrucción y fucionó: cenicero 'or '1'='1
gracias! fue util!
Hola! voy por la mitad del curso y no se si podré resolver la duda que tengo...Debo solucionar un problema en una página que no fue hecha por mi. Desde una aplicación en un celular se envía un mensaje de whatssap con un link a un destinatario, con la información de un sitio de internet, pero el enlace no funciona. Le podría enviar el código para que me pueda ayudar? Desde ya muchas gracias!!
¿Qué instrucción sql me permite a mi buscar por cualquier palabra que use en una bbdd? Si tengo varios campos y que por cualquiera se pueda buscar y no sólo por uno. Algo global.
Hola !! En una BBDD entera no conozco tal instrucción sql. Hay por ahí scripts que permiten buscar un término en una BBDD MySql por ejemplo siempre que tengas acceso al servidor. pero nos e trata de instrucción sql sino de scripts php. Busca en google porque son varias líneas de código y es imposible acordarse de memoria. Un saludo!!
Hola. Buscando y preguntando pude solucionar que se puede usar OR para seguir concatenando con más término de búsqueda.
Pues utilizando OR, podría hacerlo en una misma tabla. Pero en una BBDD entera con varias tablas la verdad no conozco cómo hacerlo con OR. Un saludo!!
Era en una misma tabla! Me refería a varias columnas de la misma tabla. Gracias!
una cosa no entiendo, si uno no declara con ECHO para que imprima la sentencia SQL por pantalla, sino se tiene ese dato, como va a funcionar esa inyeccion?
Porque hay que pasarle un true para que muestre todos los datos? En el codigo sql digo
+Matias Daneri Dime minuto y segundo del vídeo donde aparece la instrucción para que no la tenga que buscar. Son muchas dudas y muchos vídeos !! Un saludo
Profe disculpe en la inyección porque la concatenación no es " 'cenicero' or '1'='1' ";
Es una concatenación por defecto?
También valdría la que tú pones, pero estamos escribiendo más. No es necesario. El caso es escribir dentro del cuadro de texto una condición que se cumpla siempre (en el vídeo se ponen dos ejemplo 1=1 z=z). Y cuanto menos escribamos, pues mejor. Un saludo!!
Hola profesor tengo una pregunta: cuando no se encuentra el usuario,articulo en la base de datos, como puedo mostrar en pantalla que el articulo ,usuario no se encuentra?
Pues varias formas, por ejemplo: utilizando un contador dentro del while que recorre el recordset de la consulta o utilizando la función rowCount(). Si utilizas un contador lo declaras fuera del while y lo igualas a 0. Dentro del while lo incrementas. Si cambia el valor inicial quiere decir que ha encontrado registros. Si no cambia no ha encontrado registros. Evaluar esto con un if es sencillo. Si utilizas rowCount() esta función devuelve el nº de filas resultante de la consulta. Si es=0 quiere decir que no hay registros. Si buscas rowCount en google encontrarás muchos ejemplos de uso. Un saludo!!
Gracias!
maestro me da error : Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\curso_php_pildoras\pagina_baja.php on line 23
pero realiza la operacion de eliminar.
Hola !! Para decirte el por qué del error, necesitaría que copiaras y pegaras por aquí todo el código del programa. Un saludo!!
que pena con usted maestro no haberle contestado antes pero es que se me havia presentado un inconveniente pero en fin, el codigo es este:
también tenia el mismo error y es que en el cuadro de texto la ultima ' no va. quedaría algo asi la consulta en el cuadro de texto: aaa' OR '1'='1
fecth_array me sale error :v al parecer en el vydeo estan usando el metodo aun ...no poder seguyr vyendo el vydeo sy no me ayudan un favor :/
es fetch_array, y tu lo tienes como fecth_array :)
Estoy probando y ya no funciona eso... o algo estoy haciendo mal.... uso php 8.0 y si pongo eso no me muestra todo el registro, por el resto muy buenas explicaciones.
Documento sin título
Hombre.... tal cual tal cual.... no. Mira esta línea: while ($fila=mysqli_fetch_array($resultados , MYSQLY_ASSOC)){....
¿De dónde sale la Y de MYSQLY? Un saludo
pero cual es el error amigo
La Y amigo. No es MYSQLY sino MYSQL. Fíjate en mi código del vídeo
Otro error posible puede ser cuando estas llamando a la pagina de la base de datos
require("datos_conexion.php");
este archivo este apuntando a otra base de datos con la cual se estaba trabajando. A mi tambien me salia un error en la parte del while pero cambie el nombre de la base de datos a la cual se hace referencia este archivo y ya trabaja todo bien. Saludos.
@@josevaltierra8360 A mi no me funciona ni cambiando el nombre de BBDD, como lo resolviste?
Buenas, tengo un problemilla, y es que cuando escribo:
cenicero' or '1'='1 me aparece en la consulta
'cenicero\' or \'1\'=\'1' y por supuesto la inyección no funciona. Me estoy volviendo loco poniendo y quitando comillas. Muchas gracias de antemano
+Alvaro Barranco. Vale, viendo el siguiente video me hago una idea de lo que pasa. Resulta que salen las barras (slashes) para evitar la inyeccion SQL. Pero, porque aparecen si yo no he puesto ni mysqli_real_escape_string ni mysqli_addslashes????
En primer lugar, genial trabajo como siempre,
Tengo un problema con la inyección sql, me da error y no se porque, me dice :
Warning mysqli_fetch_array expexts parameter 1 to be mysqli_result .....en mi linea de código que es en la entrada del while,
he revisado linea por linea, y no veo nada mal, no se porque será, me funciona bien sin hacer la inyección
Gracias por todo!!
+fran050674 Hola !! Parece ser que estás construyendo mal la instrucción sql de la inyección. Puedes copiar y pegar por aquí lo que escribes en el cuadro de texto para ver si es correcto. Un saludo
He conseguido hacer la inyección sql, pero ha sido todo muy curioso,
Si nos centramos en el código exáctamente en ......= '$busqueda' vemos que está ente comillas simples,
Si hago 'z'='z' da error porque en la página porque al salir el mensaje en la página web la útlima z le aparecen dos comillas simples: asi 'z'='z'' y por eso da error.
Voy al código y pongo = '$busqueda sin la ultima comilla o en la instruccion 'z'='z sin la ultima comilla y si sale la inyección, tienes que ir jugando con las comillas para que no se repita....que lio ¿no?,
puedes poner sólo = $consulta en el códgio y luego en el cuadro de texto poner 'cenicero' y sale la consulta,
poner = $consulta' sin la primera comilla con poner z'='z' le haces la inyección también.
Sin poner comillas en el código ...=$consulta.. con poner el cuadro de texto 'z'='z' sin el or ni nada más, te sale la inyección.
Lo que he comprobado es que se debe evitar la duplicación de la comilla simple, que cosas, y que inseguro la verdad.
Espero que entiendas lo que he dicho jeje.
Gracias por contestar
si, si, si... te entiendo. Y tienes razón. Todo está en ir jugando con las comillas y las instrucciones SQL. Y como bien dices evitar la duplicidad de las comillas teniendo en cuenta que la instrucción SQL ya pone una por si misma
Muchas gracias por tu esfuerzo, parece que no, pero si se va aprendiendo poco a poco, videos atrás no me habría atrevido a investigar por mi cuenta, con trabajo y mucho esfuerzo se van sacando las cosas hacia delante, es verdad que las tareas complejas todavía se nos quedan muy grandes, pero eso ya será cosa de la capacidad de cada uno.
Ojalá hagas este curso lo más completo que tu tiempo y los demás cursos, te permitan, lo que estas haciendo en el curso de Java, impresionante.
No conocía php, me está dando una grata sorpresa.
Sigue asi, por favor!
Seguiré adelante. Gracias por el comentario. Un saludo
ya podia yo rucarme buscando "cenicero" que en otro video lo cambiamos a "cenicero ceramica"... JAJAJAJAJAJAJAJAJAJAJAJA Oye porque a mi no me encuentra cenicero ceramica poniendo solamente cenicero y a el profesor si?
saludos.
puse co..o con ñ jajaj en google y ´or ´1´=´1 y salen unas cuentas de estados unidos del año 60 y anteriores de cosas que vendieron jajaja que cosas se ven por ahí
me da un error en la linea 33 y no entiendo porque :/
aqui mi codigo
Document
Cuando lo ejecutas te dice en que línea esta el error, avisanos!
Están buenos los cursos.. pero sos re despelotado, no podes tener todos los archivos tirados así nomas.
Total, si he perdido tiempo por eso.