Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Diabliyo en 7 Enero 2007, 00:47 am



Título: Problemas con funcion copy()
Publicado por: Diabliyo en 7 Enero 2007, 00:47 am
Hola:

Utilizo un servidor Windows Small Bussiness Server 2003 con ISS, SQL y PHP funcionando, el problema que se me presenta es que NO puedo copiar archivos/imagenes/text-files (nada) hacia el servidor con la funcion copy ni move_uploaded_file() !!!...

NOTA IMPORTANTE: por razones de trabajo es necesario que el codigo funcione en WINDOWS :(, ya que este mismo codigo corre perfectamente en mi Linux (porke es mi propia Laptop).

Este es el error:
Código:
Warning: copy(c:\inetpub\wwwroot\jorge\fotos/001.htm) [function.copy]: failed to open stream: Permission denied in c:\inetpub\wwwroot\jorge\fotos\loader_files.php on line 88

Y aqui un poquito dle codigo:
Código:
<?php
if( $_FILES["fotos"] )
{
$url= getcwd(). "/";
if( copy( $_FILES["fotos"]["tmp_name"], $url.$_FILES["fotos"]["name"] ) == FALSE )
{
echo "Problemas para subir el Archivo: ". getcwd();
echo "<br>Nombre: ". $_FILES["fotos"]["name"];
echo "<br>Tipo: ". $_FILES["fotos"]["type"];
echo "<br>TempName: ". $_FILES["fotos"]["tmp_name"];
echo "<br>Hacia: ". $url.$_FILES["fotos"]["name"];
}
else
header( "Location: loader_files.php" );
}
else
echo "ERROR";
?>

Otro dato importante que dejo, son la configuracion del php.ini, aqui dejo algunas cosas que creo importante que sepan:

Código:
::sessions]::
session.save_path = "C:\Inetpub\wwwroot\php_tmp"

::file uploads::
upload_tmp_dir = "C:\Inetpub\wwwroot\php_tmp"

Ayuda porfavor !!... Hasta luego !!

bye bye


Título: Re: Problemas con funcion copy()
Publicado por: SeniorX en 7 Enero 2007, 00:59 am
Lo principal de tu problema es:
Citar
Permission denied in c:\inetpub\wwwroot\jorge\fotos\loader_files.php

Tienes que darle los permisos correspondientes a loader_files.php.


Título: Re: Problemas con funcion copy()
Publicado por: Ertai en 7 Enero 2007, 02:22 am
Cuidado!

Código:
c:\inetpub\wwwroot\jorge\fotos/001.htm

Debe ser...

Citar
c:\inetpub\wwwroot\jorge\fotos\001.htm

Igualmente creo que es un problema de permisos. Dale permisos 777 a esa carpeta.

Saludos ;)


Título: Re: Problemas con funcion copy()
Publicado por: Diabliyo en 8 Enero 2007, 22:31 pm
Cuidado!

Código:
c:\inetpub\wwwroot\jorge\fotos/001.htm

Debe ser...

Citar
c:\inetpub\wwwroot\jorge\fotos\001.htm

Igualmente creo que es un problema de permisos. Dale permisos 777 a esa carpeta.

Saludos ;)

Estoy en Windows, creo que NO es posible usar el simbolo: \... ya que al momento de poner por ejemplo:

Código:
copy( $_FILES['archivo_txt']['name'], "tmp/" );  //estom es correcto

copy( $_FILES['archivo_txt']['name'], "tmp\" )  //esto es incorrecto y no deja ni visualizar la hoja

Por eso aparece asi como C:\dire\ccio\on\del\path/archivo (espero y me haya explicado xD !!!....

byee


Título: Re: Problemas con funcion copy()
Publicado por: Diabliyo en 8 Enero 2007, 22:35 pm
Lo principal de tu problema es:
Citar
Permission denied in c:\inetpub\wwwroot\jorge\fotos\loader_files.php

Tienes que darle los permisos correspondientes a loader_files.php.

Hola:

Como modifico estos permisos ????... ya sea del ARCHIVO PHP o de la CARPETA ???....

Recuerden que estoy en Windows y pues ya intente con: Click Derecho y Propiedades, deje libre para escritura y lectura (ya que solo aparece 2 casilla :P).... Pero aun NO puedo hacer: copy() :(....

Sera que NO habra solucion a este problema ???... porke he buscado en GOOGLE y siempre contestan lo mimo: PERMISOS... Y me consta que SI SON LOS PERMISOS, ya que mi codigo jala en mi LAPTOP (tiene Slackware Linux), pero el codigo debe funcionar forzosamente en Windows (cosas del trabajo :( )....

Espero y me puedan ayudar, ya que la estupida shell de Windows no acepta:

Código:
shell C:> chmod -R 0755 carpeta_de_los_php/
shell C:>chmod 0755 *.php

jijijijiji xD ;D

bye bye


Título: Re: Problemas con funcion copy()
Publicado por: Ertai en 9 Enero 2007, 23:25 pm
Intenta crear un archivo en la carpeta.

Así sabrás si son permisos o no.


Título: Re: Problemas con funcion copy()
Publicado por: Diabliyo en 9 Enero 2007, 23:51 pm
Intenta crear un archivo en la carpeta.

Así sabrás si son permisos o no.

Pues si son permisos :S :(.... Este es el error:

Código:
Warning: mkdir(angel) [function.mkdir]: Permission denied in c:\inetpub\wwwroot\tmp.php on line 22

Warning: chdir() [function.chdir]: No such file or directory (errno 2) in c:\inetpub\wwwroot\tmp.php on line 24


Título: Re: Problemas con funcion copy()
Publicado por: Ertai en 10 Enero 2007, 00:04 am
Te lo dije


Título: Re: Problemas con funcion copy()
Publicado por: Ertai en 10 Enero 2007, 00:07 am
Mira como saber los permisos que tienes sobre la carpeta en Win.


Título: Re: Problemas con funcion copy()
Publicado por: Diabliyo en 10 Enero 2007, 20:44 pm
Hola:

Listo problema resuelto, solo cambie permisos desde la consola de windows.

Para cambair los permisos en archivos o carpetas en WINDOWS, es necesario saber los USUARIOS que son/estan en el sistema, y el permiso que le daremos, por ejemplo:

Código:
C:\> cacls [archivo/carpeta] [/P USER:PERMISO USER:PERMISO USER:PERMISO]

Donde:
USER (Estos son algunos usuarios):
-Diabliyo
-Administrator
-Administrators
-Users
-SYSTEM
-IUSR_ELITE-LAPTOP
-IWAM_ELITE-LAPTOP
-none

PERMISO (Estos son algunos permisos):
F -> Full Control
R -> Read
W -> Write
C -> Change (Write)

Ejemplo en Consola:

Código:
C:\> cacls archivo /P Diabliyo:F Administrator:F Administrators:F Users:F SYSTEM:F IUSR_ELITE-LAPTOP:F IWAM_ELITE-LAPTOP:F none:F

C:\> cacls carpeta /P Diabliyo:F Administrator:F Administrators:F Users:F SYSTEM:F IUSR_ELITE-LAPTOP:F IWAM_ELITE-LAPTOP:F none:F


NOTA:
Deficientemente e ignorantemente, si cambias los permisos de una carpeta, los permisos solo cambiaran en la carpeta, y NO cambiaran en sus archivos dentro. Asi que habra que hacerle el cambio a cada archivo manualmente, o bien el tipico: *.extension (pero asi cambiariamos TODOS)

Asi que, Bendito sea: shell# chmod -R 0755 carpeta  (ya que en linux si se cambian a su ves los archivos xD).

Bueno con eso ya funciona COPY() y deja de tirar errores !!

Gracias a todos !!

bye bye