Hola, como habran notado no se mucho de php aún, y me gustaría hacer en mi web lo de:
Ej.: '.../secciones.php?id=2' , '.../secciones?name=foro', esas cosas que ustedes saben que se hacen para simplificar el trabajo.
Gracias.
NeOnsKuLL
| |||
![]() Hola, como habran notado no se mucho de php aún, y me gustaría hacer en mi web lo de: Ej.: '.../secciones.php?id=2' , '.../secciones?name=foro', esas cosas que ustedes saben que se hacen para simplificar el trabajo. Gracias. NeOnsKuLL |
| ||||
También te puede interesar el último tutorial que escribí al respecto, sobre la creación de Webs modulares, que está en ZonaPHP : http://www.zonaphp.com/index.php?mod...ion=leer&id=34 Saludos. |
| ||||
ahora mismo comienzo a leerlo
__________________ Plugin de AdSense para Wordpress: http://adsensei.org |
| |||
Wenass! Aka te traigo una forma un poko mas simple de hacer pero muy efectiva: 1. Hace un diseño con todo lo que quiere que tengas MENOS el contenido. 2. Pon este codigo en la parte de tu diseño donde kieres q aparezca el contenido: <?php include("$ID") ?> 3. Guarda tu pagina como main.php (acuerdate que puedes tener otro nombre en ves de main.php, como index.php, o home.php) el nombre de la pagina no importa lo unico que es importante aca es el codigo y el termino .php de la pagina. 4. Ahora has otra pagina y nombrala noticias.html (acuerdate que es un ejemplo y puedes cambiar el nombre de tus paginas a tus maneras) despues inserta el contenido de esa pagina nomas, EL CONTENIDO NOMAS..y guardalo como tu quieras. 5. La ultima parte es ahora sube a tu servidor de web tus paginas main.php y noticias.html y hasles una prueba aver si funcionan al url de abajo: http://www.tusite.com/main.php?ID=noticias.html Un saludo! ;) |
| ||||
este script es el + seguro y simple q logre hacer. solo debes llamar la funcion mostrar_zona() en donde kieres q se vea el contenido de la web modular. las primeras variables son la carpeta donde estan las webs q vas a incluir, la web por defecto y una de error en caso de no existir si alguien escribe cualkier valor en la variable $zona en la url. Código PHP: |
| ||||
Cita: Elanime, esta manera de hacer un website modular, como explico en el artículo que mencioné antes, es una de las maneras más inseguras de hacerlo y que abren muchas posibilidades para dejar el servidor web vulnerable a un ataque. TE recomendaria que no la utilices.Mensaje Original por elanime Wenass! Aka te traigo una forma un poko mas simple de hacer pero muy efectiva: 1. Hace un diseño con todo lo que quiere que tengas MENOS el contenido. 2. Pon este codigo en la parte de tu diseño donde kieres q aparezca el contenido: <?php include("$ID") ?> 3. Guarda tu pagina como main.php (acuerdate que puedes tener otro nombre en ves de main.php, como index.php, o home.php) el nombre de la pagina no importa lo unico que es importante aca es el codigo y el termino .php de la pagina. 4. Ahora has otra pagina y nombrala noticias.html (acuerdate que es un ejemplo y puedes cambiar el nombre de tus paginas a tus maneras) despues inserta el contenido de esa pagina nomas, EL CONTENIDO NOMAS..y guardalo como tu quieras. 5. La ultima parte es ahora sube a tu servidor de web tus paginas main.php y noticias.html y hasles una prueba aver si funcionan al url de abajo: http://www.tusite.com/main.php?ID=noticias.html Un saludo! ;) Saludos. |
| ||||
Cita: Arraukano, si vos utilizás este acercamiento para resolver el tema de webs modulares, asegurate que nunca nadie sepa como es tu código, porque ahora que lo se, puedo enviarte por URL una variable $zona_carpetas con el url de cualquier archivo de tu web-server, y finalizar el string con un caracter Nulo y hacerle creer al PHP que el string finaliza alli. Como el caso anterior de elanime, es un método inseguro incluir directamente archivos pasados por URL. Mensaje Original por ArrauKano este script es el + seguro y simple q logre hacer. solo debes llamar la funcion mostrar_zona() en donde kieres q se vea el contenido de la web modular. las primeras variables son la carpeta donde estan las webs q vas a incluir, la web por defecto y una de error en caso de no existir si alguien escribe cualkier valor en la variable $zona en la url. Código PHP: |
| ||||
eso keria preguntarlo + adelante, pero weno, como se dio el tema, como puedo hacer para impedir q esa variable sea enviada con get? pk es una variable del mismo script, tendría sera con alguna funcion parecidaa global pero al reves cierto? en too caso, eso es un ejemplo no+ puedo cambiar el nombre de esa variable ahora q la conocen. |
| ||||
pero si le pasas esa variable al script por la url, durante la ejecucion toma de nuevo el valor q yo le di, por lo tanto no le veo el riesgo, siempre va a kedar la inclusion cerrada a la carpeta de dicha variable, + seguro todavía es poniendole ./ al nombre de la carpeta, asi boligo a q se tome desde el path de ejecucin del script mismo. |
| ||||
Para ponértelo mucho más sencillo... si yo llamara a tu script con http://tusitio.com/index.php?zona=....../etc/passwd\0 Podria ver el /etc/passwd de tu server. |
| ||||
ya probe y no ocurre eso, cuando has visto q una inclusion tipo Código PHP: = lei tu artículo y cambie las variables por constantes y esto me resulto: Código PHP: Última edición por ArrauKano; 23/12/2003 a las 20:37 |
| ||||
y para hacerlo asi.. index.php?seccion=algo&algo=mas&mas=mucho&mucho=de masiado ... con varias &&& ... ya que solo puedo hacerlo que uno.. la idea es que el archivo "algo" ( donde hago el primer include ) pueda crear todas las otras paginas dinamicas, sin necesidad de hacer includes.. |
| ||||
ArrauKano... seguís en el mismo error. Tu problema de seguridad está en esta Línea : include(ZONA_CARPETA."/$zona.php"); y en dejar expuesta, en un include, una variable que es modificable por el usuario. Ahora no recuerdo exactamente el código, pero puedo obtener un string terminado con el caracter nulo y hacer algo como: $zona = "../un_archivo_seguro.txt\0"; include("tu_carpeta/$zona.php"); Y eso va a intentar incluir: tu_carpeta/../un_archivo_seguro.txt Te invito a que hagas la prueba y te des cuenta que ese acercamiento al problema es completamente inseguro. Saludos. |
| ||||
otra vez o ves el código completo, esa linea agrega automaticamente la extension .php a la variable $zona, por lo tanto solo se podían incluir archivos con extension .php. imgina hacer esto pag.php?zona=../../../../etc/passwd incluiría por supuesto un archivo /etc/passwd.php q por supuesto no existe. En cualquier caso, sigo abiertoa la crítica, pk = necesito desarrollar bien este código. como dije, necesito reemplazar $zona por $_GET['zona'] en todo el script, pero al ponerlo asi dentro de algunas funciones me tira error, creo q hasta ahora es la única mayor pifia. |
| ||||
excelentísimo artículo webstudio, muchas gracias no se lo pierdan, lo deben leer!
__________________ Plugin de AdSense para Wordpress: http://adsensei.org |
| ||||
Cita: ARrauKano, decime que si leiste mi mensaje anterior asi no seguimos perdiendo tiempo. Te dije que NO IMPORTA que le pongas el ".php" al final, porque igualmente puedo enviarte el caracter nulo por la linea GET y hacerle creer al php que la linea termina donde YO le digo que termine.Mensaje Original por ArrauKano otra vez o ves el código completo, esa linea agrega automaticamente la extension .php a la variable $zona, por lo tanto solo se podían incluir archivos con extension .php. imgina hacer esto pag.php?zona=../../../../etc/passwd incluiría por supuesto un archivo /etc/passwd.php q por supuesto no existe. En cualquier caso, sigo abiertoa la crítica, pk = necesito desarrollar bien este código. como dije, necesito reemplazar $zona por $_GET['zona'] en todo el script, pero al ponerlo asi dentro de algunas funciones me tira error, creo q hasta ahora es la única mayor pifia. pag.php?zona=../../../../etc/passwd%00 Si tenés MAgic_quotes_GPC = Off, acabo de hackearte el sitio. Ahora, por favor, cuando te escribo algo, por favor tomate el tiempo de leerlo. Saludosl |
| ||||
Cita: Mensaje Original por dooky y para hacerlo asi.. index.php?seccion=algo&algo=mas&mas=mucho&mucho=de masiado ... con varias &&& ... ya que solo puedo hacerlo que uno.. la idea es que el archivo "algo" ( donde hago el primer include ) pueda crear todas las otras paginas dinamicas, sin necesidad de hacer includes.. Alguien puede responder esto? ![]() |
| |||
dooky Si usas isset() (o empty()) para averiguar si una de X variables que montas en el URL con tus & existe .. podrás hacer una série de IF anidados .. tantos como varibles que corresponden a secciones y demás parámetros de páginas o acciones a realizar. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
bueno, me rindo, deje ese codigo, ahora toy usando el del articulo, y hasta ahora he logrado hacerle bastantes retoques q lo hacen + interesante, por ejemplo, hice q el layer por defecto kedara definido segun una cookie, asi cada vez q yo mate la cookie y la vueva a establecer tengo una web de igual contenido con una "piel" distinta, tambien agregue ese comentario al final de las notas q era para agregar el nombre del modulo al titulo de la web. tambie con un foreach() logre imprimir un link para cada seccion en un menu sencillo. ahora tengo otra duda. ¿como puedo hacer para q el array conf[x][y] lo pueda dividir en + "categorias" para poder imprimir bucles de secciones de distinto tipo? la idea seria hacer algo como esto: seccion1 foro guestbook noticias seccion2 chat creditos galeria hasta ahora solo puedo hacer esto: seciones chat creditos foro galeria guestbook noticias Última edición por ArrauKano; 29/12/2003 a las 12:33 |