Registro alta/baja de datos en php/sql [APORTE]

n1x3r

Hola a todos, me falta decir en el título, modificación y búsqueda.

Lo que os traigo es el típico script que te pide tu cuñado, tío, amigo, jefe, etc. En mi caso, amigo, para llevar un registro de items vinculados a un cliente. Por lo que este formulario tiene las siguientes funciones.

-Alta de nuevos items vinculados a un cliente
-Alta de nuevos clientes
-Búsqueda por items o por clientes
-Modificación y borrado de tanto items como clientes.
-Consulta general con todos los datos de los itmes y los clientes vinculados

Este script php trae un archivo instalador que te crea la base de datos y tablas necesarias. Y también trae un archivo de configuración, que lo tenéis que modificar para poner vuestras credenciales.

he de decir que es todo muy básico, y tiene muchos errores, pero funciona. Y lo dejo aquí para libre distribución y modificación del mismo.

Un saludo a todos.

index.php
instalacion.php
conexion.php

Para cualquier duda me podéis preguntar por MP o mediante la web http://about.me/danielfs

Leer #8 y #19

[EDIT] Me veo en la obligación de decir que este script TIENE GRAVES FALLOS DE SEGURIDAD, no se aconseja para su uso de forma publica, sino USO PRIVADO. No esta orientado a objetos, tiene una forma de programación de la vieja escuela, y esta basado en otro script que me encontré por internet que no funcionaba. Modificado en un tiempo récord aquí lo dejo. No es mi forma de programación habitual, y no lo expongo como algo de lo que este orgullosos, simplemente para aquel que este totalmente perdido tenga algo por donde empezar.

Soltrac

Script con fallos de seguridad muy graves, debo decirte.

3 1 respuesta
n1x3r

Lo se. Piensa tambien que es para uso privado y no publico. Quien este interesado en utilizarlo para uso publico que lo modifique.

1 respuesta
HeXaN

#2 Si pudieras remarcarlos o explicarlos sería de gran ayuda para los que llevamos poco tiempo en este mundillo :3

4 respuestas
HaxeR

Me sangran los ojos al ver código así! , no quiero convertir esto en una crítica, ni mucho menos, me parece buena tu idea de compartir algo tan común y que pudiera ser de ayuda a alguien, pero deberías de dejar de programar como en 1995.

Tienes que separar las vistas de la lógica y tenerlo todo un poco mas ordenado y legible, para que alguien pueda encontrar interesante tu "script" e incluso mejorarlo,forkearlo,etc...

Cada vez que veo html escrito desde php... :mad: :no: , te animo a que migres ese código con ayuda de algún framework php, codeigniter por ejemplo, no tardarías mucho ;)

4 respuestas
n1x3r

#5 jajaj no, yo no programo así de forma profesional, creeme, modifique unos script que me encontré para alcanzar mi objetivo. Esto no es para mi, es para un colega, y puestos a decir que es también gratis y realizado en una tarde.
El que quiera algo profesional de verdad que me contrate y podrá ver lo que es un trabajo profesional con php bien estructurado y ajax para las consultas.

Como bien dice el refrán, a caballo regalado no le mires el diente.

#4 comienza por leerte lo que son las magic quotes y el sql injection.

Un saludo.

Soltrac

#3 Bueno, no quería que pareciera que critico tu trabajo que encima lo expones gratis, sino avisar que tal y como está no valdría para publicarlo.

#4 Sin profundizar mucho, las consultas de SQL están a pelo, tienen problemas de SQL inyection. Luego tb encuentro un problema de que no existe ningún filtro para XSS, lo q permitiría robo de sesiones.

Por ejemplo


$nombre=$_POST["nombre"];
$apellidos=$_POST["apellidos"];
$telefono=$_POST["telefono"];
$direccion=$_POST["direccion"];
$ciudad=$_POST["ciudad"];
$provincia=$_POST["provincia"];
$otros=$_POST["otros"];


$r=mysql_query("INSERT INTO clientes(nombre,apellidos,telefono,direccion,ciudad,provincia,otros)
 VALUES('$nombre','$apellidos','$telefono','$direccion','$ciudad','$provincia','$otros')"

En el momento que añadas un ' en cualquiera de esos campos te cargas la sentencia SELECT. Luego añades un INSERT que tú quieras, finalizas con -- para ignorar lo q tú quieras y ya tienes acceso completo.

3 respuestas
n1x3r

#7 Correcto, pero vamos, que para una persona de 50 años que trabaja en una merceria y lo unico que quiere es llevar un control de las telas que le vende a un cliente, no creo yo que el sobrino le hackee la SQL.

Repito que es para uso PERSONAL y NO PUBLICO.

Y repito también que TIENE FALLOS DE SEGURIDAD BESTIALES de los cuales paso, se ha creado en UNA TARDE, modificando OTROS SCRIPTS TAMBIÉN VULNERABLES y que si fuese un proyecto de verdad lo crearía usando algún framework como dice HaxeR, pero no usando codeigniter (x dios ese no, se mas profesional) sino zend o Symfony.

Me estoy arrepintiendo de haberlo subido, al final lo termino portando a Symfony xD

1 respuesta
Soltrac

#8 No se que tienes contra codeigniter, no tiene nada que envidiar a otros frameworks. Incluso te diría que corre más rápido que muchos de ellos.

El problema es q la gente al verlo con menos cosas se cree que es menos poderoso, pero para nada, codeigniter bebe mucho de zend por ejemplo.

1 respuesta
n1x3r

#9 Para empezar en el mundillo de los frameworks no esta mal, pero si quieres profundizar te aconsejo zend o symfony ya que estos dos están pensandos para la realización de grandes proyectos, ademas de que la comunidad que los sigue es mucho mayor que la de codeigniter.
Aparte de todo esto, dudo que encuentres una empresa de programación que use codeigniter, así que aconsejo a los que vengan por detrás y se quieran iniciar, que comiencen por symfony o zend, así comenzaran en la vanguardia de los frameworks.

1 respuesta
willsmith

A me me gusta mucho CodeIgniter, de echo mucha gente prefiere CI que Synfony

Soltrac

#10 No voy a discutirlo, pero siento decir que discrepo.

#13 De nada!!!

1 respuesta
HeXaN

#12 Gracias Soltrac por la aclaración de #7 :3

1 respuesta
elkaoD

#4 #5 siempre os confundo. El otro día pensaba por qué #4 se había quitado el avatar del gato.. xD

2
Gantorys

#7 como harías esa INSERT para evitar SQLi? (pregunto)

con mysql_real_escape_string?

1 respuesta
Soltrac

#15 La respuesta corta es sí y no.

La respuesta larga mírala aquí: http://stackoverflow.com/questions/1996344/is-preventing-xss-and-sql-injection-as-easy-as-does-this

1
B

#1 Creo que este post poco favor te hace si alguien te quisiera contratar. Churros de código, maquetado con tablas, sin filtros de entrada, uso de variables globales, etc. Si yo fuera tu lo dejaria presentable y editaria el post.

RaCe

para scripts sencillotes de insertar/modificar/borrar registros (se llama CRUD: create/read/update/delete) a mí me gusta usar CodeIgniter + GroceryCrud, en 10 minutos te montas algo así:
http://www.grocerycrud.com/examples/full_example

capaz de realizar búsquedas por campo, ordenar por columnas, exportar como excel, imprimir, etc...

n1x3r

Os animo a todos que lo modifiquéis y mejoréis. yo, no tengo ni ganas ni tiempo para mejorarlo.
Tengo otros scripts mas importantes pendientes.

Simplemente lo compartí xq mucha gente me lo pide, algo simple, pues ya lo tenéis. Que es inseguro, si, no voy a andar implementando codigo para solucionar los problemas de seguridad, que es feo? pues tambien, lo mismo q antes.

Para todo aquel que no le guste, que se queje, que si es inseguro.
Pues que se moje el culo, pierda unas horas, lo modifique y publique. Es muy fácil pedir sin dar nada a cambio.

Para todo aquel sibarita que le duela los ojos (que me hace gracia, ya que me gustaría ver como programa el ) puede usar grocerycrud.com descargarlo y montarlo en vuestro framework favorito, si ese, el codeigniter, y ser uno mas que dice que programa tirando de "codigo enlatado", es como el que se cree programador web teniendo la web montada en joomla a base de plugins.

En fin.
Siento la revolución que he montado, no es mi intención insultar a nadie con este código, ya he dicho que no es mi forma de programar, ya que esta modificado de otro script, este en concreto (http://asir2.blogspot.com.es/p/creacion-bbdd-con-php.html) que fue el primero que encontré al introducir las siguientes palabras en google (alta baja modificación tablas php). simplemente lo colgué para que el resto pudiese tener una base de funcionamiento y modificarlo libremente.

3 respuestas
elkaoD

#19 cálmate hermano!

eXtreM3

#19 me veo en la obligación de postear, y mira que iba a valorar positivamente tu trabajo esta mañana cuando he leído el thread.

Al principio dices que te lo has currado tú y que quieres compartirlo, al llegarte críticas constructivas no las aceptas y discutes, y finalmente admites que pillaste el código del primer resultado de Google, le hiciste un par de cambios y parriba, script desarrollado por mi polla.

Por último decirte que la mayoría de gente de aquí que te dice que utiliza frameworks, no es porque no saben programar y utilizan "código enlatado", seguramente te den mil vueltas, para ellos es como usar una calculadora.

pd: #5 es la cuenta fake de #4 !! :si:

2 respuestas
HaxeR

#19

Para todo aquel sibarita que le duela los ojos (que me hace gracia, ya que me gustaría ver como programa el ) puede usar grocerycrud.com descargarlo y montarlo en vuestro framework favorito, si ese, el codeigniter, y ser uno mas que dice que programa tirando de "codigo enlatado", es como el que se cree programador web teniendo la web montada en joomla a base de plugins.

Siento que te lo tomes así, en ningún momento quería ofenderte, solo era una expresión. No te conozco, no se como programas ni el nivel y conocimientos que tienes, solo estaba comentando el script que has compartido con nosotros.

En cuanto a los frameworks no voy a entrar, cada uno tendrá su opinión, pero te aseguro que más de una empresa trabaja profesionalmente con codeigniter, yo mismo llevo más de 5 años trabajando con el, aunque al final acabamos creando un framework propio con la base de CI.

pd: #21 no tengo cuentas fake! :P

1 respuesta
n1x3r

#21 ¿En que momento he dicho que el script es mio? He dicho que lo he modificado de uno que me encontré, lo digo en el #5 y si no lo dije en el #1 es xq no se me paso el ponerlo en el momento de escribir el thread.

Y lo de código enlatado y los frameworks, si es como usar una calculadora, que lo demuestren y no se quede solo en palabras.

#22 Disculpa hombre pero es que me ha entrado una mala leche, pero no es tu comentario, sino los siguientes de después de mi respuesta, jaja.
Respecto a los frameworks es como todo, unos se utilizan mas que otros, yo me refería a que es mas complicado encontrar de codeigniter que de otros como symfony o zend.

2 respuestas
Merkury

#23 De todas maneras, lo que se saca en conclusión de este post es que:

Opción a) No tienes ni idea de esto

Opción b) Eres un chapucero.

Opción c) Ambas son correctas.

Lo que se te ha dicho nadie creo que te lo haya dicho para joderte, pero desde luego, yo he visto <td> dentro del form y me sangraban los ojos y las consultas ahí a pelo y con ' ' tal cual la verdad dicen mucho de como trabajas, por mucho que digas que esto lo has hecho en un par de horas, sinceramente, a mi me cuesta menos hacerlo bien que hacerlo así.

1 respuesta
eXtreM3

#23 Demuéstrame que sabes sumar y restar! Que no quede sólo en palabras! :si:

1 respuesta
Sonos

Que el código está lejos de algo medianamente profesional? correcto, pero algunos os pasais mucho.

Alguien ha probado FuelPHP?

1
n1x3r

#24 #25 https://www.google.es/search?sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8&q=api+filmaffinity

1ª Entrada, Uno de los muchos trabajos que tengo publicados.

No voy a volver a explicaros el xq del estado del código ni nada por el estilo, pensaba repararlo e invertir tiempo en el pero me lo habéis quitado de golpe. Solo os deseo que a lo que os molesta ver cosas como esta, que cuando busquéis por internet un método, no lo encontréis, ni siquiera escrito de esta forma.

Mucha suerte a todos, que algunos seguro que la necesitareis mucho en esta vida, para ganaros el pan con esto.

2 respuestas
eXtreM3

#27 que me la pela, ya te he dicho que estaba de buenas, apoyando la idea del thread. Pero después he visto que algunos usuarios han intentado ayudarte dándote consejos y te has puesto de mala hostia, pues gg.

1 respuesta
n1x3r

#28 ¿que estabas de buenas, en que momento?¿donde?
Si eso, gg, sigue jugando con tu css.

Un salu2.

1 respuesta
Soltrac

#27 Sigo sin entender tu enfado. Tu código está mal y lo normal es comentarlo. Nadie ha dejado de decirte nada, simplemente te hemos dicho que esto no puede estar en producción en ningún sitio porque duraría en pie 0 en cuanto cualquier grupo árabe de hacking le de por testearlo.

Si no eres capaz de aceptar este tipo de críticas tienes un problema. Por cierto, por si la última frase iba por mi, que fui el primero en decírtelo, debo decirte que muchas gracias, pero que llevo muchos años dedicándome a esto (por suerte, tal y como está el patio y toquemos madera).

1 1 respuesta