[APLICACION] Sistema de Noticias con fotos

En el backend o gestor de contenidos está todo para publicar y subir las fotos. Descarguen el adjunto y verán de qué se trata.

Saludos!
Voy a subir el comprimido a otro server, acá como usuario común no se me permite :(
Hola!

Gracias por el aporte :)!

La página se está utilizando sin escapar, así que deberías validarla un poco más:

if ( isset( $_GET["pagina"] ) && is_numeric( $_GET['pagina'] ) ) //Si hay página por ?pagina=valor, lo asigna
$pagina = $_GET["pagina"];

De esta forma ya no pueden insertar código SQL.

Saludos!
Hola, Skaparate!

¿Hay que hacer lo mismo con los demás if(isset($_GET['id'])) .... etc ?

Gracias por tu valioso comentario!
No es necesario porque estas utilizando mysql_real_escape con las demás. En general, siempre que vayas a incluir una variable que pueda ser manipulada por el usuario (información enviada desde el navegador), debes validar que lo esperado coincida con el tipo que necesitas o, en su defecto, escapar lo que sea potencialmente dañino.

En el caso de los tipos de datos, un claro ejemplo es el de la página, donde esta no puede ser otra cosa que un número y de no serlo, simplemente queda en 1. Por otro lado, si lo que esperas es una cadena de caracteres (string) no tienes cómo saber que contendrá, por lo que mysql_real_escape es una buena forma de prevenir las inyecciones SQL.

Por último, para mejorar aún más el script, podrías modificarlo para usar la extensión de PHP MySQLi en lugar de sólo MySQL, puesto que esta última está obsoleta -> http://php.net/manual/es/intro.mysqli.php.
skaparate escribió:No es necesario porque estas utilizando mysql_real_escape con las demás. En general, siempre que vayas a incluir una variable que pueda ser manipulada por el usuario (información enviada desde el navegador), debes validar que lo esperado coincida con el tipo que necesitas o, en su defecto, escapar lo que sea potencialmente dañino.

En el caso de los tipos de datos, un claro ejemplo es el de la página, donde esta no puede ser otra cosa que un número y de no serlo, simplemente queda en 1. Por otro lado, si lo que esperas es una cadena de caracteres (string) no tienes cómo saber que contendrá, por lo que mysql_real_escape es una buena forma de prevenir las inyecciones SQL.

Por último, para mejorar aún más el script, podrías modificarlo para usar la extensión de PHP MySQLi en lugar de sólo MySQL, puesto que esta última está obsoleta -> http://php.net/manual/es/intro.mysqli.php.

Oki, vale, gracias por tus consejos y ayuda, estimado Skaparate. Lo del mysqli es lo que necesito aprender y he estado haciendo ya algo, pero no me ha resultado. Llevé el mismo código de arriba, sin la paginación, al mysqli. Y es con categorías, pero no hay caso de que me funcione el asunto. Dame un correo y te envío la aplicación que menciono más arriba y lo que llevo hecho -con la misma aplicación y filosofía de trabajo- al paradigma mysqli.

Saludos!
Con ese script, me pasa que pincho una de las categorías (Tecnología, en ese caso) y me sale la información que está filtrada por esa categoría. Pero no así en las otras, siendo que sí hay información filtrada por otras categorías. Por más que he analizado el asunto, no hay caso, no he podido descubrir dónde está el problema. Claro, en otro foro me dijeron que el código estaba muy mal construido, pero como suele suceder, nadie aportó ni me dijeron dónde reside el problema y menos cómo mejorar el código.

Espero que acá no suceda lo mismo! jajajaja :rolleyes:

Saludos
Creo que estamos mezclando los temas. Puesto que tu script funciona, deberías crear otro tema para analizar este nuevo script, así no confundiremos a nadie ¿te parece?

Después actualizas el código a MySQLi (luego de que entiendas como funciona).
skaparate escribió:Creo que estamos mezclando los temas. Puesto que tu script funciona, deberías crear otro tema para analizar este nuevo script, así no confundiremos a nadie ¿te parece?

Después actualizas el código a MySQLi (luego de que entiendas como funciona).

De acuerdo, voy a abrir otro post. El anterior creo que está resuelto, solo que no he encontrado un servidor donde subir el comprimido y creo que lo mejor es que quien se interese de verdad, me mande un mensaje y me diga a la casilla a la cual quiere que yo le envíe el script.