Foros del Web » Programando para Internet » PHP »

Problema con header

Estas en el tema de Problema con header en el foro de PHP en Foros del Web. Hola ! Tengo este código: if ($row = mysql_fetch_array($result)){ $email = $row['email']; echo $row['email']; header ('location:psw3.php'); exit; } pero el header no me funciona porque ...
  #1 (permalink)  
Antiguo 01/02/2005, 03:07
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Problema con header

Hola !
Tengo este código:

if ($row = mysql_fetch_array($result)){
$email = $row['email'];
echo $row['email'];
header ('location:psw3.php');
exit;
}

pero el header no me funciona porque se queda en la página de este script.
¿Qué es lo que hago mal?

Muchas gracias !
  #2 (permalink)  
Antiguo 01/02/2005, 03:48
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
para que te funcione el header es necesario que no se imprima nada. En tu caso tienes un echo antes... Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 01/02/2005, 04:14
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
pues creo que no es eso, todavía sigue sin funcionarme
Código PHP:
   if ($row mysql_fetch_array($result)){ 
   
$email $row['email'];
   
header ('location:psw3.php'); 
   exit; 
   } 
¿que puñetas pasa?
  #4 (permalink)  
Antiguo 01/02/2005, 04:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
.... qué intentas hacer???
1.- para empezar... y continuar... no debes de imrprimir NADA antes... NADA, no solo dentro del if
2.- If es conticional.... no puedes hacer $row=algo ya que no comparas sino que asignas... en todo caso seria $row == $otro valor a comparar... por o que la función de mysql .... nada que hacer ahí
3.- si vaz a redireccionar... de qué te sirve asignarle un valor a $mail si no lo vaz a... pasar.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 01/02/2005, 04:29
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Sí que quiero pasar esa variable, ya que la finalidad de este script es recoger el email que ha escrito el usuario en una página anterior donde había un formulario, para que en la página psw3.php se le envie su contraseña a su correspondiente dirección electrónica.
Pero como el header pasa de mí, no me he molestado en escribir bien todo el código.
Aquí te lo escribo:
Código PHP:
<?php 
 
if ($email == ""){ 
      echo 
"<SCRIPT LANGUAGE='JavaScript'>
<!-- Begin
window.location='psw.htm';
// End -->
</script> "

      echo 
"</html></body> \n"
      exit; 

else {
    
$db mysql_connect() ;
   
$result mysql_query("SELECT * FROM bd WHERE email = '$email'
                                               ORDER BY email"
$db); 
   if (
$row mysql_fetch_array($result)){ 
   
$email $row['email'];
   
header("location:psw3.php?email=$email");   
   exit; 
   } 
   else { 
      echo 
"<SCRIPT LANGUAGE='JavaScript'>
   <!-- Begin
   window.location='psw.htm';
   // End -->
    </script> "

   echo 
"</html></body> \n"
   exit; 
   } 

?>
A ver si me puedes ayudar ahora, de todos modos, muchas gracias
  #6 (permalink)  
Antiguo 01/02/2005, 05:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Código PHP:
<?php 
 
if ($email == ""){ 
/* Si viene de un formulario en otra pag... debes recorgerla por el método que hayas utilizado (POST o GET)... también podrias probar con if(empty($_POST['variable'])); ó isset... */
      
echo "<SCRIPT LANGUAGE='JavaScript'>
<!-- Begin
window.location='psw.htm';
// End -->
</script> "

      echo 
"</html></body> \n"// primero body luego html... :-)
      
exit; 

else {
    
$db mysql_connect() ;
/* ... y dónde seleccionas la BD, el usuario, password... etc, etc, etc? */
   
$result mysql_query("SELECT * FROM bd WHERE email = '$email'
                                               ORDER BY email"
$db); 
/*... No hace falta el ORDER BY ... 
1) porque todos los mails serian iguales y 
2) porque estás buscando un único resultado... deberias de aseguurarte que al ingresar datos en tu base de datos no se repitan campos como el del correo.. Digo! es lo más usual
Buscas un correo que ya sabes.. para volverlo a ocupar  :pensando: ... 
Creo que lo que intentas hacer es.. buscar el correo en la base de datos.. si existe mandas el mail... si no.. pos no...  :pensando: . Lo que necesitas es algo así
if (función que devuelva TRUE si hubo resultado y FALSE si no encontró coincidencias).... prueba con mysql_result() ó mysql_num_rows ... sabrá cuál te sirva... visita [url]http://mx2.php.net/manual/es/ref.mysql.php[/url].
*/
   
if ($row mysql_fetch_array($result)){ 
   
$email $row['email']; // insisto... el mail ya lo sabias, solo buscas si esta en tu BD
   
header("location:psw3.php?email=$email");   
   exit; 
   } 
   else { 
      echo 
"<SCRIPT LANGUAGE='JavaScript'>
   <!-- Begin
   window.location='psw.htm';
   // End -->
    </script> "

   echo 
"</html></body> \n";  // si estás cerrando... supongo los mandaste a imprimir antes de todo esto... por lo tanto antes igual del header... ERROR!.
   
exit; 
   } 

?>
.... según yo... no me creas mucho, soy aprendíz... Ojala y te sirva.. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 02/02/2005, 15:53
 
Fecha de Ingreso: enero-2005
Mensajes: 33
Antigüedad: 19 años, 3 meses
Puntos: 0
Mmm..

Primero si puedes hacer row = mysql_fetch_array($result) dentro de un if, pues una asignacion retorna verdadero si se pudo hacer o falso si no. Creo que tu problema es la sintaxis de header, es asi:

if ($row = mysql_fetch_array($result)){
$email = $row['email'];
header ("Location: psw3.php");
}

El exit que tenias no es necesario pues despues del header no se ejecuta nada mas pues ya te redireccionaste, ademas recuerda que en ninguna parte antes del header debes poner un echo a no ser que esten separado por un if else, como veo que es tu caso, pues en este ultimo caso (el tuyo) si funciona. Espero que te resulta y suerte, jejej yo tambien ando en algunos problemillas con el famoso header.
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 11:38.