(¿Soy muy novato) chdir() como lo ejecuto?

//make dir
if (isset ($_POST['dir'])) {
    if ($config['protect_makedir']) authorize();
    if ($dirlevel < $config['enable_folder_maxdepth']) {
        $newdir = preg_replace("/[^0-9a-zA-Z\(\)\s]/i",'', $_POST['dir']);
        if ($newdir <> "/") {
            $newdir = $config['storage_path']."/".$newdir;
            if (file_exists($newdir))
                $errormsg = $lang['make_error_exist'];
            else {
                if (mkdir($newdir)) {
                    $loc = rooturl();
                    if (sizeof($dir)>0) $loc .= join("/",$dir)."/";
                    Header("Location: ".$loc);
                    exit;
                } else
                    $errormsg = $lang['make_error_cant'];
            }
        }
    } else {
        $errormsg = $lang['make_error_maxdepth'];
    }
}
Tengo este pedazo de código que me crea un directorio
En la raíz de dode lo tengo ejectuandose.
/html/book/upload/
Si quisiera que el cambiar el make dir a una sub carpeta donde debería aplicar el chdir()
1

1 Respuesta

174.075 pts.
No te recomiendo que cambies el directorio con chdir, puesto que esto cambiará el path relativo de todas tus páginas.
Simplemente escribe todo el path del directorio que quieras crear en $_POST['dir'] o añádeselo:
$newdir = preg_replace("/[^0-9a-zA-Z\(\)\s]/i",'','tupath/subdir/" . $_POST['dir']);
Hola David.
Primero muchas gracias por el interés, no pude responder antes porque creo que la web tuvo problemas...
Hice lo siguiente:
$newdir = preg_replace("/[^0-9a-zA-Z\(\)\s]/i",'.../data/', $_POST['dir']);
Pero no conseguí que me funcionara, quizás porque no me supe explicar bien...
El diectorio de la web en question es:
http://www.marlugue.com/book/upload/index.php
si intentas subir una imagen te la coloca en el path:
/upload/data/nombre de la imagen.jpeg
si intentas crear una carpeta el famoso mkdir() lo hace en:
/upload/nombredelacarpeta/
Pero y he aqui el problema ...dentro del servidor la carpeta la coloca en:
/upload/data/nombredelacarpeta/
El tema es que quiero poder crear vía web una carpeta subir imágenes dentro de ella y luego crear un link en otra pag. Para que muestre el contenido...
No se si lo que quiero es muy complicado pero mil gracias
Esa línea de código que modificaste no tiene nada que ver. Sólo sirve para reemplazar los caracteres extraños que pudiera haber en el nombre del directorio, como acentos y símbolos de puntuación. Déjala como estaba.
La línea que tienes que cambiar es:
$newdir = $config['storage_path']."/".$newdir;
Si la eliminas probablemente te funcionará como deseas.
Es en esta línea donde se añade el camino configurado en alguna otra parte del programa (y que debe ser 'data' seguramente).
Hola David iy muchas gracias por tu interés
no he conseguido que funcionara me canse de trastear pero el caso es que ya encontré otra aplicación muy similar ymenos complicada que funciona perfectamente para lo que yo quiero
el echo que más me preocupa ahora es la seguridad a la hora de que solo yo pueda getionar el subir archivos...
Veré como me lo monto.
Gracias y ... un placer si un día aprendo a escribir php seré =de generoso que tu.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas