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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Enlazar un archivo.php en una misma página?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Enlazar un archivo.php en una misma página?  (Leído 19,492 veces)
Clavo Oxidado

Desconectado Desconectado

Mensajes: 107


HACK YOUR MIND


Ver Perfil
Re: ¿Enlazar un archivo.php en una misma página?
« Respuesta #20 en: 14 Mayo 2010, 09:49 am »

En el código fuente me he fijado que la consulta lo devuelve fuera del documento.

¿A que se debe?


En línea

"Dame 10 Hackers y en media hora dominaré el mundo."
Clavo Oxidado

Desconectado Desconectado

Mensajes: 107


HACK YOUR MIND


Ver Perfil
Re: ¿Enlazar un archivo.php en una misma página?
« Respuesta #21 en: 19 Mayo 2010, 13:53 pm »

Bueno para no tener el servidor las 24 horas os explico y os detallo como llama las funciones y la forma que se visualiza dos archivos distintos de php un archivo php muy simple con una variable en la que se almacena un valor y otra en la que realiza una conexión a la BD y la consulta lo devuelve fuera del documento de la página:

index.php

Código
  1.  
  2. <?php
  3. require_once("funciones/funciones.php");
  4. escribe_pagina();/*Escribira todo el codigo XHTML*/
  5. ?>
  6.  
  7.  

Tener en cuenta:

require_once("funciones/funciones.php");

funciones.php

Código
  1.  
  2. <?php
  3.        include_once("funciones_pagina_bloque.php");
  4. include_once("funciones_pagina.php");
  5. ?>
  6.  
  7.  

Tener en cuenta:

include_once("funciones_pagina_bloque.php");
include_once("funciones_pagina.php");

El archivo include_once("funciones_pagina_bloque.php"); está estructurado por funciones y cada una de las funciones tendrá el contenido de la página.

El archivo include_once("funciones_pagina.php"); es cómo llaman las funciones y como está creado.

funciones_pagina_bloque

Código
  1.  
  2. <?php
  3. function bloque_botonera(){
  4. $contenido='
  5. <div id="botonera">
  6.    <h5></h5>
  7.       <ul class=botonera_item>
  8. <li id="catalogos_de_productos">
  9.      <a class="botonera_item selected"href="index.php?tipo=pagina_tres">Catalogos de Productos</a>
  10. </li>
  11.      </ul>
  12. </div>';
  13. return $contenido;
  14. }
  15. ?>
  16.  
  17. <?php
  18. function bloque_pagina_tres(){
  19.  $contenido = '<div id="portada">';
  20.  $contenido .= include 'test_1.php';
  21.  $contenido .= '</div>';
  22. return $contenido;
  23. }
  24. ?>
  25.  
  26.  

Tener en cuenta:

<a class="botonera_item selected"href="index.php?tipo=pagina_tres">
"tipo" Es el nombre de una variable que se le ha asignado a un swicth en otro archivo php externo con el nombre "funciones_pagina.php", y "pagina_tres" es el nombre de un case de la variable "tipo" como se muestra en el siguiente código:

funciones_pagina

Código
  1.  
  2. <?php
  3.  
  4. function cabecera($tipo) {
  5. $titulo = 'Proyecto LAMP';
  6.  
  7. switch ($tipo)
  8. {
  9. //case '' : $tipo ='portada';  //así forzamos que tenga un tipo
  10.  
  11. case 'portada'  : $titulo.=' - Portada';
  12.  break;
  13. case 'pagina_tres'  : $titulo.=' - Pagina Tres';
  14.  break;
  15. }
  16.  
  17. $cabecera = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  18.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  19. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">'."\n".
  20. '<head>
  21. <title>'.$titulo.'</title>
  22. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  23. <link rel="stylesheet" type="text/css" href="medios/estilos/estilo.css" />
  24. </head>'."\n";
  25. return $cabecera;
  26. }
  27.  
  28. function cuerpo($tipo) {  //al hacer la asignación en la definición
  29. // de la función , le damos un valor por defecto
  30. //en caso de que no lo tuviera
  31. $body = '<body>';
  32. switch ($tipo)
  33. {
  34. case 'portada'  : $cont_cuerpo.=cuerpo_portada();
  35.  break;
  36. case 'pagina_tres'  : $cont_cuerpo.=cuerpo_pagina_tres();
  37.  break;
  38. }
  39.  
  40. return $body.$cont_cuerpo.'</body>';
  41. }
  42.  
  43. function fin() {
  44. return '</html>';
  45. }
  46.  
  47.  
  48. function crea_pagina_especifica($tipo) {
  49. /* La primera vez que accedemos a la pagina $tipo = '' por lo que
  50. * direccionamos a la portada o pagina principal.
  51. */
  52.  
  53. $contenido = cabecera($tipo).cuerpo($tipo).fin();
  54. return $contenido;
  55. }
  56.  
  57. function crea_pagina() {
  58.  
  59. $tipo = averigua_tipo_pagina();
  60. return crea_pagina_especifica($tipo);
  61. }
  62.  
  63. function averigua_tipo_pagina()
  64. {
  65. switch ($_REQUEST['tipo'])
  66. {
  67.  
  68. default:
  69. {
  70. (isset($_GET['tipo']))?($tipo = $_GET['tipo']):($tipo='portada');
  71. }
  72. }
  73. return $tipo;
  74. }
  75.  
  76. function cuerpo_portada(){
  77. $contenido=bloque_banner().
  78.   bloque_botonera().  
  79.   bloque_portada().
  80.   bloque_pie();
  81. return $contenido;
  82. }
  83.  
  84. function escribe_pagina(){
  85. echo crea_pagina();
  86. }
  87.  
  88. function cuerpo_pagina_tres(){
  89. $contenido=bloque_banner().
  90.   bloque_botonera().
  91.   bloque_pagina_tres().
  92.   bloque_pie();
  93. return $contenido;
  94. }
  95. ?>
  96.  
  97.  

function bloque_pagina_tres(){ } Es donde se crea una nueva función y donde se especifica un include de otro archivo externo php.

Voy a mostrar dos ejemplos de como se visualiza un archivo php donde tiene almacenado un valor en una variable y otro archivo que realiza una conexión a una BD en la que devuelve una consulta.

Así es como se visualiza la página al iniciarla:


Hay dos enlaces en la que están habilitados, "Bienvenidos" y "Catálogo de Productos"
"Bienvenidos" Pertenece a "portada"
"Catálogo de Productos" Pertenece a "pagina_tres"

El include que llama a un archivo "test_1.php" de function bloque_pagina_tres

Contiene lo siguiente:

Código
  1.  
  2. <?php
  3. $var = "Hola";
  4.  
  5. return $var;
  6.  
  7. ?>
  8.  
  9.  

Al ejecutar el enlace de "Catálogo de Productos" muestra la siguiente imágen:


La palabra "Hola" lo posiciona al bloque "contenido" aplicándole los estilos.

En la siguiente imágen vemos el código fuente:


Como ya hemos visto en las anteriores imágenes utilizando el include para qu devuelva un valor, ahora os voy a demostrar como devuelve un determinado valor al "contenido" realizando una consulta a la BD.

Antes el include se llamaba "test_1.php" ahora cambie el nombre por "test_2.php" que contiene el siguiente código:

Código
  1.  
  2. <?php
  3. $conexion = mysql_connect('localhost','root','password');
  4. mysql_select_db('tiendavirtual');
  5. $tabla = mysql_query('SELECT * FROM productos');
  6. while ($registro = mysql_fetch_array($tabla))
  7. {
  8.  
  9. echo $registro['nomprod'];
  10. echo $registro['detalles'];
  11.  
  12. }
  13.  
  14. mysql_close($conexion);
  15.  
  16. ?>
  17.  
  18.  

En la base de datos contiene la siguiente secuencia:

tiendavirtual.sql

Código
  1.  
  2. -- phpMyAdmin SQL Dump
  3. -- version 3.2.2.1deb1
  4. -- http://www.phpmyadmin.net
  5. --
  6. -- Servidor: localhost
  7. -- Tiempo de generación: 19-05-2010 a las 13:34:49
  8. -- Versión del servidor: 5.1.37
  9. -- Versión de PHP: 5.2.10-2ubuntu6.4
  10.  
  11. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  12.  
  13.  
  14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17. /*!40101 SET NAMES utf8 */;
  18.  
  19. --
  20. -- Base de datos: `tiendavirtual`
  21. --
  22.  
  23. -- --------------------------------------------------------
  24.  
  25. --
  26. -- Estructura de tabla para la tabla `productos`
  27. --
  28.  
  29. CREATE TABLE IF NOT EXISTS `productos` (
  30.  `fotop` text NOT NULL,
  31.  `codprod` INT(11) NOT NULL AUTO_INCREMENT,
  32.  `nomprod` text NOT NULL,
  33.  `detalles` text NOT NULL,
  34.  PRIMARY KEY (`codprod`)
  35. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
  36.  
  37. --
  38. -- Volcar la base de datos para la tabla `productos`
  39. --
  40.  
  41. INSERT INTO `productos` (`fotop`, `codprod`, `nomprod`, `detalles`) VALUES
  42. ('concha_mini.jpg', 1, 'Concha', 'Referencia: C0016\r\nCaducidad: 120 días\r\nEAN: 84103680000161\r\nGrs./Caja: 1680\r\nUds./Pack: 1\r\nPacks/Caja: 28\r\nCajas Palet: 180\r\nCaja(LxAnxA):396x238x107mm');
  43.  
  44.  

Al ejecutar el enlace "Catálogo de Productos" muestra la siguiente imágen:


Como veis el lo que devuelve la BD no lo posiciona en el bloque "contenido"

Vemos el código fuente en la siguiente imágen:


Como veis todo lo que devuelve en la consulta de la BD lo manda fuera del documento y muestra un número "1" al bloque de "contenido" nosé que represente ese número, nosé si devuelve un error o algo por el estilo.

Ese es el problema que tengo cada día continuamente.

¿Cómo se podría solventar este problema? ¿Existe alguna Solución?

¡GRACIAS Y UN SALUDO!


« Última modificación: 19 Mayo 2010, 16:23 pm por Polanski » En línea

"Dame 10 Hackers y en media hora dominaré el mundo."
eldonpapo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: ¿Enlazar un archivo.php en una misma página?
« Respuesta #22 en: 31 Mayo 2010, 06:57 am »

Bueno me ha pasado lo mismo q a ti en cuanto al numero 1 q se muestra pero lo he solucionado con mucha suerte al parecer el numero uno es la representacion de que se ha ejecutado correctamente el codigo php
mi codigo

<div id="undiv">
<?php
$joder= include APPLICATION_PATH.'/models/men.php';
echo $joder[0];                 
?>
</div>
al parecer cuando presento la funcion de esa manera se borra el numero 1 q salia y todo bien espero q te funcione y si te resulta otro error me lo comunicas

saludos
En línea

marcofbb

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: ¿Enlazar un archivo.php en una misma página?
« Respuesta #23 en: 1 Junio 2010, 03:23 am »

Podes simplificar todo :S

lee esto:
http://www.entra-ya.com.ar/2009/10/como-usar-el-swicht-en-php-para-solo.html

antes de los archivos .txt remplasalos por .php haci nadie puede leerlos :D
En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Utilizar la misma página o cambiar?
Desarrollo Web
avmiitxe 3 3,160 Último mensaje 9 Febrero 2012, 02:04 am
por AckeR
archivo autoejecutable en la página web
Windows
mhroth 0 1,587 Último mensaje 11 Julio 2014, 11:22 am
por mhroth
implementar dos javas distintos en la misma pagina
Desarrollo Web
xavidenia 5 3,915 Último mensaje 22 Mayo 2016, 15:41 pm
por xavidenia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines