Foros del Web » Programando para Internet » PHP »

problemas con move_uploaded_file

Estas en el tema de problemas con move_uploaded_file en el foro de PHP en Foros del Web. tengo un problema que al parecer es de seguridad q al parecer lo ha ncambiado ultimamente, no se si es posible q yo pueda configurar ...
  #1 (permalink)  
Antiguo 21/07/2004, 09:32
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
problemas con move_uploaded_file


tengo un problema que al parecer es de seguridad q al parecer lo ha ncambiado ultimamente, no se si es posible q yo pueda configurar algo para q pueda hacer uploads, aunq en ralidad l oq estoy tratando de hacer es sobreescribir un archivo

me sale esto:

Warning: move_uploaded_file(curriback.php): failed to open stream: Permission denied in /var/www/html/puid/uploadback.php on line 360

Warning: move_uploaded_file(): Unable to move '/tmp/phpAyzlkH' to 'curriback.php' in /var/www/html/puid/uploadback.php on line 360
__________________
X
  #2 (permalink)  
Antiguo 21/07/2004, 10:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. el directorio donde pretendes mover el archivo .. ¿tiene permisos de escritura?.

Por lo demás .. no he probado si move_uploaded_file() sobreescribe archivos que ya existan ..

Podrías comprobar su existencia antes de moverlo con funciones como file_exists()
y de ahí si requieres borrarlo antes de sobre-escribirlo (de usar move_uploaded_file() ) usa: unlink()

Un saludo,
  #3 (permalink)  
Antiguo 21/07/2004, 10:33
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
ummm

bueno yo si he probado hasta el cansancio lo de sobreescribir y no he tenido problema alguna lo de los permisos eso creo q si no tengo, hay forma de cambiarlo de forma remota sin ftp?
__________________
X
  #4 (permalink)  
Antiguo 21/07/2004, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con la misma funcionalidad que usarías en tu cliente FTP:

chmod()
www.php.net/chmod

Un saludo,
  #5 (permalink)  
Antiguo 21/07/2004, 12:34
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
ummm bueno lo q intente fue subir un archivo q con chmod me cambiara la configuracion pero no puedo subir el archivo si quiera
me dice q tengo un error en esta linea

if (move_uploaded_file ($archivo,"$archivo_name"))

y todo esta declarado asi, pero nada

$archivo_name= $HTTP_POST_FILES['archivo']['name'];
$archivo_size= $HTTP_POST_FILES['archivo']['size'];
$archivo_type= $HTTP_POST_FILES['archivo']['type'];
$archivo= $HTTP_POST_FILES['archivo']['tmp_name'];
__________________
X
  #6 (permalink)  
Antiguo 21/07/2004, 12:59
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
bueno ahora q veo otro problema q se me presenta es q en una seccio nde mi portal tienen q enviar documentos como haria para q los envien por los derechos, como hago para q esos ususarios q no hacen login tengan dferechosy puedan almacenar sus archivos en mi web?

porq en la seccion q hago el upload "free" me sale esto:

Fatal error: Call to undefined function: () in /var/www/html/puid/curriback.php on line 376

esta es la susodicha linea: }else{if ($mysql_num_rows($query)!=0) {echo "Tu curriculum ya ha sido enviado anteriormente";echo "<br>";echo "De haber un error haga las aclaraciones respectivas a la oficina";echo "<br>";}

el problema es q tenia un error el $ antes del mysql_num_rows pero ahora no l opeudo corregir desde remoto y no tengo acceso ftp
__________________
X
  #7 (permalink)  
Antiguo 21/07/2004, 13:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate bien en la documentación de move_uploaded_file():

www.php.net/move_uploaded_file

el primer parámetro es la ruta del archivo origen (el _tmp) y el segundo el nombre y ruta del archivo en destino ...

El uso que haces del nombre del archivo para $archivo ..podría darte problemas usalo:

if (move_uploaded_file ($archivo_tmp,$archivo_name))

y todo esta declarado asi, pero nada

$archivo_name= $HTTP_POST_FILES['archivo']['name'];
$archivo_size= $HTTP_POST_FILES['archivo']['size'];
$archivo_type= $HTTP_POST_FILES['archivo']['type'];
$archivo_tmp= $HTTP_POST_FILES['archivo']['tmp_name'];

Por lo demás .. no se vé que formulario HTML usas .. pero la codificación de este es importante.

Recuerda que siempre puedes hacer un "echo" a esas variables y observar que datos trae.

Por lo demás . .yo NO usaría $HTTP_POST_FILES sino $_FILES más seguro (a partir de PHP 4.1.0)

------

Los otros problemas que tienes no te entiendo. Recuerda que los que aquí intentamos responder no conocemos las condiciones de tus pruebas o sistema .. Yo no sé que hace si un usuario hace "login" o donde van a parar esos archivos .. Sólo te puedo decir que el "move_uploaded_file()" mueve archivos hacia la ruta que indiques .. el nombre de ese directorio o si no está creado hay que crearlo es otro tema . .pero deberías centrar mejor la pregunta.

Un saludo,
  #8 (permalink)  
Antiguo 21/07/2004, 17:48
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
umm a ver me explico

bueno lo q pasa es q no se mucho obre los derechos q uno pone, eso de los derechos de leer, escribir para los usuarios, propietarios, para ser mas claro los numeros q uno pone cuando sube cosas al ftp q dan los derechos....(lo del chmod)
como se puede ver no tengo muy claro eso, se q son permisos, pero no se cuando la pagina considera a alguien como propietario y cuando no? por eso es q no se cuando se puedan subir cosas a la pagina y cuando no....
espero hayan entendido mi duda
__________________
X
  #9 (permalink)  
Antiguo 22/07/2004, 06:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los permisos sobre archivos/directorios los define el S.O. que uses .. Linux tiene los suyos (y Windows los suyos) ..

Lo primero es saber que S.O. usa tu servidor para ajustar los permisos que correspondan .. El "chmod" es própio de servidores Linux y si tienes dudas con esas deberías acudir a un manual al respecto o preguntar en el foro adecuado.

Un saludo,
  #10 (permalink)  
Antiguo 22/07/2004, 09:04
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
bueno si se q es un servidor linux y al parecer en esta ultima semana han activado eso e los permisos, lo q preguntaba es si se podia hacer algo desde el php
__________________
X
  #11 (permalink)  
Antiguo 22/07/2004, 10:03
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
lo q acabo de leer es q si las personas de todo el mundo entran a mi portal entonces al dirctorio donde se encuentran mis archivos deberia ponerle el chmod 777 para q puedan subir y sobreescrbiir archivos???
Es q necesito de eso porq mi portal se basa mucho en intercambio de informacion. la seguridad la he dado por php asi q supogno q no habria problema, verdad?
__________________
X
  #12 (permalink)  
Antiguo 22/07/2004, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
lo q acabo de leer es q si las personas de todo el mundo entran a mi portal entonces al dirctorio donde se encuentran mis archivos deberia ponerle el chmod 777
Estás confundiendo "tus vistantes/usuarios de tu aplicación: portal" con los usuarios del sistema opertavio del servidor ..

Realmente el único usuairo que accede a tus archivos cara al S.O. de ese servidor son tus scripts PHP y como mucho otro usuario que será el que uses para entrar por FTP a tu sitio. PHP suele ser el usuario "www" o "nobody" o similar .. y el de FTP otro. Para que archivos que "subas" por FTP (bajo ese usuario) y los que pueda crear "PHP" bajo su usario los veas y puedas acceder de una y otra forma (PHP, FTP) tendrás que dar permisos para "todo usuario" al menos de "lectura" .. ese "0777" dá permisos de escritura/ejecución/lectura a todo usuario de ese S.O. (nada que ver .. inisito... con los usuarios de tu "portal"). Usa 0666 como permiso para el directorio donde queden tus archivos (o menos .. consulta en el foro de LINUX que significa ese "numero octal")

Un saludo,
  #13 (permalink)  
Antiguo 23/07/2004, 10:04
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
entonces

bueno enotnces todo me confirma q no es nada del php y con el nada puedo hacer solo me queda ir al servidor y poner el 777, verdad?

PD: sorry pero de verdad no se mucho de los permisos
__________________
X
  #14 (permalink)  
Antiguo 23/07/2004, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así es .. tienes que cambiar el permiso de ese directorio donde mueves tus archivos. Eso lo puedes hacer por FTP con tu cliente FTP habitual y la funcionalidad "CHMOD" que tienen ajustando a "0666" (por lo menos: "escritura a todo usuario")

Un saludo,
  #15 (permalink)  
Antiguo 23/07/2004, 15:54
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
oks! muxas gracias espero ya entonces el lunes ir al server cambiar eso y q de una vez por todas me den acceso ftp, aunq q necesito para q me den eso?
__________________
X
  #16 (permalink)  
Antiguo 23/07/2004, 19:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
aunq q necesito para q me den eso?
Pues exigirlo!.

No sé con quien "trabajas" .. pero no tiene pinta de ser muy "profesional" el servicio de hosting que te ofrecen (acaso es un "amigo" que en casa está jugando al "hosting"?)

Un saludo,
  #17 (permalink)  
Antiguo 23/07/2004, 19:26
Avatar de alucard3003  
Fecha de Ingreso: abril-2004
Mensajes: 148
Antigüedad: 20 años
Puntos: 0
bueno en realidad hice un trabajo para un ministerio de por aca y esta alojado en un servidor de ese ministerio, y bueno los tramites con el estado son una joda por eso se me ha ce dificil pedir algo porq todabia es un favor, la vez pasada pusieron la segurida del php q on me acuerdo como se llama y no me avisaron.....
__________________
X
  #18 (permalink)  
Antiguo 23/07/2004, 19:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
"safe mode" ? Te activaron eso y no te avisarón? ..

Bueno en tal caso .. si ya conoces a tu "proveedor" para el tema del hosting/PHP .. tan sólo tienes que hacerte phpinfo() constantes para ver si no han cambiado algo .. sobre todo cuando "hoy te funcionó algo" y "mañana no" ... (y eso implica conocer la configuración de PHP para saber como se va a comportar tu aplicación ante diferentes configuraciones de PHP).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:23.