FAQ
Hola a todos.

De vuelta con las vacaciones y de vuelta con la rutina.

Me encuentro con una cuestión a solucionar, que estoy seguro que no debe
ser difícil, y alguno de vosotros habréis topado en alguna ocasión. Yo
de momento no lo he conseguido. Será una chorrada, pero no doy con ella.

Se trata de saber que se ha ejecutado un formulario (método POST, por
ejemplo) antes de visualizarse otro formulario o página.

Pongo un ejemplo.

Tengo un formulario "form1.php". Al pulsar el submit de este, se ejecuta
"form2.php", que recoge los datos. Lo que quiero es evitar que el
usuario ponga en el navegador directamente "form2.php" y este se ejecute
directamente. Es decir, si el usuario pone en la url
"dominio/form2.php", se redirige a "form1.php".

Se que esto se puede hacer, comprobando los campos que se rellenan en el
formulario, y en caso de que no estén correctamente rellenados, se
vuelve al formulario anterior. Pero creo que hay una forma de hacer
comprobando si procede la carga de la página tras un POST, pero no se como.

¿Alguna idea?.

- --


< ¡¡Nos vemos!! >
----------------------------
\
\
.::!!!!!!!:.
.!!!!!:. .:!!!!!!!!!!!!
~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
:$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
$$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
$$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
"*$bd$$$$ '*$$$$$$$$$$$o+#"
"""" """""""

Search Discussions

  • Denyl Meneses Guillén at Sep 1, 2008 at 6:01 pm
    Ya manejas sesiones?

    Pablo Braulio wrote:
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Hola a todos.

    De vuelta con las vacaciones y de vuelta con la rutina.

    Me encuentro con una cuestión a solucionar, que estoy seguro que no debe
    ser difícil, y alguno de vosotros habréis topado en alguna ocasión. Yo
    de momento no lo he conseguido. Será una chorrada, pero no doy con ella.

    Se trata de saber que se ha ejecutado un formulario (método POST, por
    ejemplo) antes de visualizarse otro formulario o página.

    Pongo un ejemplo.

    Tengo un formulario "form1.php". Al pulsar el submit de este, se ejecuta
    "form2.php", que recoge los datos. Lo que quiero es evitar que el
    usuario ponga en el navegador directamente "form2.php" y este se ejecute
    directamente. Es decir, si el usuario pone en la url
    "dominio/form2.php", se redirige a "form1.php".

    Se que esto se puede hacer, comprobando los campos que se rellenan en el
    formulario, y en caso de que no estén correctamente rellenados, se
    vuelve al formulario anterior. Pero creo que hay una forma de hacer
    comprobando si procede la carga de la página tras un POST, pero no se como.

    ¿Alguna idea?.

    - --


    < ¡¡Nos vemos!! >
    ----------------------------
    \
    \
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
    $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""

    --
    Denyl Meneses Guillén
    Dpto. Sistemas
    GRUPO DELTRON S.A
    Telf: 415 0101 anexo 1223
    -----------------------------------------------------------------
    "Yo no he visto nunca un glaciar reflejado en aguas de coral
    Yo no he visto nunca las estrellas desde los áticos de Taiwán
    pero he visto tus ojos y ahí quiero viajar"
    -----------------------------------------------------------------
  • Pablo Braulio at Sep 1, 2008 at 6:10 pm

    Denyl Meneses Guillén escribió:
    Ya manejas sesiones?
    No se trata de hacerlo a nivel de sesiones.

    Ya he dado con la solución.

    if(!$_POST){ header('Location: xxxxx')}

    Gracias a todos.
    - --


    < ¡¡Nos vemos!! >
    ----------------------------
    \
    \
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
    $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""
  • @ndrés at Sep 2, 2008 at 12:22 am
    La solución más aceptada es la de generar un token o identificador en
    form1.php y comprobarlo en form2.php

    Esto por cuanto alguien podría generar un POST query falso; por ejemplo uno
    vacío. Esto hace muy importante el verificar contenido antes de procesarlo,
    por ejemplo si sólo ejecuta la comprobaciíon

    if(!$_POST){ header('Location: xxxxx');}

    y su código es

    if(!$_POST){ header('Location: xxxxx');}
    else
    {
    $variable=$_POST["variable"];
    }

    Obviamente produciría error pues no comprobaste que tuviera valores válidos,
    sólo que existiera la variable

    On Mon, Sep 1, 2008 at 12:10 PM, Pablo Braulio wrote:

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Denyl Meneses Guillén escribió:
    Ya manejas sesiones?
    No se trata de hacerlo a nivel de sesiones.

    Ya he dado con la solución.

    if(!$_POST){ header('Location: xxxxx')}

    Gracias a todos.
    - --


    < ¡¡Nos vemos!! >
    ----------------------------
    \
    \
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
    $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""


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

    --
    Andrés Meseguer Rojas
    http://www.ic-itcr.ac.cr/about/ameseguer
  • Martin Scotta at Sep 2, 2008 at 1:07 am
    no estoy de acuerdo con la expresion if(!$_POST)
    en su lugar utilizaria if(! count($_POST) ) o bien if( empty($_POST) )

    creo que son mas semanticas.

    por otro lado:

    if( !$cond )
    {
    header('Location: xxxx');
    exit; # debemos cortar la ejecucion
    }

    echo 'aqui no deberia llegar nunca si no se da $cond';

    2008/9/1 @ndrés <ameseguer@gmail.com>:
    La solución más aceptada es la de generar un token o identificador en
    form1.php y comprobarlo en form2.php

    Esto por cuanto alguien podría generar un POST query falso; por ejemplo uno
    vacío. Esto hace muy importante el verificar contenido antes de procesarlo,
    por ejemplo si sólo ejecuta la comprobaciíon

    if(!$_POST){ header('Location: xxxxx');}

    y su código es

    if(!$_POST){ header('Location: xxxxx');}
    else
    {
    $variable=$_POST["variable"];
    }

    Obviamente produciría error pues no comprobaste que tuviera valores válidos,
    sólo que existiera la variable

    On Mon, Sep 1, 2008 at 12:10 PM, Pablo Braulio wrote:

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Denyl Meneses Guillén escribió:
    Ya manejas sesiones?
    No se trata de hacerlo a nivel de sesiones.

    Ya he dado con la solución.

    if(!$_POST){ header('Location: xxxxx')}

    Gracias a todos.
    - --


    < ¡¡Nos vemos!! >
    ----------------------------
    \
    \
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
    $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""


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

    --
    Andrés Meseguer Rojas
    http://www.ic-itcr.ac.cr/about/ameseguer


    --
    Martin Scotta
    http://www.echess.com.ar/

    Decile NO al soft-pirata, usa Linux!
  • Rolan Benavent at Sep 2, 2008 at 5:40 pm
    Yo uso esto:

    if(eregi("form2.php",$_SERVER['PHP_SELF'])){
    Header("Location: xxx");
    die();
    }

    Saludos,

    Rolan.



    Pablo Braulio escribió:
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Hola a todos.

    De vuelta con las vacaciones y de vuelta con la rutina.

    Me encuentro con una cuestión a solucionar, que estoy seguro que no debe
    ser difícil, y alguno de vosotros habréis topado en alguna ocasión. Yo
    de momento no lo he conseguido. Será una chorrada, pero no doy con ella.

    Se trata de saber que se ha ejecutado un formulario (método POST, por
    ejemplo) antes de visualizarse otro formulario o página.

    Pongo un ejemplo.

    Tengo un formulario "form1.php". Al pulsar el submit de este, se ejecuta
    "form2.php", que recoge los datos. Lo que quiero es evitar que el
    usuario ponga en el navegador directamente "form2.php" y este se ejecute
    directamente. Es decir, si el usuario pone en la url
    "dominio/form2.php", se redirige a "form1.php".

    Se que esto se puede hacer, comprobando los campos que se rellenan en el
    formulario, y en caso de que no estén correctamente rellenados, se
    vuelve al formulario anterior. Pero creo que hay una forma de hacer
    comprobando si procede la carga de la página tras un POST, pero no se como.

    ¿Alguna idea?.

    - --


    < ¡¡Nos vemos!! >
    ----------------------------
    \
    \
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
    $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""

    --
    Rolan Benavent
    Dulasoft, s.l.
    info@dulasoft.com
    *PCMark3t.com*, tu tienda de informática en internet
    <http://www.pcmark3t.com>
    *Dulasoft.com*: consultoría informática, diseño gráfico, programación de
    páginas web y aplicaciones de software, montaje de redes, formación a
    empresas y particulares... <http://www.dulasoft.com>

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 1, '08 at 5:55p
activeSep 2, '08 at 5:40p
posts6
users5
websitephp.net

People

Translate

site design / logo © 2022 Grokbase