epelpad

[Expo] UploadX | Sistema de Subir Imagenes

[Expo] UploadX | Sistema de Subir Imagenes

UploadX es un Sistema para Subir Imágenes con Previsualizacion y Galería de Imágenes
Si me recuerdan recordaran que mis Sistemas antes no eran Seguros y eran demasiado Fáciles de Hackear :c
Pero en el Transcurso he aprendido mas y mejor PHP y Mejora de Seguridad asi que en este caso, este script tiene Mejor Seguridad con la Implementacion de JSON Web Tokens(Con Llave Secreta)

Cualquier Duda o Pregunta pueden hacerla!

Demo | http://dmyoutube.ga/uploadX/
Descarga | http://tarin.ga/uTq

12 comentarios - [Expo] UploadX | Sistema de Subir Imagenes

skog09
Esta cool!!!
AngelKrak14 +1
Gracias ^_^
Estoy haciendo la Version PRO pero esa la venderé!
skog09 +2
@AngelKrak14 Pero claro, ahi que pensar en la forma de ganar dinero!!!

Excelente.

Te felicito!
AngelKrak14
@skog09 Efectivamente, siempre se tiene que pensar en eso jeje xD
y Gracias, Que Bueno que te gusto *w*
TvCelulares +1
Muy bueno, te faltaría algún link para volver atras en la galería o ponerle un navbar. Saludos
AngelKrak14
Gracias si tenia pensado hacerlo pero al final se me olvido, pero no es dificil alguien que lo use, puede adaptar eso sin problemas y hasta cambiarle el Diseño si quiere!
xoSebastian
La version free podes poner que las imagenes se guarden de mantera temporal. ejemplo en 1 hora se borran
AngelKrak14
Gracias por ese consejo, si se me habia ocurrido pero no lo habia puesto jejeje xD
animex017
Hay unos error, el formato de la imagen no es comprobado y el nombre con el que se sube se guarda tal cual, también se puede subir imágenes de forma indefinida, sin ningún tipo de limite ni espera. Lo que si esta de maravillas es lo optimizado que esta.
AngelKrak14
@animex017 una pregunta amigo, eso tambien puede pasar en videos o musica? o solo en imagenes?

*Ya arregle eso del código de la imagen, Ahora si elimina el código extra de una imagen
animex017 +1
@AngelKrak14 Hola, si en todos los archivos que se puedan subir, solo que depende del header que tenga el archivo y que app se use para manipular los datos. Pero tecnicamente en todos los archivos, hasta en los iconos de clanes de juegos mmorpg los llegue a ver.
AngelKrak14
@animex017 ohhh vale, pero para eso si nose como hacerle, hasta dude que puedan poner codigo extra en los videos o canciones jajaja xD no hay funcion en php para proteger eso, solo vi de imagenes jaja xD
Mekket +1
[Expo] UploadX | Sistema de Subir Imagenes
Tendria que ser:

$string = trim($val);
$string = stripslashes($string);
$string = htmlspecialchars($string);

o algo así calculo, hace mucho que no uso php
AngelKrak14 +1
ohhh si, es verdad no me habia fijado en eso, gracias por decirlo, no me habia dado cuenta de ese pequeño error
animex017 +1
Ahí lo modifique un poco, le agregue recaptcha, que solo se pueda subir 10 imágenes cada 1hs, optimice algunas funciones, faltaría hacer el install y cambiar el método de consultas yo hubiera colocado mas dinámicas las funciones pero me dio flojera cambiar todo asi que asi lo dejo.

aHR0cHM6Ly9tZWdhLm56LyMhRkk0RFdRWlQhNFJtdklKOWFqeTk4SHJfM0tPS3AySlAxV3BWMmFsRUEtSWZVQmFUaUxjYw==
soyBillGates
Por cierto, ví el archivo install.php, y hay al menos dos errores lógicos en el uso de la variable $animex017 al verificar los estados de createTable. En funciones::nombresRandom, $n es usada en su propia declaración (y obviamente, no existe). Y me dió paja seguir viendo, porque soy alto vago.
animex017
@soyBillGates Si es un problema jaja, si implementas algo que estas casi seguro que tirara error mejor no implementarlo, por comodidad para el usuario. En este caso no importaría porque es un opensource pero las buenas costumbres se las hace practicándolas no basta con saberlas.

PD: install.php? Si te refieres al setup.php esta completamente funciona, en el mismo if se declara la variable $animex017

<?php if($animex017 crearDB()) ?>

soyBillGates +1
@animex017 Por eso, preferí abortar con una excepción para que Angel haga lo que crea conveniente ante un error. Si hay "error", entonces el usuario tendrá que borrar la carpeta manualmente; si no hay error, entonces la comodidad del usuario es, básicamente, del 100%.



if($animex017 += createTable('files')){



Ahí está uno de los errores. Esa expresión termina devolviendo el valor de $animex017 después de la suma, no el booleano devuelto por createTable.
soyBillGates +1
@animex017 Sí, sé cual es tu propósito al sumar, pero no está bien hecho. Tampoco es necesario:



    $error = true;
    if(crearDB()){
        echo "+ La base de datos ($db) fue creada con exito.</br>";
        if(createTable('files')){
            echo "+ La table files fue creada con exito.</br>";
            if(createTable('sessions')){
                echo "+ La tabla sessions fue creada con exito.";
                $error = false;
            }
        }
    }
    $sqli->close();
    if(!$error){
        $dfunc = "../php/funciones.php";
        // ...

animex017
@soyBillGates Jajaja ahí ya te fuiste al carajo, en tu vida programaste para una empresa o independientes. Programo desde los 14 años y en mi vida escuche ese termino, el nombre de la variable si es cierto que recomiendan que sea 'descriptivo' no es obligatorio, ni lo hace mas profesional.

PD: escasa o abundante se usa en sustantivos, no en una opinión/expresión, soy abundantemente feliz.
animex017
@soyBillGates Y el segundo comentario es mas de lo mismo, innecesario y sin fundamento, el script se ejecuta solo una vez no es una ejecución constante ni matutina, ni esta dentro de un while o for, si se quisiera ahorrar el if se podría mover el código dentro del

if(createTable('sessions')){ 


Ya lo dije. El proyecto no es para hacerse la cabeza ni optimizarlo al 500%, es un proyecto chico sin mayor complejidad.
animex017
@soyBillGates Todo el proyecto se puede optimizar, incluso se podría minimizar las variables, pero solo es perdida de tiempo no hay necesidad. Si se tiene tiempo libre y se lo quiere hacer, por eso esta publicado el código.

PD: De hecho mejor, si tienes los conocimientos para optimizarlo y tienes tiempo estaría bueno que lo hicieras
soyBillGates
@animex017 No, vos te fuiste al carajo; pero bien bien al carajo además. Ay Walter, ¡¡por favor!! Hacé una búsqueda en Google sobre esos términos, que no te cuesta nada; haceme ese favor. ¿Programás desde los 14? Entonces, ¿ahora tenés 16? Bah, tranquilamente se puede hacer algo desde hace muchísimos años, y continuar siendo un paquete en ello.

Sí, se puede mover el código dentro del bloque en el que previamente se crea la tabla sessions. ¿Y? Movelo a donde quieras, pero eso no va a cambiar el hecho de que estés cometiendo errores de novato, y poniendo excusas aún peores ante esos errores.

Sí, como vos lo dijiste. Es un proyecto chico, sin mayor complejidad, donde no deberían existir estos errores de principiante. Es una pieza de código simple, en donde los esfuerzos necesarios para hacer que ese código funcione bien son incluso menores que el esfuerzo que hiciste para escribir tú código mal planteado y para inventarte excusas ridículas.

Dejá de poner excusas de mierda.

P.D: A ver: sea escasa o abundante [la experiencia], ... ¿Capisci? En fin, un comentario innecesario.
animex017
Jajajajaja relax, también recién me doy cuenta que si agregabas una coma mas lo leía separando en silabas jajajaja
Bueno ahora fuera de bromas, desde las 16 ahora tengo 23 y estudio ing. Lejos de ser un paquete

<?php
CODIGO_1
if(....){ $v true; }
if(isset(
$v) && $v){ /*code*/ }

CODIGO_2
if(....){/*code*/}
$vfalse;
if(
$v){/*code*/}
?>

animex017
Puedes elegir el CODIGO_1 o el CODIGO_2, si quieres te compara con offset de memoria que ocupan, pero si no me falla la memoria los string declarados pesan mas que un call reservado.
animex017
En este caso es boolean pero se entiende, recuerda que en ASM solo tiene 5 bytes como máximo, ya sea comparación y salto o call, si no mal recuerdo.
soyBillGates
@animex017 Ah, ya me acuerdo de vos. ¡¡SOS EL DE RETORNO VACÍO!! Y te recuerdo porque me salías con cualquiera, como en este caso. Walter, si me vas a responder, rebatime lo que te dije en el comentario de arriba, no me vengás con cualquier cosa.

No te voy a responder a lo que decís sobre asm porque, como te dije en la otra ocasión, estás confundiendolo todo. No hablés de asm (porque, nada que ver acá), y hablá de PHP y Zend. Un valor de PHP es un zval, una estructura interna de no sé cuantos bytes. Y no me voy a meter en ese tema, porque desconozco los detalles internos del **intérprete** de PHP. Igual, como te digo, no sé que intentás hacer saliendo con esto. ¿Demostrar que estudiás ingeniería y que sos re groso? Pues te salió mal.

Ver: http://nikic.github.io/2015/05/05/Internal-value-representation-in-PHP-7-part-1.html
animex017
Jajaja exactamente el mismo, y te recuerdo que me terminaste dándome la razon luego de haber pasado unos meses. Porque discutías sin saber lo que estábamos discutiendo, cuando supiste o aprendiste que el valor NULL o VACIO existía y no era un mito. No veo la pregunta que haces, solo el ¿Y? que me parece hasta perdida de tiempo responderlo.
Pero si voy a decir que ese ¿Y? es de ignorante, ya que colocarlo dentro de ese if seria lo correcto.
animex017
No hace falta que comentes nada, te lo resumo con una pregunta. Que crees que haga el interpretar con una función reservada?
1) Compilarla cada vez que quiera usarla.
2) Tenerla compilada e invocarla cuando sea llamada.
La declaración de una variable es mucho mas complejo que una llamda, comprobación de memoria, reserva de la misma, mover los datos, comparación y salto.
soyBillGates
@animex017 No te dí la razón. Te dije que me había equivocado en algo, en un detalle menor. De hecho, admití haberme equivocado. ¿Por qué no hacés lo mismo y dejás de hacer el ridículo? Ahí te malinterpreté, y creí que eras incluso más paquete de lo que en realidad eras — y precisamente por eso me fuí a disculpar. Me merezco el cielo por ser tan bueno. Recordemos que eras el "ingeniero" de 23 años que usaba terminologías que nadie podía entender, como el propio "retorno vacío".

Link a ese comentario que hice:
https://www.taringa.net/comunidades/webdesign/9672903/Consulta-Cobrar-Cuanto-puedo-cobrar-esta-web-que-hice.html#comment-609046

Resumen:


Esto es, no te referías a la constante de carácter '0' (0x30), si no al carácter 0x00 en el juego de carácteres ASCII (carácter nulo).


Ahora, ¿por qué tanto quilombo para aceptar que escribiste esa pieza de código de una forma totalmente incorrecta y que te costó encontrar los errores, y que no conocías términos tan básicos y esenciales del mundo de la programación? Porque eso es lo que estás haciendo. Poniendo excusas e intentando distraernos del tema principal.

¿Qué carajo me preguntás ahora sobre como funciona PHP internamente? Ya te dije que no sé, y vos tampoco sabés nada — eso quedó claro. No sabemos nada, y es una pregunta totalmente irrelevante en esta discusión. Centrate en el tema principal (en tus errores lógicos en una pieza de código tan simple) y dejá de irte por las ramas.
soyBillGates
@animex017 Y el problema en esta discusión es que no entendés este hecho o no querés admitirlo, ya que dañaría seriamente tu "reputación". Es decir, de presumir de "tu experiencia de muchos años" en la programación y de tus estudios (sugiriendo que la tenés clara en todo esto), tendrías que pasar a admitir que no conocías algo tan básico y que casi todo programador experimentado conoce: esos términos.
animex017
@soyBillGates si eso fuera cierto, las vulnerabilidades estarían basadas en cosas complejas como por ejemplo la de ruby de hace unos días y no en las burradas que son normalmente. El mejor ejemplo es el de google documentos que podían ser ejecutados solamente combinado la variable READ a EXECUTE te podían robar todos los datos de tu cuenta de google y servicios tan solo porque abriste un link.
No tengo reputación cual mantener, y si importa la diferencia.
soyBillGates
@animex017 De "cometer errores" a "no darle tanta importancia a esos términos" hay un mundo. Esto es: se puede seguir cometiendo errores, sin importar cuanta importancia se les dé a esos "términos". Pero esto no quita que se le tenga que dejar de dar importancia o darles poca, ya que mientras más importancia se les dá, más errores se pueden evitar. Justamente, muchas de las vulnerabilidades suelen ser tonterías que son causadas por la poca importancia que se le dá al código.
soyBillGates
@animex017 Sos prácticamente el único individuo con el que tengo problemas de comunicación. Entonces, supongo que el problema no soy yo, si no vos. ¿Realmente no entendés mis comentarios, o lo hacés a propósito para intentar zafar de esta?

Me hiciste mención de la pregunta que hice yo, ¿Y?, que, ciertamente, no es una pregunta. Es un modismo, o como se le diga a tal cosa.

Cito:


Sí, se puede mover el código dentro del bloque en el que previamente se crea la tabla sessions. ¿Y? Movelo a donde quieras, pero eso no va a cambiar el hecho de que estés cometiendo errores de novato, y poniendo excusas aún peores ante esos errores.


Básicamente, me refiero a que dá igual si se puede o no mover el código a otro lugar, como vos decís. Dá totalmente igual, porque estamos hablando sobre un error básico que estás cometiendo. Como digo ahí, podrás moverlo, pero eso no quita que hayas cometido el error de novato. Es una excusa.

En fin, tengas problemas de comprensión o lo hagas a propósito, no vale la pena seguir discutiendo con vos. Me lo voy a pensar dos veces si me salís con otra boludés
animex017
Con esto ni pensó gastarme en en responderte jaja, solo que ¿Y? no entraría en modismo, modismo seria una frase típica con sarcasmo o en sentido figurado normalmente.
soyBillGates -1
@animex017 Dado que tengo los huevos llenos, te hago un resumen de la discusión:

* Te hago una crítica constructiva.

* Te calentás por esa crítica, y me empezás a bardear. Te las das de groso y de que tenés la re experiencia laboral/profesional, pero lo hacés mientras te referís a algo sobre lo que, más tarde, te demostré que estabas equivocado. Eso era algo básico, muy básico. Entonces, me pregunto: —realmente tiene toda esa experiencia que dice tener— e inmediatamente me autorespondo —no Bill, no la tiene—. O, quizás, las empresas para las que trabajaste son tan falopa como tus conocimientos del mundo de la programación.

* Me corregís gramaticalmente, de forma incorrecta, una frase de uno de mis comentarios. ¿Qué tiene que ver eso con la discusión? Absolutamente nada. Solo ganas de molestar y de intentar zafar de la situación a como de lugar. Lo he bloqueado.

* Te respondo diciendoté que estás poniendo excusas (o no sé qué carajo quisiste hacer). Esto es: te comento en donde está tu error, y me saltás con la boludés de que esa pieza de código se puede escribir de muchas formas diferentes. SÍ, SE PUEDE, ¿y eso qué? El error lo cometiste de todas formas, y comentar que se puede escribir de muchas formas diferentes es algo que sencillamene no viene al caso. Eso no es más que una excusa. Cometiste el error, te lo hice saber, y me agradeciste; acá es donde todo debería haber terminado. Pero no, hiciste lo que comenté antes.

* Saltás con huevadas sobre asm que nada tienen que ver en este caso. Una vez más, excusas, o la intención de distraer al lector de tu manqueada principal. ¿Qué joraca importa eso de CODIGO_1 y CODIGO_2? Repito, simplemente estabamos hablando de que cometiste un error en tal parte del código, y esto no tiene nada que ver con esa huevada de CODIGO_1 y CODIGO_2. Excusas.

* Otra vez me preguntas huevadas que no vienen al caso sobre asm o sobre detalles internos del intérprete de PHP. En este punto, yo me pregunto: ¿qué mierda te llevó a hacerme esa pregunta? ¿Por qué pasaste de ponerme excusas sobre el error de los if a hacerme esas preguntas? Supongo que intentabas demostrar algún tipo de conocimiento sobre cosas complejas, como para intentar venderme esa imagen de "ingeniero con alta experiencia profesional" — no funcionó.

* Lo demás es reciente; supongo que te acordás. Y si no, releé todo, capo.
Tienes que ser miembro para responder en este tema