FAQ
Hola estoy emigrando un SITIO que estaba en un server con PHP
4(funcionando bien) a
un nuevo server con PHP5

En el server nuevo con PHP5 no me esta permitiendo insertar a la base de
datos.


Para ver que esta pasando puse: error_reporting(E_ALL); y sale esto:

*Notice*: Undefined variable: NOMBRE in */home/sotadas/public_html/index.php
* on line *23*

Entonces definí antes de la linea 23
*$*NOMBRE *="";

*Y sale esto:
*Notice*: Undefined index: NOMBRE in */home/**sotadas**/public_html/**index*
*.php* on line *78

*En la linea 78 tengo esto:
$miNombre = $_POST['NOMBRE'];


*Creo que el problema anda en la validación de las POST BACK FORM VARIABLES.
Alguien me puede explicar con un pequeño ejemplo la validacion correcta
antes de usar la variables de post.


Gracias y Saludos
Rosario
*

Search Discussions

  • Lucas Crisman at Mar 17, 2008 at 7:44 pm
    Hola Rosario:

    Creo que tenes dos problemas:

    1- Antes usabas register_globals y ahora está desactivado.
    2- Tu formulario no esta enviando ningun valor denominado NOMBRE
    (debería existir un input o algún otro control de formulario con ese
    nombre) o lo esta enviando en minúsculas.

    Saludos,

    Lucas Crisman

    Rosario Magaña wrote:
    Hola estoy emigrando un SITIO que estaba en un server con PHP
    4(funcionando bien) a
    un nuevo server con PHP5

    En el server nuevo con PHP5 no me esta permitiendo insertar a la base de
    datos.


    Para ver que esta pasando puse: error_reporting(E_ALL); y sale esto:

    *Notice*: Undefined variable: NOMBRE in */home/sotadas/public_html/index.php
    * on line *23*

    Entonces definí antes de la linea 23
    *$*NOMBRE *="";

    *Y sale esto:
    *Notice*: Undefined index: NOMBRE in */home/**sotadas**/public_html/**index*
    *.php* on line *78

    *En la linea 78 tengo esto:
    $miNombre = $_POST['NOMBRE'];


    *Creo que el problema anda en la validación de las POST BACK FORM VARIABLES.
    Alguien me puede explicar con un pequeño ejemplo la validacion correcta
    antes de usar la variables de post.


    Gracias y Saludos
    Rosario
    *
  • Rosario Magaña at Mar 17, 2008 at 8:41 pm
    Hola,

    Si, el problema esta sobre las register_globals en el servidor anterior
    estaba a OFF y en el nuevo a ON

    Buscando en el manual de php, encontre este script, que solucionó el
    problema, aunque espero que si sea una solucion optima y no un parche.... en
    español, que hace este script?


    if( ini_get(register_globals) ) {
    /* genocide the damn registered globals if they are on */
    foreach( $_REQUEST as $key => $var ){
    if( $var === $$key ){
    unset($$key);
    }
    }
    }

    Gracias y saludos


    2008/3/17 Lucas Crisman <kordero@gmail.com>:
    Hola Rosario:

    Creo que tenes dos problemas:

    1- Antes usabas register_globals y ahora está desactivado.
    2- Tu formulario no esta enviando ningun valor denominado NOMBRE
    (debería existir un input o algún otro control de formulario con ese
    nombre) o lo esta enviando en minúsculas.

    Saludos,

    Lucas Crisman

    Rosario Magaña wrote:
    Hola estoy emigrando un SITIO que estaba en un server con PHP
    4(funcionando bien) a
    un nuevo server con PHP5

    En el server nuevo con PHP5 no me esta permitiendo insertar a la base de
    datos.


    Para ver que esta pasando puse: error_reporting(E_ALL); y sale esto:

    *Notice*: Undefined variable: NOMBRE in
    */home/sotadas/public_html/index.php
    * on line *23*

    Entonces definí antes de la linea 23
    *$*NOMBRE *="";

    *Y sale esto:
    *Notice*: Undefined index: NOMBRE in
    */home/**sotadas**/public_html/**index*
    *.php* on line *78

    *En la linea 78 tengo esto:
    $miNombre = $_POST['NOMBRE'];


    *Creo que el problema anda en la validación de las POST BACK FORM
    VARIABLES.
    Alguien me puede explicar con un pequeño ejemplo la validacion correcta
    antes de usar la variables de post.


    Gracias y Saludos
    Rosario
    *
  • Camilo Uran at Mar 18, 2008 at 12:11 pm
    Um, no conozco bien esto de regirter_globals pero este script te busca todos
    los REQUEST de la forma

    *$_REQUEST['clave'] = 'valor'*

    Luego te revisa si existe $$clave, es decir si se crean automáticamente las
    variables cuando le pasas parámetros al script, y de haberse creado entonces
    los pasa a un unset().

    Digamos tienes $REQUEST['nombre'] = 'Carlitos';
    1) Revisa si $$key, o sea $(nombre), es idéntico al valor de la clave,
    'Carlitos';
    2) Si es así, entonces toma la variable $nombre y la elimina con unset();

    Lo que hace es prevenir la creación de las variables automáticas del
    register_globals. Supongo que es útil
    solamente si está puesto register_globals, porque de no ser así pues no
    haría falta "matar" las variables globales insertadas por esa opción.

    No se si te he ayudado, a ver si alguien aclara más el tema.
  • SkuNk at Mar 18, 2008 at 12:21 pm
    Hola,

    Exactamente Camilo, es un genocidio de variables para que sólo queden
    disponibles las de entorno. Sólo vale en caso de que "register_globals" esté
    activo, en caso contrario no sirve.

    Lo que estás buscando Rosario, es todo lo contrario, vamos, algo así:

    foreach($_REQUEST as $k => $v) { ${$k} = $v; }

    Y lo que hace exactamente esta línea, es recorrer todas las variables
    REQUEST (que incluye tanto GET como POST) y definirlas de nuevo como
    variables locales, solución no recomendada para poder utilizar las variables
    en ámbito global.

    --
    Atentamente,
    Philipp Keweloh

    El día 18/03/08, Camilo Uran <camilou@gmail.com> escribió:
    Um, no conozco bien esto de regirter_globals pero este script te busca
    todos
    los REQUEST de la forma

    *$_REQUEST['clave'] = 'valor'*

    Luego te revisa si existe $$clave, es decir si se crean automáticamente
    las
    variables cuando le pasas parámetros al script, y de haberse creado
    entonces
    los pasa a un unset().

    Digamos tienes $REQUEST['nombre'] = 'Carlitos';
    1) Revisa si $$key, o sea $(nombre), es idéntico al valor de la clave,
    'Carlitos';
    2) Si es así, entonces toma la variable $nombre y la elimina con unset();

    Lo que hace es prevenir la creación de las variables automáticas del
    register_globals. Supongo que es útil
    solamente si está puesto register_globals, porque de no ser así pues no
    haría falta "matar" las variables globales insertadas por esa opción.

    No se si te he ayudado, a ver si alguien aclara más el tema.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedMar 17, '08 at 6:05p
activeMar 18, '08 at 12:21p
posts5
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase