Foros del Web » Programando para Internet » PHP »

problema metodo post y header location

Estas en el tema de problema metodo post y header location en el foro de PHP en Foros del Web. buenas tengo el siguiente form en una pagina llamada login.php <form action="cpanel/cpanel.php" method="POST" name="clientes" id="form"> <input name="username" id="username" maxlength="16"> hasta aqui bien, ahora hace el ...
  #1 (permalink)  
Antiguo 19/07/2007, 06:13
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 12 años, 7 meses
Puntos: 0
problema metodo post y header location

buenas tengo el siguiente form en una pagina llamada login.php

<form action="cpanel/cpanel.php" method="POST" name="clientes" id="form">


<input name="username" id="username" maxlength="16">


hasta aqui bien, ahora hace el post sobre cpanel.php pero esta pagina tiene en la cabecera el siguiente codigo:

<?
session_start();
header('Location: clientes.php');
?>


Como hago que llegue la variable a clientes.php proveniente del campo de usuario si el method post lo hace sobre cpanel.php?, Tengo las register global en off por lo tanto tengo que usar $_POST[username];

y otra pregunta despues del header location si hay codigo se ejecuta?

bueno esas son mis dudas gracias de nuevo espero respuesta lo antes posible
  #2 (permalink)  
Antiguo 19/07/2007, 06:37
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 14 años, 2 meses
Puntos: 19
Re: problema metodo post y header location

No entiendo por que apuntas a cpanel/cpanel.php en el formulario si lo primero que haces en ese script es redirigir a clientes.php. ¿Por qué no apuntas a clientes.php directamente?

Por otro lado, creo que lo que hay después de un header location no se ejecuta. Pero si te quieres asegurar pon un exit;
  #3 (permalink)  
Antiguo 19/07/2007, 06:51
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 12 años, 7 meses
Puntos: 0
Re: problema metodo post y header location

gracias jerkan apunto a cpanel.php para cuando el cliente se desloguea de la aplicación y le da al botón atras no le salga en la ventana el mensaje de caducidad de internet explorer. de ahi el porque de ese header.

Mi aplicación funcionaba sin problema con las global en on pero por lo que veo y me comenta la gente es mejor hacerlo con las register en off por temas de seguridad y ahora tengo que readaptar toda mi aplicacion y tengo que usar las superglobal $_POST[username]; en vez de global $username; ya que estas ultimas no funcionan en off.

El codigo php en mi script si se ejecuta por que si no no me entra en la aplicacion ya que despues del header hace referencia a member.php que es el que comprueba el user y pass y crea la variable de sesion luego en clientes.php comprueba si esta registrada si es si deja entrar, si no no entra.

hay alguna manera de mandar las variables directamente a clientes.php pero con el cpanel.php de por medio?

Y otra pregunta se pueden incluir en una función las variables superglobal como global $username por ejemplo en

function ()
{
global $username;
$_POST[username];

}
  #4 (permalink)  
Antiguo 19/07/2007, 09:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: problema metodo post y header location

Ok si entiendo el porque apuntar a clientes.php, pero para que no te salga ese mensaje de que caduco, tienes que hacer el header DESPUES de haber deslogueado es decir:

Entras a tu script cpanel.php, realizas tu proceso de salida, y al final mandas el header a clientes.php asi no te sale el mensaje de que caduco la pagina.

Respecto a tu segunda pregunta si puedes hacer:
Código PHP:
function algo() {
      global 
$username;
      
$_POST['username'];

Aunque son diferentes variables $username y $_POST['username'], solo plantea bien que vas a hacer con cada variable.

Saludos.
  #5 (permalink)  
Antiguo 19/07/2007, 13:27
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 12 años, 7 meses
Puntos: 0
Re: problema metodo post y header location

gracias gatorv
cpanel.php contiene dentro debajo de un header hexo en flash <? member.php ?> que es el que comprueba si el usuario y el passwd existen en la bd. el header a clientes esta puesto al ppio porque no se puede enviar nada mas antes de este porque si no da errores en la salida el parser...

Mi inquietud es si existe alguna manera de pasar las variables $_POST['username'] como global $username; ya que estas ultimas son llamadas desde cualquier script y ya las tienes, a diferencia de $_POST['username'].

Otra pregunta se puede hacer una aplicación lo mas segura posible con las register global en on, inicializando cada variable utilizada en cada script?, controlando la entrada de campos de textos al maximo y evitando la ejecución de comandos desde el explorador?

o aun teniendo estas premisas en cuenta es potencialmente inseguro el sistema con las global en on?

Gracias de nuevo espero respuesta lo antes posible un saludo
  #6 (permalink)  
Antiguo 19/07/2007, 13:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: problema metodo post y header location

Como te comento puedes hacer todos esos procesos sin ningun problema la unica forma de que redirijas a clientes.php y pases el valor es via URL pero en este caso lo verias en la barra del URL y no seria tan seguro:
Código PHP:
header("Location: clientes.php?username=" $_POST['username']); 
En este caso en lugar de rescatarla como $_POST['username'] la rescatarias con $_GET.

Si es posible hacer un sistema como dices, pero creo es mayor problema a mejor solo utilizar $_POST y $_GET ya que de todos modos el usuario te podria inyectar una variable y si se te pasa por cualquier cosa tendrias muchos problemas (lee el caso de PHP Nuke)

Saludos.
  #7 (permalink)  
Antiguo 20/07/2007, 09:14
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 12 años, 7 meses
Puntos: 0
Re: problema metodo post y header location

Gracias gatorv por la respuesta. Siento no haber podido contestar antes problemas de trabajo.

Me queda claro lo del header pero lo que no me queda claro es cuando pones que es mayor problema a mejor solo utilizar $_POST y $_GET.

el methodo de envio de registro y luego de autentificación de mi aplicación se hacen por el metodo post y uso las variables globales cuando las necesito en las funciones.

Mi pregunta es si es posible hacer un sistema medianamente seguro con global en on, controlando la entrada de datos en los formularios, la ejecución de comandos y demás ya que ahora mismo para mi es mas facil hacer eso, que readaptar mi aplicación a global off.

He leido que hay que inicializar cada variable al ppio de cada script. como debe hacerse? ese valor hay que dárselo antes o despues del post?...

como puede un usuario inyectar una variable? atraves del formulario¿? o del navegador? como se hace con un programa? La verdad es que estaria asombrado si alguien que no conoce ni el user ni el pass puede entrar en mi aplicación... como puede ser posible? :S

Bueno alomejor para algunos son preguntas que sabeis ya de antemano pero yo soy un principiante que he creado mi aplicación y deseo darle una seguridad medianamente aceptable...

perdonenme mi falta de sapiencia o mi ignorancia

una ultima cosa: me gustaria saber si alguien me puede decir a donde dirigirme para que me hagan una consultoria o auditoria de mi pagina y de empresas que venden certificados de seguridad de software. Si alguien sabe estaria muy agradecido

gracias de nuevo espero respuesta lo antes posible Un saludo

Última edición por hyperrjas; 20/07/2007 a las 09:26
  #8 (permalink)  
Antiguo 20/07/2007, 09:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: problema metodo post y header location

Te digo, si es posible pero el hacer que tu sistema sea seguro usando Globals en On es mas dificil a solo cambiar tus variables de entrada a $_POST o $_GET.

Para inyectar una variable solo es cuestion de llamar a tu script con la variable:
Código:
mipagina.php?muestradatosconfidenciales=1&esadministrador=1
Si tu dentro de tu script tu tienes algo asi:
Código PHP:
// cosas
if( $esadministrador ) {
      if( 
$muestradatosconfidenciales ) {
            
imprime_datosconfidenciales();
      }

Si no controlas de donde se inician esas variables te pueden inyectar codigo y tu sistema seria inseguro.

Para iniciar las variables tendrias que al inicio de tu script crearlas:
Código PHP:
$unavar null// Creamos la variable a null
$unavar $_GET['unavar']; // Explicitamente asignamos que $unavar viene de GET 
Si vemos tenemos que asignar la variable a null antes para evitar que venga de GET, o POST o etc con otro valor.

Si ves el problema de las Globals en On es mucho mas grande y es mas dificil estar adaptando o parchando tu aplicacion y checando que sea segura.

Tendra mas seguridad si te adaptas a usar las variables super globales $_POST, y $_GET.

Saludos.
  #9 (permalink)  
Antiguo 20/07/2007, 10:07
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 12 años, 7 meses
Puntos: 0
Re: problema metodo post y header location

Muchas gracias gatorv por la respuesta. Entonces me pondré manos a la obra de nuevo para readaptar todo el código a global off aunque veo que me va a costar bastante ya que son muchos scripts y muchas llamadas entre unos y otros hasta conseguir que todo funcione perfectamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:01.