Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

Voy a realizar un pequeño resumen de como tratar las variables que se pasan por el metodo POST.

Basicamente existen dos formas de pasar estas variables que dependen del estado de "register_globals" dentro de PHP.INI:
- Si esta en "on" puedes acceder a las variables directamente por su nombre. Si no me equivoco hay que reiniciar el servidor una vez se a cambiado este valor.
- Si esta en "off" solo puedes acceder a traves de array $_POST o $HTTP_POST_VARS (depende de la version de PHP que uses). Estos arrays tambien se pueden usar si "register_globals" esta en "on".

Ahora pasamos a como mostrar esta información dentro de una cadena de texto, que como siempre depende de la versión de PHP que uses:
- Si trabajas directament con el nombre de la variable no hay ningun problema.
Código PHP:
  echo "mi variable es $miVariable";  // Con dobles comillas
   
echo "mi variable es "$miVariable// Con dobles o simples comillas 
- Si trabajamos con los arrays:
Código PHP:
  echo "mi variable es "$_POST["miVariable"]; // Para cualquier version de PHP
   
echo "mi variable es $_POST[miVariable]"// Para la versión 4 (no lo he probado en la 3)
   
echo "mi variable es {$_POST[miVariable][1]}"// Arrays de varias dimensiones, para la version 4 
Espero que te sirva de algo.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #2  
Antiguo 27-10-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 22
papulo Va por buen camino
De las 3 formas que muestras, ¿cual es la que recomiendas tu?.

PD: Asias por la info

Un abrazo cansadito.

Papulo.
Responder Con Cita
  #3  
Antiguo 27-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

Por claridad te aconsejo que trabajes con el array $_POST, y que a la hora de mostrar el contenido de una valor lo hagas asin:
Código PHP:
echo "mi variable es "$_POST["miVariable"]; 
Al menos yo lo veo más claro, saves a primera vista que parte es texto y que parte es variable y de donde sale y como han mandado esa variable.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #4  
Antiguo 27-10-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 22
papulo Va por buen camino
Eso me pensaba, es el unico que resalta claramente que trabajo con $_POST y la variable a la que pertenece.

Un abrazo de despues de la siesta.

Papulo.
Responder Con Cita
  #5  
Antiguo 27-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Excelente resumen de Kayetano.

Hay otra forma- sucia podría decirse - de acceder a las variables del post directamente aún teniendo register_globals en OFF:

Código PHP:
extract($_POST);

// aquí ya pueden accederse a las variables 
Supongo que no es recomendable por la misma razón que no se recomeinda poner register_globals en ON, aunque la verdad no me queda claro el porqué. Quizá el compañero Kayetano nos pueda aclarar el punto.

Lo que sí, es que en ocasiones, cuando se debe trabajar con un código que se escribió sin hacer uso de $_POST y no tenemos tiempo de cambiar todas las referencias, extract nos puede ayudar temporalmente mientras corregimos el resto.

// Saludos
Responder Con Cita
  #6  
Antiguo 28-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

Pues nada rizaremos el rizo
Código PHP:
    if( !ini_get('register_globals') ) import_request_variables("PGC"); 
Si tenemos "register_globals" a off podemos crear variables a partir de los arrays $_POST, $_GET y/o $_COOKIE. Esta funcion nos permite además añadir un prefijo para evitar solapamientos de nombres.

El porque de utilizar los arrays y no las variables son temas de seguridad, por poner un ejemplo:
Supongamos que alguien quiere trastear nuestra página modificando alguna variable de sesion, lo mas facil es que intente meter o modificar variables por metodo GET (o POST):
Código PHP:
mipagina.php?usuario=...&clave=... 
Pero si trabajamos con los arrays que crea PHP para diferenciar la procedencia y ambito de las variables, en este caso con el array $_SESSION evitamos que alguien pueda modificar valores almacenados en estos arrays.
Hay que tener en cuenta que si tenemos "register_globals" a ON todas las variables se hacen globales con el problema que exite de que se machaquen unas a otras, con lo que un usuario podría manipular facilmente nuestra web.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #7  
Antiguo 28-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kayetano
Pues nada rizaremos el rizo
Sigamos con el peinado

Hasta donde yo recuerdo (en cuanto pueda hará la prueba), en el modo antiguo, cuando no se usaba register_globals = OFF, una vez que registrabas una variable de sesión, ésta no podía modificarse con valores provenientes del GET o POST.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:22:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi