FAQ
Vamos a ver si consigo explicarme:

Estoy haciendo una página web en php, ésta está divida a su vez en varios
php incluídos con la función include_once (), cada uno de los cuáles añaden
la cabecera, el menú de navegación, el pie, etc.

Uno de estos archivos contiene el cuerpo central, pero yo deseo que el
contenido que se muestre en el cuerpo central cambie en función de la
elección que haga el usuario en el menú de navegación.

Para ello, en el archivo del cuerpo central he añadido una función If {}
(estoy en pruebas, ya lo haré con switch{}) que evalúa la elección del
usuario, y si éste escoge una opción muestra un mensaje y si escoge otra uno
distinto. Para la función he usado la variable $centro.


if ($centro=="instalaciones"){
echo 'aquí hablaremos de nuestras instalaciones';
} else if ($centro=="historia") {
echo 'aquí hablaremos de la historia de nuestro centro';
} else {
echo $centro;
}

Mientras que en el archivo que "construye" el menú, coloco como enlace la
opción escogida de esta manera:

"http://127.0.0.1/centro.php?centro=historia"

cuando hago clic sobre las entradas del menú, el navegador carga la url tal
y como aparece entre comillas, pero la página no se carga con el mensaje
'aquí hablaremos de la historia de nuestro centro', y si escojo otra opción
tampoco me muestra el valor de la variable.

¿Qué estoy haciendo mal?

--
===
Francisco Martagón Gordillo

Cada día te brinda una nueva oportunidad.

Search Discussions

  • Jacobo Pedrosa at Sep 7, 2007 at 1:17 pm
    Como recoges el valor de las variables?

    Si no lo haces de ninguna forma utiliza losiguiente:

    $Opcion = $_GET['centro'];

    Donde $Opcion es la variable que contendra el valor de historia,
    instalaciones....

    Para mas info mirate la documentación de php.net o como hice yo
    desarrolloweb.com (hay muchas más páginas, pero estas son las que usé yo en
    su momento).


    Saludos!!!



    El día 7/09/07, Francisco Martagón Gordillo <fmartagong@gmail.com> escribió:
    Vamos a ver si consigo explicarme:

    Estoy haciendo una página web en php, ésta está divida a su vez en varios
    php incluídos con la función include_once (), cada uno de los cuáles
    añaden
    la cabecera, el menú de navegación, el pie, etc.

    Uno de estos archivos contiene el cuerpo central, pero yo deseo que el
    contenido que se muestre en el cuerpo central cambie en función de la
    elección que haga el usuario en el menú de navegación.

    Para ello, en el archivo del cuerpo central he añadido una función If {}
    (estoy en pruebas, ya lo haré con switch{}) que evalúa la elección del
    usuario, y si éste escoge una opción muestra un mensaje y si escoge otra
    uno
    distinto. Para la función he usado la variable $centro.


    if ($centro=="instalaciones"){
    echo 'aquí hablaremos de nuestras instalaciones';
    } else if ($centro=="historia") {
    echo 'aquí hablaremos de la historia de nuestro centro';
    } else {
    echo $centro;
    }

    Mientras que en el archivo que "construye" el menú, coloco como enlace la
    opción escogida de esta manera:

    "http://127.0.0.1/centro.php?centro=historia"

    cuando hago clic sobre las entradas del menú, el navegador carga la url
    tal
    y como aparece entre comillas, pero la página no se carga con el mensaje
    'aquí hablaremos de la historia de nuestro centro', y si escojo otra
    opción
    tampoco me muestra el valor de la variable.

    ¿Qué estoy haciendo mal?

    --
    ===
    Francisco Martagón Gordillo

    Cada día te brinda una nueva oportunidad.
  • Gerardo at Sep 7, 2007 at 1:31 pm
    Seguramente el problema esta en como obtenes el valor de la variable centro,
    tenes estas opciones para hacer
    <?
    $centro = $_GET["centro"];
    ?>

    <?
    $centro = $_REQUEST["centro"];
    ?>

    De cualquier modo, yo te aconsejo, no hacer que una pagina muestre todo,
    maneje todo el contenido del sitio, es más engorroso de detectar errores. Lo
    mejor para hacerlo más ordenado y "depurable", seria tener una pagina por
    cada cosa en concreto.

    Saludos,
    On 9/7/07, Jacobo Pedrosa wrote:

    Como recoges el valor de las variables?

    Si no lo haces de ninguna forma utiliza losiguiente:

    $Opcion = $_GET['centro'];

    Donde $Opcion es la variable que contendra el valor de historia,
    instalaciones....

    Para mas info mirate la documentación de php.net o como hice yo
    desarrolloweb.com (hay muchas más páginas, pero estas son las que usé yo
    en
    su momento).


    Saludos!!!



    El día 7/09/07, Francisco Martagón Gordillo <fmartagong@gmail.com>
    escribió:
    Vamos a ver si consigo explicarme:

    Estoy haciendo una página web en php, ésta está divida a su vez en varios
    php incluídos con la función include_once (), cada uno de los cuáles
    añaden
    la cabecera, el menú de navegación, el pie, etc.

    Uno de estos archivos contiene el cuerpo central, pero yo deseo que el
    contenido que se muestre en el cuerpo central cambie en función de la
    elección que haga el usuario en el menú de navegación.

    Para ello, en el archivo del cuerpo central he añadido una función If {}
    (estoy en pruebas, ya lo haré con switch{}) que evalúa la elección del
    usuario, y si éste escoge una opción muestra un mensaje y si escoge otra
    uno
    distinto. Para la función he usado la variable $centro.


    if ($centro=="instalaciones"){
    echo 'aquí hablaremos de nuestras instalaciones';
    } else if ($centro=="historia") {
    echo 'aquí hablaremos de la historia de nuestro centro';
    } else {
    echo $centro;
    }

    Mientras que en el archivo que "construye" el menú, coloco como enlace la
    opción escogida de esta manera:

    "http://127.0.0.1/centro.php?centro=historia"

    cuando hago clic sobre las entradas del menú, el navegador carga la url
    tal
    y como aparece entre comillas, pero la página no se carga con el mensaje
    'aquí hablaremos de la historia de nuestro centro', y si escojo otra
    opción
    tampoco me muestra el valor de la variable.

    ¿Qué estoy haciendo mal?

    --
    ===
    Francisco Martagón Gordillo

    Cada día te brinda una nueva oportunidad.


    --
    Gerardo

    ----------------------------------------------------------------------
    http://www.mercadoagil.com.ar

    http://www.webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------
  • Carlos Medina at Sep 7, 2007 at 7:43 pm

    Francisco Martagón Gordillo schrieb:
    Vamos a ver si consigo explicarme:

    Estoy haciendo una página web en php, ésta está divida a su vez en varios
    php incluídos con la función include_once (), cada uno de los cuáles añaden
    la cabecera, el menú de navegación, el pie, etc.

    Uno de estos archivos contiene el cuerpo central, pero yo deseo que el
    contenido que se muestre en el cuerpo central cambie en función de la
    elección que haga el usuario en el menú de navegación.

    Para ello, en el archivo del cuerpo central he añadido una función If {}
    (estoy en pruebas, ya lo haré con switch{}) que evalúa la elección del
    usuario, y si éste escoge una opción muestra un mensaje y si escoge otra uno
    distinto. Para la función he usado la variable $centro.


    if ($centro=="instalaciones"){
    echo 'aquí hablaremos de nuestras instalaciones';
    } else if ($centro=="historia") {
    echo 'aquí hablaremos de la historia de nuestro centro';
    } else {
    echo $centro;
    }

    Mientras que en el archivo que "construye" el menú, coloco como enlace la
    opción escogida de esta manera:

    "http://127.0.0.1/centro.php?centro=historia"

    cuando hago clic sobre las entradas del menú, el navegador carga la url tal
    y como aparece entre comillas, pero la página no se carga con el mensaje
    'aquí hablaremos de la historia de nuestro centro', y si escojo otra opción
    tampoco me muestra el valor de la variable.

    ¿Qué estoy haciendo mal?
    Hola Francisco,
    recuerda de limpiar las Variables si estas usando SQL o JavaScript para
    que no te encuentres con sorpresas. Ademas no incluyas Files que tengan
    el mismo nombre que los parametros en $_GET ya que de esta manera se
    pueden Hacer cross-site-scripting. Ten en cuenta que programar contra
    interfaces es mejor que contra aplicacion. Para ello leete lo referente
    a OOP y php 5 en Zend.com o en wikipedia. Te deseo suerte

    Carlos
  • Gerardo at Sep 10, 2007 at 10:12 am
    Carlos como te va?

    A que te referis cuando decis esto "Ten en cuenta que programar contra
    interfaces es mejor que contra aplicacion".

    Gerardo

    --
    Gerardo

    ----------------------------------------------------------------------
    http://www.mercadoagil.com.ar

    http://www.webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------
  • Carlos Medina at Sep 11, 2007 at 9:36 am

    Gerardo schrieb:
    Carlos como te va?

    A que te referis cuando decis esto "Ten en cuenta que programar contra
    interfaces es mejor que contra aplicacion".

    Gerardo
    Hola Gerardo,
    esto va para aquellos que programan en php5. Cuando haces programas
    complejos puedes programar tus clases heciendo uso de las interfaces de
    PHP5. Un ejemplo que se me ocurre es el pattern de Front Controller.
    Recordamos que en un Front Controller la aplicacion se encarga de
    recibir los request y de enviar el response al cliente. Esto se puede
    hacer de la siguiente manera:

    interface FRequest{
    public function getParameter();
    public function setParameter();
    public function getHeader();
    public function isParameter();
    }

    Ahora los interfaces son algo asi como mascaras de diseno. Cuando las
    utilizamos en clases usamos los siguente:

    class HttpRequest implements FRequest{
    // aqui le damos vida al interfaz
    private $parameter;

    public function __construct(){
    $this->parameters = $_REQUEST;
    }

    public function getParameter($pname){
    if(isset($this->parameter[$pname]){
    return $this->parameter[$pname];
    }
    return false;
    }
    }

    Esto ejemplariza lo que es programar contra interfaz. Es decir que al
    agregarle mas funciones a la interfaz estas ampliando la clase sin
    necesidad de tocar otras clases o codigo. Ademas puedes usar la interfaz
    en otras clases sin tener que ocuparte de su instanciamiento.

    Saludos
    Carlos
  • Gerardo at Sep 11, 2007 at 10:36 am
    Gracias Carlos por la aclaración, muy bueno el ejemplo, yo pense que te
    referias a alguna otra cosa cuando hablaste de interfaces, de cualquier modo
    vale la aclaración y ejemplo.

    Gerardo.
    On 9/11/07, Carlos Medina wrote:

    Gerardo schrieb:
    Carlos como te va?

    A que te referis cuando decis esto "Ten en cuenta que programar contra
    interfaces es mejor que contra aplicacion".

    Gerardo
    Hola Gerardo,
    esto va para aquellos que programan en php5. Cuando haces programas
    complejos puedes programar tus clases heciendo uso de las interfaces de
    PHP5. Un ejemplo que se me ocurre es el pattern de Front Controller.
    Recordamos que en un Front Controller la aplicacion se encarga de
    recibir los request y de enviar el response al cliente. Esto se puede
    hacer de la siguiente manera:

    interface FRequest{
    public function getParameter();
    public function setParameter();
    public function getHeader();
    public function isParameter();
    }

    Ahora los interfaces son algo asi como mascaras de diseno. Cuando las
    utilizamos en clases usamos los siguente:

    class HttpRequest implements FRequest{
    // aqui le damos vida al interfaz
    private $parameter;

    public function __construct(){
    $this->parameters = $_REQUEST;
    }

    public function getParameter($pname){
    if(isset($this->parameter[$pname]){
    return $this->parameter[$pname];
    }
    return false;
    }
    }

    Esto ejemplariza lo que es programar contra interfaz. Es decir que al
    agregarle mas funciones a la interfaz estas ampliando la clase sin
    necesidad de tocar otras clases o codigo. Ademas puedes usar la interfaz
    en otras clases sin tener que ocuparte de su instanciamiento.

    Saludos
    Carlos

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

    --
    Gerardo

    ----------------------------------------------------------------------
    http://www.mercadoagil.com.ar

    http://www.webseficientes.com.ar
    tips y articulos para desarrolladores web
    ----------------------------------------------------------------------

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 7, '07 at 1:07p
activeSep 11, '07 at 10:36a
posts7
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase