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


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6
31  Programación / Desarrollo Web / Error en phpmyadmin en: 15 Julio 2010, 23:04 pm
Hola a todos, tras actualizar el Ubuntu 9.10 al 10.4 y tener que instalar el phpmyadmin, al iniciar la sección sin problemas pero en la página principal me aparece el siguiente mensaje:

"Las opciones adicionales para trabajar con tablas vinculadas fueron desactivadas"

He estado buscando por google sobre este problema que por lo visto no soy el único y bueno aparece diferentes métodos para solventar el problema y de ninguno me sirvio de mucha ayuda. Quisiera saber cual es el método más eficaz y que pueda ir sin problemas vaya que haya algo que lo haya hecho mal o algo por el estilo pero ya os digo lo he intentado por diferentes métodos y ninguno me va.

UN SALUDO.
32  Programación / PHP / Re: ¿layouts en php? en: 25 Junio 2010, 00:57 am
Bueno lo que me refería que en vez de poner todo el contenido en un archivo html o php en un archivo externo y mostrarlo después con el include.... mi pregunta era si sería recomendable mostrar el contenido de los registros de una base de datos...Que lo único que tendría que hacer es procesar una nueva conexión con la BD y con el mysql_query especificarle un select.

UN SALUDO
33  Programación / PHP / Re: ¿layouts en php? en: 24 Junio 2010, 23:25 pm
Bueno y en vez de utilizar $_GET porque no es muy "seguro" se podría utilizar el método $_POST, no?
Simon

, en vez de utilizar el include es recomendable que lo muestre desde la Base de Datos?
Ehh? WTF!

Perdona shellroot@alex-laptop:~$ no he entendido muy bien el mensaje que has enviado anteriormente.
34  Programación / PHP / Re: ¿layouts en php? en: 24 Junio 2010, 10:45 am
Bueno y en vez de utilizar $_GET porque no es muy "seguro" se podría utilizar el método $_POST, no?

Y a la hora de mostrar el contenido en la página, en vez de utilizar el include es recomendable que lo muestre desde la Base de Datos?

UN SALUDO
35  Programación / PHP / ¿layouts en php? en: 23 Junio 2010, 17:19 pm
Hola a todos. Quería saber de que manera podría estructurar una página en layouts, en la que la cabecera, menú y pie de página se quedarán fijas e ir cambiando el body cada enlace que se de en el menú. El método tradicional es copiar todo el código a cada página pero claro esto lo que se consigue es ralentizar la página. La única manera para utilizar código php es con el incluye no? si fuese así de que manera lo podría interpretarlo? Si existiese algún enlace para hacer mas o menos o que quiero hacerlo, os lo agredecería.

Gracias y un saludo.
36  Programación / PHP / Re: ¿Enlazar un archivo.php en una misma página? 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!
37  Programación / PHP / Re: ¿Enlazar un archivo.php en una misma página? 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?
38  Programación / PHP / Re: ¿Enlazar un archivo.php en una misma página? en: 14 Mayo 2010, 02:45 am
Aún no lo tengo alojado en un alojamiento ni tengo asignado el dominio, de todas formas el servidor lo tengo alojado desde mi casa.
Aquí os dejo el enlace: http://x.x.x.x/proyecto/proyecto_alcoholado/ a ver si lo antes posible lo alojo en otro dominio para no tener mi servidor las 24 horas desde mi casa XD.

Como podéis comprobar el enlace catálogo de productos el contenido aparece arriba, en vez en el centro.

UN SALUDO
39  Programación / PHP / Re: ¿Enlazar un archivo.php en una misma página? en: 13 Mayo 2010, 19:05 pm
Bueno tras probar varias formas para que me lo posicione, no he obtenido ningún éxito.

Ahora lo estoy intentando sin el include, es decir lo que quiero hacer que dentro de la función conectarme directamente a la BBDD, la consulta me lo devuelve sin ningún problema, pero no me aplica el <div>, sigue apareciendo en la parte de la cabecera, como siempre ha estado sucediendo.

Así es como tengo implantado la sintaxis:

Código
  1. <?php
  2. function bloque_pagina_tres(){
  3. $conexion = mysql_connect('localhost','usuario','secreto');
  4. mysql_select_db('tiendaprueba');
  5. $tabla = mysql_query('SELECT * FROM productos');
  6. while ($registro = mysql_fetch_array($tabla))
  7. {
  8. $contenido='<div id="portada">';
  9. echo $registro['nomprod'];
  10. echo $registro['detalles'];
  11. $contenido='</div>';
  12. }
  13. mysql_close($conexion);
  14. return $registro;
  15. }
  16. ?>
  17.  

¿Alguna solución u otra forma de implantar la sintaxis?

Un Saludo
40  Programación / PHP / Re: ¿Enlazar un archivo.php en una misma página? en: 12 Mayo 2010, 00:56 am
Bueno, hay novedades!! Algo me sale pero no del todo, os explico, según el ejemplo de "merohack " me funciona, me muestra lo que contiene "test.php" aunque he tenido que modificar una parte del código de la siguiente forma:

Código
  1.  
  2. <?php
  3. function bloque_pagina_tres(){
  4.  $contenido = '<div id="portada">';
  5.  $contenido .= include 'test.php';
  6.  $contenido .= '</div>';
  7. return $contenido;
  8. }
  9. ?>
  10.  

Aunque a mi antes con las etiquetas "<?php>" no me salia, sin la etiqueta si que me sale, de todas formas para que me saliera he tenido que poner la etiqueta  "<?php>" a cada una de las funciones.

Bueno pues lo dicho me sale el texto que contiene "test.php" a la posición del bloque donde quiero que vaya, así que al cambiar el nombre test.php por catalogo.php lógicamente debería de dar el mismo resultado, pues me sale el contenido pero no a la posición del bloque, vamos como me sucedía antes. En "catalogo.php" tiene otra hoja de estilo aparte, pues bien he tenido que quitar aquellas etiqueta de margin, paddign, width, etc.. excepto los colores y tamaño de letra, simplemente para que no se contradiga dos hojas de estilo con posiciones distinta. También he quitado después de la llave el "bloque_pagina_tres()" aunque lo quite o no me muestra el contenido de "test.php"

Bueno lo curioso que cuando me sale todo el contenido en la parte superior(cosa que no debería), se me añade un número "1" al bloque donde quiero que posicione.  Aunque si quito la concatenación del '</div>' el "1" desaparece....

¿Alguna Solución?

De todas formas seguiré probando.....

UN SALUDO
Páginas: 1 2 3 [4] 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines