Crear directorios en php

Hola. Estoy haciendo una web en la que el usuario, al rellenar un formulario (nombre correo electrónico, enlace...), cree un directorio. Este directorio mostrara el mismo contenido que el index principal sustituyendo los valores del formulario (variables). Por ejemplo, juan rellena el formulario y se le crea un directorio www.miweb.com/juan. Este directorio muestra el mismo contenido y estructura que el index principal, exceptuando algunas variables que se sustituirán por valores del formulario (el objetivo de este proyecto es mostrar un enlace en el directorio creado que introduce el usuario en el formulario).
Se que las funciones que necesito son mkdir() (crear el directorio) y copy() (copiar el contenido del index). Pero esto no es lo más óptimo, pues terminaría creando cientos o miles de carpetas todas con contenido duplicado.
Para optimizarlo podría guardar los datos en la base de datos. Usar el mod_rewrite para simular una "carpeta" distinta para cada usuario, pero en realidad trabajar con un único archivo, que tome los datos de la base de datos y los muestre. Es aquí donde quiero llegar pero soy novato en esto de la programación y php. Por ello te pido que me des explicaciones claras y que las pueda entender. Tengo contratado un hosting con bastante espacio, puedo crear bases de datos... Utilizo cpanel. Espero tu respuesta. Muchas gracias de antemano.

5 respuestas

Respuesta
1
En si no hay mucha complicación en tu pregunta ya que lo que necesitas hacer es crear un archivo que sea una plantilla con la estructura que deseas mostrar y realizar una consulta con tu base de datos para poder cambiar la información que desees que sea varaible o dinámica.
Comencemos a explicar como debes trabajar:
Entendiendo que en el formulario se guardaron los daton ingresados en la base de datos (si necesitas ayuda en esto me preguntas), podrás seguir trabajando de esta manera.
Comenzando por configurar el apache en mod_rewrite (http://www.peoplecnc.com/ayuda_mod_rewrite.html), es necesario que crees la consulta a la base de datos que rescatará los datos.
Imaginando que el dato que indentifique al usuario específico lo envíes por url, la dirección "a secas" sería "index.php?nombre=juan", donde "juan" es el campo que nos dirá quien es el usuario que se conectó al sitio.
En las primeras líneas de la plantilla de tu sitio debes obtener este dato y crear la consulta.
$nombre=$_GET["NOMBRE"];
De esta manera has rescatado el valor de la url y la has guardado en una variable.
Después debes buscar los datos. En el caso de que la tabla se llame "usuario", podría ser
-select * from  usuario where nombre_usuario='$nombre'.
Así rescatarias los datos del usuario que se conectó.
$arr=mysql_fetch_array($resultado_consulta);
Con los datos ya recojidos será necesario colocarlos en la plantilla, para lo cual lo haces así.
Imaginemos que tienes en el html de la plantilla este texto:
Hola
Y así le dices al php para que escriba el nombre de la base de datos y aparezca en el texto como si lo hubieses escrito con anterioridad, aunque estés usando solo un archivo como plantilla.
Quizá no he sido tan específico aunque si tienes dudas en alguno de los pasos solo preguntame y a la brevedad te ayudaré.
Respuesta
1
Bajate de cualquier red ... el soft: "php link directory" luego lo modificas a tu gusto, y tiene templates, te ahorrarás muchos dolores de cabeza :)
Respuesta
1
Utilizando el mod_rewrite: crea el archivo .htaccess (si aun no lo tienes creado) con el siguiente contenido:
Options +FollowSymLinks
RewriteEngine on
Rewriterule ^(.*)$ usuarios/index.php?username=$1
Aquí hay que tener encuenta que al usar una carpeta en 1er nivel tendrás problemas con el resto de carpetas (/img, /js, /css...), por lo que te recomiendo utilizar una carpeta por ejemplo user:
www.miweb.com/user/juan
de esta forma la regla del rewrite quedaría:
Rewriterule ^user/(.*)$ usuarios/index.php?username=$1
Dentro del index.php gestionas las carpetas y usuarios obteniendo la info desde la base de datos.
Respuesta
1
PErdona que haya contestado hasta hoy pero he estado un poco ocupado. Pues lo último que has dicho es lo más correcto, creas un index.php y todos los datos por cada usuario los cargas de una base de datos y cambias cada una de las variables dentro de la página.
De tal modo que tendrías algo como esto:
http://tuweb.com/index.php?iduser=40
Y de esta forma te evitas estar creando carpetas.
También puedes crear frames para que el id del usuario no se vea.. y solamente se vea de esta forma:
http://tuweb.com/
Creando 2 frames uno con portencaje cero(0%) y el otro con 100%, podrías realizar esto.
Espero te sirva mi respuesta y quedo a tus ordenes por si tienes más dudas.
Respuesta
1
No me queda muy claro lo que deseas hacer, pero si vas a hostear usuarios y cada uusario con sus archivos... entonces debes de tener carpetas independientes de usuarios, el mod_rewrite lo que hace es convertir un url sin información a un url con información para que los buscadores como google, lo duireccionen cuando sea necesario.
Supón que tu página para entrar a un articulo de programación en php sea:
http://www.tusitio.com/datos/muestra.php?articulo=200
te lo cambiaria por
http://www.tusitio.com/datos/mod_rewite_programacion

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas