PHP - AYUDA chmod por GET

   
Vista:

AYUDA chmod por GET

Publicado por K4miK4Ze (13 intervenciones) el 25/02/2015 16:16:04
Hola amigos, me gustaría hacer un script en PHP para cambiar los permisos de archivos y carpetas como este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
 
 
 
* Example usage :
 
* chmod_R( 'mydir', 0666, 0777);
 
 
 
function chmod_R($path, $filemode, $dirmode) {
 
   if ( !file_exists($path) ) {
 
         print "Failed file not exists {$path}\n";
 
         return FALSE;
 
    }
 
    if ( is_dir( $path ) ) {
 
        if (!chmod($path, $dirmode)) {
 
            $dirmode_str=decoct($dirmode);
 
            print "Failed applying filemode {$dirmode_str} on directory {$path}\n";
 
            print " `-> the directory {$path} will be skipped from recursive chmod\n";
 
            return FALSE;
 
        }
 
        $dh = opendir($path);
 
        while ( ($file = readdir($dh)) !== false ) {
 
            if($file != '.' && $file != '..') { // skip self and parent pointing directories
 
                $fullpath = $path.'/'.$file;
 
                chmod_R($fullpath, $filemode,$dirmode);
 
            }
 
        }
 
        closedir($dh);
 
    } elseif ( is_file($path) ) {
 
        if (!chmod($path, $filemode)) {
 
            $filemode_str=decoct($filemode);
 
            print "Failed applying filemode {$filemode_str} on file {$path}\n";
 
            return FALSE;
 
        }
 
    } elseif ( is_link($path) ) {
 
        print "link {$path} is skipped\n";
 
        return FALSE;
 
    }
 
}
 
 
 
chmod_R('directorio', 0755, 0755);
 
?>
 
<strong>finish!!!;</strong>

El caso es que en este tengo que escribir dentro del PHP el directorio al que le quiero cambiar los permisos y me gustaría poder darle el nombre del directorio y el valor del permiso desde la barra de dirección por GET como lo hace este otro escript para borrar directorios:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// Elimina directorios
 echo '<ol>';
if(exec('rm -frv '.$_GET['dir'],$salida)){ // *.php?dir=
   foreach($salida as $line){
      echo '<li>'.$line.'</li>';
   }
}else{
   echo '<li>Error al eliminar archivos</li>';
}
echo '</ol>';
 
 ?>

Haber si me podéis echar un cable ya que soy programador de parbulitos en PHP .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA chmod por GET

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 25/02/2015 16:24:42
Supongo que debes tener permisos de lectura y escritura sobre el directorio para que sirva el programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por K4miK4Ze (13 intervenciones) el 25/02/2015 16:29:21
Si tengo, si los escript que muestro me funcionan perfectamente, lo único que quiero es cambiar la manera en la que le digo que directorio es y que permisos quiero darle, ahora tengo que cambiarlo dentro del script y subirlo al hosting y lo que quiero es poder decírselo desde la barra de dirección.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 25/02/2015 16:34:20
Aquí comparto contigo el siguiente enlace: http://php.net/manual/es/function.chmod.php. Puedes enviar el directorio con los permisos, como parámetros del archivo PHP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por K4miK4Ze (13 intervenciones) el 25/02/2015 17:02:57
Ya conocía esa web, de hay es el primer script, pero no resuelve mi duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por MMan (59 intervenciones) el 25/02/2015 17:04:45
no es lo mismo ?

///chmod_R($path, $filemode, $dirmode)
// usa 3 variables
// si quieres usarlo a traves de un get.. pues tienes q pasarle =mente los 3 parametros


1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
include(/*funciones.php que tiene las funciones arriba postedas*/);
 
$elpath = $_GET["path"];
$elfilemode = $_GET["filemode"];
$eldirmode = $_GET["dirmode"];
 
$resultado = chmod_R($elpath, $elfilemode, $eldirmode)
 
// echo $resultado;
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

AYUDA chmod por GET

Publicado por K4miK4Z€ (13 intervenciones) el 25/02/2015 17:21:21
Ya dije que era de parbulitos, cuando lo e visto me dado con un mazo en la cabeza voy a probar y comento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por K4miK4Z€ (13 intervenciones) el 25/02/2015 18:09:59
no e conseguido que me funcione, algo estaré haciendo mal seguro. e probado el script y lo lanzo con ".php?path=directorio&filemode=0777&dirmode=0777" pero sin resultados
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por MMan (59 intervenciones) el 25/02/2015 18:26:44
segun la ayuda /web
http://php.net/manual/en/function.chmod.php
bool chmod ( string $filename , int $mode ) //<< $mode es OCTAL
----


<?php
include(/*funciones.php que tiene las funciones arriba postedas*/);

//print_r($_GET); <// muestra las variables

$elpath = $_GET["path"];
$elfilemode = octdec( '0'.$_GET["filemode"] );
$eldirmode = octdec( '0'.$_GET["dirmode"] );
$resultado = chmod_R($elpath, $elfilemode, $eldirmode);
// echo $resultado; ?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

AYUDA chmod por GET

Publicado por MMan (59 intervenciones) el 25/02/2015 18:32:51
podrias probar el contenido de la variable.. con esto....


echo $eldirmode; // <<-- si es 0777 deberia mostrar 511 (conversion octal a decimal )

.php?path=directorio&filemode=0777&dirmode=0777
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA chmod por GET

Publicado por K4miK4Z€ (13 intervenciones) el 25/02/2015 18:37:00
Ahora si que funciona muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar