Título: como puedo crear una pagina para cada producto?? Publicado por: Benjamin Clay en 10 Enero 2020, 23:31 pm Hola AYUDAAA!!
No soy un novato en programacion pero tampoco soy tan experto y pues ultimamente estoy utilizando php 7 y mysql como hobby y trate de crear una pagina pero tengo un problema o duda. Me explico... Queria crear una pagina, el cual pueda subir productos de belleza y que al crear un producto eso se registre en la base de datos y automaticamente se cree una parte en la web con esas descripciones. Ejemplo: Quiero subir que vendo un perfume Antonio Banderas y al registrar eso se guarde en la base de datos todas las descripciones de ese perfume (eso ya lo tengo) pero ahora nose como hacer para que la web tenga http://miweb.com/antoniobandera podria crear una pagina y llamar a la base de datos y guardar todo eso en antoniobaderas.php Pero como haria si yo quisiera que mis clientes quisieran publicar sus productos y que al subir sus productos se cree el enlace http://miweb.com/elproductodelcliente Otro ejemplo seria, como cuando creo mi facebook, entonces facebook me crea un perfil http://facebook.com/miguelcarares y no encuentro el script de php o sql que puede hacer que al guardar la informacion tambien me cree un subdominio. ANTE TODO GRACIAS!! Título: Re: como puedo crear una pagina para cada producto?? Publicado por: engel lex en 11 Enero 2020, 00:38 am lo que buscas se llaman "url amigables" o url semanticas
Título: Re: como puedo crear una pagina para cada producto?? Publicado por: Benjamin Clay en 11 Enero 2020, 01:30 am lo que buscas se llaman "url amigables" o url semanticas Amigo eso pense pero no me refiero a que yo quiero acortar las extensiones sino a que yo quisiera saber si existe un metodo para que como el ejemplo de facebook, al registar algo pues se cree una pagina con nombre ejemplo http://miweb.com/perfume y a dentro pues podria conectar a la base de datos. Eso se puede hacer manualmente pero quisiera saber si existe un metodo para que al ingresar los datos, eso se cree automaticamente Título: Re: como puedo crear una pagina para cada producto?? Publicado por: Ali Baba en 11 Enero 2020, 02:46 am Coloca el código que tienes hasta ahora para poder tener una mejor referencia y poder ayudarte
Título: Re: como puedo crear una pagina para cada producto?? Publicado por: MinusFour en 11 Enero 2020, 03:09 am Amigo eso pense pero no me refiero a que yo quiero acortar las extensiones sino a que yo quisiera saber si existe un metodo para que como el ejemplo de facebook, al registar algo pues se cree una pagina con nombre ejemplo http://miweb.com/perfume y a dentro pues podria conectar a la base de datos. Eso se puede hacer manualmente pero quisiera saber si existe un metodo para que al ingresar los datos, eso se cree automaticamente Es lo mismo. Tu servidor recibe una URL que es el documento al cual el cliente quiere acceder. Tu puedes programar al servidor para que haga lo que quiera con la URL. Si tu quieres que la URL /perfume haga algo con el producto "perfume" que tienes en tu base de dato, tu servidor bien puede recoger la URL extraer ese dato y hacer la conexión para recuperar toda la información necesaria. La confusión es probablemente por que piensas que debe haber un archivo "perfume" en tu servidor para que funcione correctamente. Los servidores web más populares trabajan con el sistema de archivos de tu sistema operativo para hacer una traducción de una URL a una ubicación en tu sistema. Tu puedes configurar tu servidor web para que use un punto único de entrada y reciba toda la información del servidor. De forma que no necesitas tener un archivo para todas las URLs posibles. Sin embargo, quizás la forma más común es la de reescribir URLs que usan la parte conocida como "query string" a que tome parte del path de la URL. Por ejemplo puedes reescribir todas las URLs como: Código: www.miweb.com/producto.php?nombre=perfume Y transformalas en: Código: www.miweb.com/perfume Puedes reescribir todas estas manualmente o usar un patrón con Regex para reescribir todas esas URLs que encajen el patrón. Todo esto lo puedes encontrar si buscas sobre las URLs amigables para el servidor web que estés usando. Me imagino que usas Apache si usas PHP y MySQL así que te diría que empieces a leer sobre mod_rewrite si así es el caso. Título: Re: como puedo crear una pagina para cada producto?? Publicado por: AlbertoBSD en 11 Enero 2020, 03:12 am Amigo eso pense pero no me refiero a que yo quiero acortar las extensiones sino a que yo quisiera saber si existe un metodo para que como el ejemplo de facebook, al registar algo pues se cree una pagina con nombre ejemplo http://miweb.com/perfume y a dentro pues podria conectar a la base de datos. Eso se puede hacer manualmente pero quisiera saber si existe un metodo para que al ingresar los datos, eso se cree automaticamente Una plantilla base para cualquier producto genérico, luego de eso solo necesitas redirigirlas todas desde index para que este lo haga por si solo. Se modifica la configuración de apache o el htaccess para que redireccione todo al index y desde ahí lo procesas ejemplo del index.php Código
Asi estan reservados: / /blog /news Y todos los demas los va a buscar la plantilla generica o como quieras llamar al archivo. Consideraciones importantes Es mejor tener todos los archivos a los que les haces include en un directorio secreto asi terminas haciendo Código: include($directorio_secreto.$archivo); Todos los archivos del directorio tienen que validar si fueron incluidos por el archivo principal esto es Código: if(isset($variable_en_index)){ Si no se hace de esa forma puede alguien encontrar los archivos individuales y llamarlos individualmente ocasionando errores tipo path_disclosure entre otros. Si el código que muestro anteriormente tiene errores disculpen lo acabo de escribir para el ejemplo y no lo valide. Saludos! Título: Re: como puedo crear una pagina para cada producto?? Publicado por: @XSStringManolo en 11 Enero 2020, 16:09 pm No es más sencillo crear un subdirectorio de la raiz del sitio y un archivo index.html dentro con el contendio?
http://stringmanolo.ml/perfumes Solo cree una carpeta llamada perfumes y dentro metí un index.html En php tienes funciones como fopen fwrite fclose o file_put_contents que te permiten manejar, editar, crear archivos de todo tipo. Solo tienes que ajustar la header. Para html con iniciar el archivo con <!DOCTYPE html> ya se settea auto la cabecera a archivo html. La forma más sencilla de crear este archivo es con: file_put_contents("perfumes/index.html", $RespuestaConsultaBD, FILE_APPEND); Si el archivo existe te añade lo que tengas en $RespuestaConsultaBD al archivo. Si no existe te lo crea. Podrías tener toda la web en un array. Más o menos algo tipo: Código Y después creas el directorio y el archivo. file_put_contents("perfumes/index.html", $web); Como siempre que dejes a un usuario hacer cosas en tu sitio tienes que tener mucho cuidado. Por ejemplo si añadieses algo así como en el ejemplo sin más, el usuario podría hacer muchas cosas indeseadas: Inyección SQL o consultas de datos privados para que tu código php mostrase dichos datos en el index.html y así el atacante poder verlos. Por ejemplo si en vez de perfumes solicitase ../.htaccess podría añadir entradas al archivo. O con ../index.html hacer un defacement al index.html de tu sitio web. Inyecciones de javascript, ver archivos privados o logs con información sensible... Subirte malware directamente ya que podría crear un archivo .php que crease lo que quisiese y con las cabezeras de archivo que quisiese... Te expones a bastantes más cosas, pero eso ya es tema a parte. PD: También puedes "ejecutar" archivos con extensión .html como si fuesen .php Es decir, podrías tener en el index.html código php para hacer consultas, etc. Título: Re: como puedo crear una pagina para cada producto?? Publicado por: AlbertoBSD en 11 Enero 2020, 16:27 pm Obvio hay muchas soluciones para realizar la misma acción en programación, lo que comentas es totalmente valido y aplicable
Ventaja Creas el archivo directamente en el disco y su lectura no volverá a pasar por el interprete PHP Desventaja En hostings limitados en numero de archivos, puede no funcionar si quieres crear no se... un millón de entradas diferentes Tienes que crear un Directorio y un Index.html (2 Archivos por entrada) para un total de 2 millones de entradas. Saludos! |