elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  como puedo crear una pagina para cada producto??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como puedo crear una pagina para cada producto??  (Leído 3,322 veces)
Benjamin Clay

Desconectado Desconectado

Mensajes: 36



Ver Perfil
como puedo crear una pagina para cada producto??
« 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!!


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como puedo crear una pagina para cada producto??
« Respuesta #1 en: 11 Enero 2020, 00:38 am »

lo que buscas se llaman "url amigables" o url semanticas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Benjamin Clay

Desconectado Desconectado

Mensajes: 36



Ver Perfil
Re: como puedo crear una pagina para cada producto??
« Respuesta #2 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
En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: como puedo crear una pagina para cada producto??
« Respuesta #3 en: 11 Enero 2020, 02:46 am »

Coloca el código que tienes hasta ahora para poder tener una mejor referencia y poder ayudarte
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: como puedo crear una pagina para cada producto??
« Respuesta #4 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
www.miweb.com/producto.php?nombre=maquillaje
www.miweb.com/producto.php?nombre=cepillos

Y transformalas en:

Código:
www.miweb.com/perfume
www.miweb.com/maquillaje
www.miweb.com/cepillos

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.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: como puedo crear una pagina para cada producto??
« Respuesta #5 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
  1. <?php
  2. $URI = strtok($_SERVER["REQUEST_URI"],'?');
  3. $paginas = ["" => "html_index.php","blog" => "blog.php","news" => "news.php"]; //Lista de paginas reservadas
  4. if(isset($paginas[$URI[0]])) {
  5. include($paginas[$URI[0]]);
  6. }
  7. else {
  8. include("plantilla_generica.php");
  9. }
  10. ?>
  11.  

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)){
//codigo aqui
}
else{
//error
}

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!
« Última modificación: 11 Enero 2020, 03:18 am por AlbertoBSD » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: como puedo crear una pagina para cada producto??
« Respuesta #6 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
  1. $web = [];
  2. $web[0] = '<!DOCTYPE html>blablabla<body><section><article class="perfumes"><header><hgroup><h1>Perfumes</h1><h3>Todos los perfumes de los que disponemos se muestran a continuación
  3. </h3></hgroup></header>';
  4.  
  5. $web[1] = /*Resultado Consulta BD */ '<ul><li>Dior</li><li>Cacharell</li><li>Paco Rabanne</li></ul>';
  6.  
  7. $web[2] = '</article></section><footer><small>2020-2021 &copy; PerfumesDPM</small></footer></body></html>';
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.
« Última modificación: 11 Enero 2020, 16:23 pm por @?0!,5^34 » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: como puedo crear una pagina para cada producto??
« Respuesta #7 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como crear un producto « 1 2 »
Foro Libre
dimitrix 16 6,627 Último mensaje 16 Septiembre 2010, 03:29 am
por aron_marcos
como puedo crear una pagina como chatroulette
Foro Libre
Weeken 3 4,700 Último mensaje 21 Noviembre 2012, 23:12 pm
por anonimo12121
¿Como puedo hacer un script para cambiar mi ip cada cierto tiempo?
Redes
Woody909 5 4,469 Último mensaje 20 Julio 2017, 15:30 pm
por ThinkByYourself
¿Como puedo reclamar un producto de ebay defectuoso?
Dudas Generales
Hason 6 3,936 Último mensaje 22 Mayo 2020, 21:43 pm
por Hason
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines