Foros del Web » Programando para Internet » PHP »

Intentando con PHP

Estas en el tema de Intentando con PHP en el foro de PHP en Foros del Web. Hola que tal? Estoy iniciandome en PHP y a su vez tratando de armar mis primeros códigos. En este caso, para el requerimiento de un ...
  #1 (permalink)  
Antiguo 11/02/2012, 09:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 104
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Intentando con PHP

Hola que tal?

Estoy iniciandome en PHP y a su vez tratando de armar mis primeros códigos. En este caso, para el requerimiento de un sitio, quería crear un template, en el que cuando se haga click en las secciones del menú, cargue un include nuevo en el div "contenedor-includes".

A su vez quería hacer una variable para el título y <h2>. La variable la armé al comienzo de sec1.php.

Por último intenté crear una clase CSS para que cada sección del menú se seleccione en caso de haber ingresado.

Estoy tratando hace rato hacer funcionar todo esto pero de todas las maneras que probé me tira un error. Estoy haciendo algo mal?

Agradezgo mucho la ayuda pero sobre todo sus opiniones. Realmente quiero aprender a hacerlo de la manera más correcta!

Los códigos son los siguientes:

Template principal:
Código PHP:
<html>
<head>

<title><?php echo $title;?></title>

</head>
<body>
<div id="menu">
<ul>

<li><a href="index.php?id=sec1" <?php if($id=$sec1){ echo "class='selected'"; }?>>Sección 1</a></li>
<li><a href="index.php?id=sec2" <?php if($id=$sec2){ echo "class='selected'"; }?>>Sección 2</a></li>

</ul>
</div>

<div class="contenedor-includes">
<?php include ("if($id=$_GET['id']){ echo $id; }else{ echo "sec1"; }.php");?>
</div>

</body>
</html>

y sec1.php:

Código PHP:

<?php $title="Nombre de Página";?>

<h2><?php echo $title;?></h2>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

Saludos!
  #2 (permalink)  
Antiguo 11/02/2012, 12:03
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Intentando con PHP

y cuál es el error que te marca, si se puede saber?

leyendo tu código, sólo me salta la duda de si estará en:
"if($id=$_GET['id']){ echo $id; }else{ echo "sec1"; }.php"

ya que nunca he hecho un include con un echo, pero yo creo que no funcionaría así, en todo caso:
Código PHP:
Ver original
  1. <div class="contenedor-includes">
  2. <?php
  3. if($id=$_GET['id'])
  4.    include("$id.php");
  5. else
  6.    include("sec1.php");
  7. ?>
  #3 (permalink)  
Antiguo 14/02/2012, 12:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 104
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Intentando con PHP

Hola ocp001a, muchas gracias por tu respuesta!

Tu código me sirvió para arreglar algunas cosas pero siguen apareciendo errores. El código nuevo con algunas soluciones es el siguiente:

/test.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title><?php echo $titlesite; ?></title>
  4.  
  5. <style type="text/css">
  6.  
  7. .selected{
  8. font-weight:bold;
  9. }
  10.  
  11. </style>
  12.  
  13.  
  14. </head>
  15.  
  16. <body>
  17. <ul id="menu">
  18. <li><a href="test.php?id=1" <?php if($_GET['id']==1){ echo "class='selected'";}else{ echo ""; }?>>Sección 01</a></li>
  19. <li><a href="test.php?id=2" <?php if($_GET['id']==2){ echo "class='selected'";}else{ echo ""; }?>>Sección 02</a></li>
  20. </ul>
  21.  
  22.  
  23.  
  24. <div id="content">
  25. <?php if($id=$_GET['id']){ include("content/$id.php");} else{echo "falta parametro"; } ?>
  26. </div>
  27.  
  28.  
  29. </body>
  30. </html>


/content/1.php

Código PHP:
Ver original
  1. <?php $titlesite = "Hola mundo";?>
  2.  
  3. <h2><?php echo $titlesite; ?></h2>
  4.  
  5. <p>contenido de 1</p>

Y los errores que me aparecen ahora son los siguientes:

a) El <title></title> no puede tomar la variable $titlesite. ¿Es por que la declaro más abajo? Cómo puedo solucionar esto?

Lo ideal es que cada include contenga la variable de title, por si algún día se modifica el título y cambie automáticamente en todos lados, y lo más importante para que aparezca en <title></title>.

b) Sacando el tema del <title> que no funciona de ninguna manera. Si ingreso http://localhost/test.php, me aparecen errores en las líneas 18, 19 y 28.

Por otro lado si agrego en la barra de direcciones una variable que no existe (como puede ser http://localhost/test.php?id=3) aparecen 2 errores más en la línea 28.


Agradezco mucho sus sugerencias y ayuda!
Saludos!
  #4 (permalink)  
Antiguo 14/02/2012, 12:47
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Intentando con PHP

a)

Sí, el echo $titlesite deberías hacerlo después de que esta obtenga el valor. Si lo haces antes, es una variable vacia

b)

Probablamente, los errores son por el "indice" no existente en get.

Prueba poniendo algo así
Código PHP:
if(isset($_GET['id']) && $_GET['id']==1){ echo "class='selected'";}else{ echo ""; }?> 
De todas formas, si nos copias el error, das más información ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 14/02/2012, 13:43
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: Intentando con PHP

Que errores te aparecen?
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #6 (permalink)  
Antiguo 15/02/2012, 12:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 104
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Intentando con PHP

Hola! Gracias a las sugerencias pude resolver algunas cuestiones. El código me fue quedando así:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.  
  4. <?php
  5. if(isset($_GET['id']) && $_GET['id']==1){$titlesite="Titulo de 1";}else{$titlesite="Página no encontrada";}
  6. if(isset($_GET['id']) && $_GET['id']==2){$titlesite="Titulo de 2";}else{$titlesite="Página no encontrada";}
  7. if(isset($_GET['id']) && $_GET['id']==3){$titlesite="Titulo de 3";}else{$titlesite="Página no encontrada";}
  8. ?>
  9.  
  10. <title><?php echo $titlesite. " - "; ?>Sitio</title>
  11.  
  12.  
  13. <style type="text/css">
  14.  
  15. .selected{
  16. font-weight:bold;
  17. }
  18.  
  19. </style>
  20.  
  21.  
  22. </head>
  23.  
  24. <body>
  25. <ul id="menu">
  26. <li><a href="test.php?id=1"<?php if(isset($_GET['id']) && $_GET['id']==1){echo " class='selected'";}else{ echo "";}?>>Sección 01</a></li>
  27. <li><a href="test.php?id=2"<?php if(isset($_GET['id']) && $_GET['id']==2){echo " class='selected'";}else{ echo "";}?>>Sección 02</a></li>
  28. <li><a href="test.php?id=2"<?php if(isset($_GET['id']) && $_GET['id']==3){echo " class='selected'";}else{ echo "";}?>>Sección 02</a></li>
  29. </ul>
  30.  
  31.  
  32.  
  33. <div id="content">
  34. <?php if(isset($_GET['id']) && $id=$_GET['id']){ include("content/$id.php");} else{echo"Error 404"; } ?>
  35. </div>

Básicamente los errores son los siguientes:

a) El <title> sólo toma el valor de la variable para id=3. En los casos de id=1 y 2, toma Página no encontrada.

b) En el include, en caso de poner un id que no exista, como por ejemplo id=4 aparece:

( ! ) Warning: include(content/4.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\test\test-new.php on line 33


( ! ) Warning: include() [function.include]: Failed opening 'content/4.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\test\test-new.php on line 33


Me gustaría que en ese caso aparezca también un mensaje de error tipo 404.


Agradezco mucho sus sugerencias! Creo que en algunos lados mi php fue bastante cavernícola!
Gracias!

Etiquetas: html, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:32.