Autor Tema: Problema con "Subida de archivos"  (Leído 958 veces)

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Problema con "Subida de archivos"
« en: 13 de Abril de 2009, 11:55:36 am »
bueno pues este es mi script: Descripción más abajo.


<html>
<
body>
<?
include(
"conectar.php");
$name $_FILES[&#39;name&#39;][&#39;name&#39;];

srand((float) microtime() * 10000000);
$entrada = array("3526485""26359183""461047389""15987462");
$claves_aleatorias array_rand($entrada2);
$fin $entrada[$claves_aleatorias[0]] . "\n";

$uploadfile "$fin/$name";
$size $_FILES[&#39;name&#39;][&#39;size&#39;];
$ip $_SERVER[&#39;REMOTE_ADDR&#39;];
$premium "no";
if(
$size >= 200000) {
?>
<script language="JavaScript" type="text/javascript">
<!--
alert("No se ha podido subir el archivo por que es demasiado grande.");
// -->
function redireccionar() 
{
location.href= "http://84.126.3.164/"

setTimeout ("redireccionar()", 10);

</script>


<?
exit ( );
}
$consultamos = &#39;SELECT * FROM archivos WHERE name = "&#39;.$_POST[&#39;nombre2&#39;].&#39;" &#39;;
$comprovacion mysql_query($consultamos);
#Buscamos haver si hay algun usuario o correo ya igual al seleccionado
if(mysql_num_rows($comprovacion)== 0){
$registrar "INSERT INTO archivos (file, name, descripcion, carpeta, IP, size, premium) VALUES (&#39;".$name."&#39;, &#39;".$_POST[&#39;nombre2&#39;]."&#39;, &#39;".$_POST[&#39;desc&#39;]."&#39;, &#39;".$fin."&#39;, &#39;".$ip."&#39;, &#39;".$size."&#39;, &#39;".$premium."&#39;)";
if(mysql_query($registrar)){

$echo copy ($_FILES[&#39;name&#39;][&#39;tmp_name&#39;],"$uploadfile");
if($echo) {
echo &
#39;Este es el link para ver lo que has subido &#39;; ?> <a href="<? echo $uploadfile?>"><? echo &#39;http://84.126.3.164/&#39;.$uploadfile; ?></a>
<?
} else {

?>
<script language="JavaScript" type="text/javascript">
<!--
alert("No se ha podido guardar.");
// -->
function redireccionar() 
{
location.href= "http://84.126.3.164/"

setTimeout ("redireccionar()", 10);
</script>
<? 
}
} else {
?>
<script language="JavaScript" type="text/javascript">
<!--
alert("No se ha podido guardar2.");
// -->
function redireccionar() 
{
location.href= "http://84.126.3.164/"

setTimeout ("redireccionar()", 10);
</script>
<? 
}
} else {
?>
<script language="JavaScript" type="text/javascript">
<!--
alert("Ya existe un archivo con el mismo nombre que has utilizado tu.");
// -->
function redireccionar() 
{
location.href= "http://84.126.3.164/"

setTimeout ("redireccionar()", 10);
</script>
<? 
}
?>
</body>
</html>


Me da un error en la función "Copy":



Otra cosa, quiero saber por que solo me deja subir algunos archivos, otros no:
subo un .jpg y subo otro diferente pero también .jpg y no me deja subirlo... ¿Qué problema hay?
Y luego quiero saber como hacer una restricción para todos los tipos de archivos menos el: .zip, .rar y .exe

¿Cómo lo hago?
Un saludo.

Comunidad PHPeros

Problema con "Subida de archivos"
« en: 13 de Abril de 2009, 11:55:36 am »

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #1 en: 13 de Abril de 2009, 14:47:20 pm »
Hola,

Creo que no deberías trabajar "a pelo" un tema tan delicado como la subida de archivos al servidor, y menos bajo el lema La mejor opción para subir archivos a la red  ;D Los problemas de seguridad que planteas en ese código son ilimitados porque no filtras ningún tipo de contenido.

Deberías plantearte la posibilidad de "trabajar" con classes para subir archivos que ya tengan cierto desarrollo, lo cual te ahorrará tiempo, trabajo y a la vez funcionará mejor (y la seguridad ni te cuento)

Échale un ojo: PHP CLASS UPLOAD

Suerte
Raken - Moderador para PHP y HTML

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #2 en: 13 de Abril de 2009, 16:19:11 pm »
Hola,

Creo que no deberías trabajar "a pelo" un tema tan delicado como la subida de archivos al servidor, y menos bajo el lema La mejor opción para subir archivos a la red  ;D Los problemas de seguridad que planteas en ese código son ilimitados porque no filtras ningún tipo de contenido.

Deberías plantearte la posibilidad de "trabajar" con classes para subir archivos que ya tengan cierto desarrollo, lo cual te ahorrará tiempo, trabajo y a la vez funcionará mejor (y la seguridad ni te cuento)

Échale un ojo: PHP CLASS UPLOAD

Suerte

Jaja ya lo se y te comprendo, es que me aburro mucho no lo voy a subir a la red ni nada de eso es simplemente por aprender, si t puedes centrar en el tema de como solucionarlo, gracias.

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #3 en: 13 de Abril de 2009, 18:13:41 pm »
Sigo diciendo que la forma de solucionarlo es utilizando una CLASS avanzada, lo cual no significa utilizar cosas ya hechas, sino todo lo contrario, ampliarás el conocimiento: Primero, porque lo estarás haciendo de la forma más correcta, y segundo porque te abrirás paso en un campo más amplio, como es el de las classes.

Por otra parte nadie lo hará del modo que lo estás haciendo tú, por lo que si de apredizaje se trata, es tontería seguir por aquí.
« Última modificación: 13 de Abril de 2009, 18:16:40 pm por Raken »
Raken - Moderador para PHP y HTML

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #4 en: 13 de Abril de 2009, 20:28:12 pm »
Sigo diciendo que la forma de solucionarlo es utilizando una CLASS avanzada, lo cual no significa utilizar cosas ya hechas, sino todo lo contrario, ampliarás el conocimiento: Primero, porque lo estarás haciendo de la forma más correcta, y segundo porque te abrirás paso en un campo más amplio, como es el de las classes.

Por otra parte nadie lo hará del modo que lo estás haciendo tú, por lo que si de apredizaje se trata, es tontería seguir por aquí.

Es demasiado complejo no entiendo ni la mitad yo lo unico que quiero es un script pequeño sencillo y que sea un poco seguro para entretenerme un rato nada de profesional...

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #5 en: 14 de Abril de 2009, 00:06:23 am »
Profesional es crear esa CLASS, si quieres definirlo así. Utilizarla es facilísimo, más incluso que lo que estás haciendo, y está todo explicado en la documentación.

¿En qué quedamos, quieres entretenerte, aprender...? Porque lo que haces con ese código no es aprender, y si lo que haces es por entretenimiento, no sé qué ayuda pides :S
Raken - Moderador para PHP y HTML

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #6 en: 14 de Abril de 2009, 07:41:30 am »
Si lo que quieres es aprender a subir archivos con PHP de la forma común, aqui tiene un tutorial en webtaller:

h ttp://www.webtaller.com/construccion/lenguajes/php/lecciones/subir-archivos-php.php

Si buscas en el foro, Naveda puso un tutorial parecido pero en lugar de almacenar los archivos en el servidor los almacenaba en una base de datos. Ese articulo esta en el subforo de Tutoriales PHP, en la segunda pagina.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado judoka

  • PHPero Avanzado
  • ****
  • Mensajes: 255
  • Karma: 4
  • Sexo: Masculino
  • Programando hasta lo mas alto.
    • Ver Perfil
Re: Problema con "Subida de archivos"
« Respuesta #7 en: 14 de Abril de 2009, 11:48:29 am »
Si lo que quieres es aprender a subir archivos con PHP de la forma común, aqui tiene un tutorial en webtaller:

h ttp://www.webtaller.com/construccion/lenguajes/php/lecciones/subir-archivos-php.php

Si buscas en el foro, Naveda puso un tutorial parecido pero en lugar de almacenar los archivos en el servidor los almacenaba en una base de datos. Ese articulo esta en el subforo de Tutoriales PHP, en la segunda pagina.

Saludos

Muchas gracias pueden cerrar tema, encontré la solucion a mi problema.. ahroa estoy subiendo la seguridad del script.