Foros del Web » Programando para Internet » PHP »

Crear carpta y conceder permisos

Estas en el tema de Crear carpta y conceder permisos en el foro de PHP en Foros del Web. Hola a todos: Tengo este script para crear un directorio en el servidor... Código: if ($accion == "insertar") { if ($nombre!="" && $carpeta!="") { if ...
  #1 (permalink)  
Antiguo 19/04/2006, 14:18
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
Crear carpta y conceder permisos

Hola a todos:

Tengo este script para crear un directorio en el servidor...

Código:
if ($accion == "insertar") {	
		if ($nombre!="" && $carpeta!="") {
			if (!file_exists($dir.$carpeta)) {			
				mkdir($dir.$carpeta, 0777);				
				$sql = 'INSERT INTO pg_categorias (nombre, carpeta, descripcion) VALUES (\''.$nombre.'\',\''.$carpeta.'\',\''.$descripcion.'\')'; 		
				$consulta = mysql_query($sql,$conexion);
				if ($consulta==1) { 
					echo "Categoría <strong>$nombre</strong> creada correctamente.";										
				} else {	
					echo "Ha habido un <span class=\"error\">error</span> en la actualización de campos. Prueba más tarde.";
				}
			
			} else { 
				echo "<span class=\"error\">Error :</span> La carpeta <strong>$carpeta</strong> ya está creada.";	
			}		
		} else {
			echo "<span class=\"error\">Error :</span> Los campos <strong>nombre</strong> y <strong>carpeta</strong> son necesarios.";		
		}
La carpeta se crea pero no con los permisos 0777, asi que despues con otro script con el que quiero subir una imagen, me dice que de eso nada... Si le cambio los permisos desde el panel de control del host, funciona perfectamente

alguna sugerencia
  #2 (permalink)  
Antiguo 19/04/2006, 14:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Por defecto mkdir() da el permiso 0777.
No te muestra ningun error?
  #3 (permalink)  
Antiguo 19/04/2006, 14:35
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Muy cierto

Tomando de php.net
Cita:
The mode is 0777 by default, which means the widest possible access
o bien podrias cambiar los permisos de dicha carpeta con chmod()
  #4 (permalink)  
Antiguo 19/04/2006, 14:37
 
Fecha de Ingreso: abril-2006
Ubicación: Cochabamba, Bolivia
Mensajes: 11
Antigüedad: 11 años, 7 meses
Puntos: 0
Me parece que esto tiene que ver on el valor de umask configurado en tu systema.

La solucion de otros usuarios con el mismo problema es:

Código PHP:
<?php
$umaskOriginal
umask(0);
mkdir('mydir'0777); 
umask($umaskOriginal);
?>
  #5 (permalink)  
Antiguo 19/04/2006, 17:00
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
pues despues de utilizar la propuesta de Entity el error que me sale es el mismo que antes...

Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 10237 is not allowed to access miruta owned by uid 48 in httpdocs/gallery/_admin/imagenes.php on line 37

Warning: copy(../imagenes/mas/photoNet.jpg): failed to open stream: No such file or directory in /httpdocs/gallery/_admin/imagenes.php on line 37
  #6 (permalink)  
Antiguo 20/04/2006, 00:23
 
Fecha de Ingreso: abril-2006
Ubicación: Cochabamba, Bolivia
Mensajes: 11
Antigüedad: 11 años, 7 meses
Puntos: 0
Cita:
Iniciado por Operadormail
pues despues de utilizar la propuesta de Entity el error que me sale es el mismo que antes...

Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 10237 is not allowed to access miruta owned by uid 48 in httpdocs/gallery/_admin/imagenes.php on line 37

Warning: copy(../imagenes/mas/photoNet.jpg): failed to open stream: No such file or directory in /httpdocs/gallery/_admin/imagenes.php on line 37
Tienes acceso a modificar el php.ini en el servidor? apaga el safe_mode, osea: safe_mode=off

Sino trata de crear un archivo .htaccess en el directorio donde tienes los scripts, con este contenido:

Cita:
php_flag safe_mode off
  #7 (permalink)  
Antiguo 20/04/2006, 07:00
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
he creado el fichero .htaccess con la instrucción que me indicabas pero no consigo nada... sale el mismo error...
  #8 (permalink)  
Antiguo 20/04/2006, 10:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(Me parece)... El "Safe Mode" no se puede "apagar" por un .htaccess .. sólo es modificable por php.ini

Lo mejor es confirmarlo en:
www.php.net/ini_set

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 20/04/2006, 10:57
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
como puedo cambiar los privilegios o desactivar safe mode con ini_set??

Gracias
  #10 (permalink)  
Antiguo 20/04/2006, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero tu has revisado en la documentación de dicha función si puedes alterar ese valor por ini_set() o por un .htaccess?

Eso es lo primero que debes ver y confirmar, NO toda directiva de PHP se puede cambiar en tiempo de ejecución (ini_set() ..) o por un .htaccess

Al parecer no tienes acceso al php.ini de ese servidor? .. por qué no te contactas con tu proveedor.

Fijate que el proyecto "PHP" en sí para la versión 6 ya están sacando el "safe mode" que más que solucionar problemas de seguridad ocasiona muchos otros problemas .. Fijate:

http://www.php.net/~derick/meeting-notes.html#safe-mode
Según lo que entendí .. el tema será controlado por otras directivas ... supuestamente no deberíamos sufrir más estos problemas y seguirá siendo seguro PHP en sí.

Otras referencias sobre que directivas puedes alterar en qué metodo:
http://www.php.net/manual/en/ini.php#ini.list

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 20/04/2006, 14:03
 
Fecha de Ingreso: abril-2006
Ubicación: Cochabamba, Bolivia
Mensajes: 11
Antigüedad: 11 años, 7 meses
Puntos: 0
@Cluster

Segun el manual, safe_mode se puede alterar con un .htaccess si es que 1) php esta configurado como un modulo de apache y 2) si esa opcion esta habilitada para el usuario (AllowOverride etc..)

Cita:
When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files (e.g. httpd.conf) and .htaccess files. You will need "AllowOverride Options" or "AllowOverride All" privileges to do so.
livedocs.coggeshall.org/en/configuration.html

@Operadormail

Deberias checkear esto con tu proveedor.
  #12 (permalink)  
Antiguo 20/04/2006, 14:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Entity ..

Según la documentación que presentas el valor concreto de la directiva safe_mode sólo se puede cambiar desde el httpd.conf:

Cita:
php_admin_flag name on|off
Used to set a boolean configuration directive. This can not be used in .htaccess files. Any directive type set with php_admin_flag can not be overridden by .htaccess or virtualhost directives.
Apache configuration example
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
php3_include_path ".:/usr/local/lib/php"
php3_safe_mode on
</IfModule>

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 20/04/2006, 16:16
 
Fecha de Ingreso: abril-2006
Ubicación: Cochabamba, Bolivia
Mensajes: 11
Antigüedad: 11 años, 7 meses
Puntos: 0
Cita:
Iniciado por Cluster
Entity ..

Según la documentación que presentas el valor concreto de la directiva safe_mode sólo se puede cambiar desde el httpd.conf:




Un saludo,
@Cluster

Tienes razon, safe_mode NO puede ser modificado por .htaccess.
livedocs.coggeshall.org/en/function.ini-set.html

@Operadormail

Deberias comunicarte con tu proveedor (si es que no lo has hecho ya) para ver si pueden apagar el safe_mode en el php.ini
  #14 (permalink)  
Antiguo 21/04/2006, 09:53
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Tambien podrías pedir que te cambien el umask de creacion de archivos y directorios en tu espacio asignado en el hosting.
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 10:49.