Foros del Web » Programando para Internet » PHP »

no pasa valores ¿¿¿¿Que es?

Estas en el tema de no pasa valores ¿¿¿¿Que es? en el foro de PHP en Foros del Web. Porque no m epasa los valores de que está logueado y de quien es a la página welcome? El código que uso en el script ...
  #1 (permalink)  
Antiguo 08/06/2007, 19:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta no pasa valores ¿¿¿¿Que es?

Porque no m epasa los valores de que está logueado y de quien es a la página welcome? El código que uso en el script es el siguiente:

Código PHP:
//Conectando a la Base de Datos
    
$link mysql_connect ("localhost","root""") or die('No se ha podido conectar');
            
      if(
$link == true)
       {
        
mysql_select_db("tienda") or die("No se pudo seleccionar la Base de Datos"); 
        }    
        
//Validación del Password en la BD con la de la Web
        
$pass=$_POST['pass'];
        
$email=$_POST['email'];
            
       
$query="SELECT e_mail,password FROM registro WHERE e_mail='$email' AND password='$pass'";
        
$resquery=mysql_query($query);
          
$numfila=mysql_num_rows($resquery);    
          if(
$numfila==1)
            {             
             
session_start();
             
$_SESSION['estado']=logueado;
             
header("Location: welcome.php");
            } 
               else
              {
               
header("Location: error.php");               
              } 
  #2 (permalink)  
Antiguo 08/06/2007, 19:41
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: no pasa valores ¿¿¿¿Que es?

Te dire que faltaría un poco de información para decirte exactamente cual es el problema. Necesitariamos el codigo de este archivo, y de welcome.php enteros para analizar bien, ya que pueden ser varios motivos.

Pero más allá de eso se me ocurre lo siguiente, que en el archivo welcome.php al inicio del script no pusiste el session_start(), y esta función tiene que estar en todas las páginas en donde quieres que se mantenga la sesion.

Otra cosa, si trabajas con un servidor PHP 5 este código de va a dar un error:
Código PHP:
          if($numfila==1)
            {             
             
session_start();
             
$_SESSION['estado']=logueado;
             
header("Location: welcome.php");
            } 
               else
              {
               
header("Location: error.php");               
              } 
Ya que a partir de la version 5 no podes enviar los encabezados una vez que ya mandaste información. Esto lo solucionas con las funciones ob_start() y ob_flush()

Espero que te sirva
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #3 (permalink)  
Antiguo 08/06/2007, 20:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: no pasa valores ¿¿¿¿Que es?

Hola:

Gracias por tu respuesta q ya m aparece q está logueado, ahora una pregunta porq no me aparece su email? Te dejo el código de la página welcome donde mando llamar al email:

Código PHP:
<?PHP $mail=$_POST['email']; echo "Bienvenido:".$mail "Estado: ".$_SESSION['estado'];?>
  #4 (permalink)  
Antiguo 08/06/2007, 20:15
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: no pasa valores ¿¿¿¿Que es?

Si no te da ningún error de PHP, y simplemente te aparece en blanco en esa parte que tiene que ir el mail es porque no esta llegando el $_POST['email'].
No se como tenés estructurado tus archivos, pero creo que esa variable viene de un formulario, pero que no es de la página de la cual llamas a welcome.php, y acordate que las variables $_POST se mantienen solo por un archivo, si querés volver a enviar a un tercer script tenés que volver a enviarlo.
No se si me explique bien :D cualquier cosa te explico de vuelta....
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #5 (permalink)  
Antiguo 08/06/2007, 20:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: no pasa valores ¿¿¿¿Que es?

El valor del email lo tomo de la base de datos, esto lo hago asi:

Código PHP:
while($res=mysql_fetch_array($resquery))
            {
            
$email=$res["e_mail"];
            } 
Pero pues no da resultado.
  #6 (permalink)  
Antiguo 08/06/2007, 20:32
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: no pasa valores ¿¿¿¿Que es?

pero de donde sale el $_POST ese? de donde lo traes?

Código PHP:
$mail=$_POST['email']; 
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #7 (permalink)  
Antiguo 08/06/2007, 20:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: no pasa valores ¿¿¿¿Que es?

Pues ese tenía para que me diera el valor del email de la página index, pero se lo quité porque creía que con el while que hago me daría el email que tengo guardado en la BD pero nada.
  #8 (permalink)  
Antiguo 08/06/2007, 20:40
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: no pasa valores ¿¿¿¿Que es?

no te molestaría poder copiar y pegar el codigo de ambas paginas?asi lo veo mejor...
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #9 (permalink)  
Antiguo 08/06/2007, 20:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: no pasa valores ¿¿¿¿Que es?

El codigo de welcome es:

Código PHP:
 <?PHP  echo "Bienvenido:".$mail "Estado: ".$_SESSION['estado'];?>
El codigo del script que mando llamar en la pagina index es:

Código PHP:
 $link mysql_connect ("localhost","root""") or die('No se ha podido conectar');
            
      if(
$link == true)
       {
        
mysql_select_db("tienda") or die("No se pudo seleccionar la Base de Datos"); 
        }    
        
//Validación del Password en la BD con la de la Web
        
$pass=$_POST['pass'];
        
$email=$_POST['email'];
            
       
$query="SELECT e_mail,password FROM registro WHERE e_mail='$email' AND password='$pass'";
        
$resquery=mysql_query($query);
          
$numfila=mysql_num_rows($resquery);
          while(
$res=mysql_fetch_array($resquery))
            {
            
$mail=$res["e_mail"];
            }    
            if(
$numfila==1)
            {             
             
session_start();
             
$_SESSION['estado']=logueado;
             
header("Location: welcome.php");
            } 
               else
              {
               
header("Location: error.php");               
              } 
  #10 (permalink)  
Antiguo 08/06/2007, 21:11
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: no pasa valores ¿¿¿¿Que es?

Proba esto:

El codigo en welcome:
Código PHP:
 <?PHP  echo "Bienvenido:".$_SESSION['mail']=$email "Estado: ".$_SESSION['estado'];?>
El codigo del script que mandas llamar en la pagina index:

Código PHP:
$link mysql_connect ("localhost","root""") or die('No se ha podido conectar');
            
      if(
$link == true)
       {
        
mysql_select_db("tienda") or die("No se pudo seleccionar la Base de Datos"); 
        }    
        
//Validación del Password en la BD con la de la Web
        
$pass=$_POST['pass'];
        
$email=$_POST['email'];
            
       
$query="SELECT e_mail,password FROM registro WHERE e_mail='$email' AND password='$pass'";
        
$resquery=mysql_query($query);
        
$numfila=mysql_num_rows($resquery);
        if(
$numfila==1){             
            
session_start();
            
$_SESSION['estado']=logueado;
            
$_SESSION['mail']=$email;
            
header("Location: welcome.php");
        }else{
            
header("Location: error.php");               
        } 
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
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 02:11.