Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 13,065 Miembros
- 9,531 Temas
- 3,449 Seguidores
[Ayuda] Cargar HTML dentro de php usando include
Solucionado quedo así:
<body>
<div id="menu">
<ul>
<p><a href="index.php?p=ranking">link1</a>
<p> </p>
<a href="index.php?p=registro">link2</a></p>
</ul>
</div>
<div id="contenido">
<?php
switch ($_GET["p"]) {
case "ranking":
include('ranking.html');
break;
case "registro":
include('registro.html');
break;
default:
include('noticias.html');
}
?>
</div>
</body>
Hola gente estoy intentando cargar un documento HTML o varios desde mi index.php para lograr tener un especie de TEMPLATE y cargar contenidos sin tener que editar todo cada vez que quiero realizar un cambio.
Esto es lo que logre:
<body>
<div id="menu">
<ul>
<p><a href="index.php?p=ranking">link1</a>
<p> </p>
<a href="index.php?p=registro">link2</a></p>
</ul>
</div>
<div id="contenido">
<?php
switch ($_GET["p"]) {
case "ranking":
include('ranking.html');
break;
case "registro":
include('registro.html');
break;
}
?>
</div>
</body>
Ahora el problema es que cuando cargo el index no hay contenido "DEFAULT" y me gustaría que cuando uno entra a XXXXXX.COM/INDEX.PHP se muestre el archivo llamado NOTICIAS.HTML y cuando se haga click en registro o ranking desaparezca.
aprovecho para preguntar si este código es vulnerable? según tenia entendido si colocabas $_GET en el include se volvía vulnerable pero quisiera que me lo confirme alguien que sepa bien.
ESPERO SUS RESPUESTAS Y GRACIAS DE ANTEMANO.
- 0Calificación
- 0Seguidores
- 285Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
6 respuestas
te muesto como ago yo mira:
index.php:
<?php
include 'config.php';
?>
<html>
<link href="temas/default/estilos.css" rel="stylesheet" type="text/css">
<head>
<title><?php echo $web.' - '.$slogan; ?></title>
</head>
<body>
<head>
</head>
<div class="header">
<?php require_once 'temas/default/templates/secciones/header.php'; ?>
</div>
<div class="menu">
<?php require_once 'temas/default/templates/secciones/menu.php'; ?>
</div>
<div class="main">
<div class="wrapper">
<?php require_once 'temas/default/t.pages.php'; ?>
</div>
<div class="footer">
<?php require_once 'temas/default/templates/secciones/footer.php'; ?>
</div>
</div>
</body>
</html>
el archivo pages.php
<?php
if (!isset($_GET['pages'])) {
include("templates/t.home.php"); //esto indica cual sera la web pricipal..
} else {
include("templates/".$_GET['pages'].".php");
}
?>
aora para ir a la seccio que quieras asi:
tuweb.com/index.php?pages=nombre_del_arcivo(sin el .php / .html etc)
si bien como dice el usuario de arriba es correcto, te recomendaria que indages por sistemas de templates como smarty, son muy utilies y te puede orientar mas a la hora de organizarte y luego si usar un metodo personalizado, yo trabajo las vistas con un objeto que renderiza los templates
<?php
switch ($_GET["p"]) {
case "ranking":
include('ranking.html');
break;
case "registro":
include('registro.html');
break;
default:
include('noticias.html');
}
?>
GRACIAS CAPO yo lo tenia así pero como un bobo le agregue break; al default por eso me tiraba error jajajaj bueno esto ya esta solucionado pero todavía quiero saber si es vulnerable (:
Pregunto, vulnerable en que sentido?
Igual por las dudas, te respondo lo que se podría hacer:
- Antes que nada, valida que $_GET['p'] este definidido <?php if(isset($_GET['p'])) : ?>
- Si lo esta, mete el switch
- Si esta vacio, ahi haces el include de noticias (claro caso cuando entras por la home, 'p' no definido)
- Si te meten otro valor en 'p', ejemplo p=hola, actualmente va a cargar noticias.html, lo cual no es correcto; o en todo caso es erroneo. Debería tirar un 404 o una pagina de error. Y ese defería ser tu default en el switch.
<?php
if(isset($_GET['p'])){
switch ($_GET['p']) {
case "ranking":
include('ranking.html');
break;
case "registro":
include('registro.html');
break;
default:
include('error.html');
}
}else{
include('noticias.html');
}
?>
Saludos
2 cosas: La primera es que deberias usar un isset($_GET.....) para que cargue solo cuando hay datos, lo segundo es porque cambiar el contenido del medio? Porque no lo vez del lado contrario, que cada contenido central tenga incluido un header y un footer de ese modo reutilizaras codigo y obtendras el mismo resultado que buscas.