Foros del Web » Programando para Internet » PHP »

Redireccion con php

Estas en el tema de Redireccion con php en el foro de PHP en Foros del Web. hola, estoy intentando redireccionar a otra pagina cuando meto el usuario y password correcto y me lo valida con mysql, todo anda bien (la validacion ...
  #1 (permalink)  
Antiguo 10/07/2011, 14:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Redireccion con php

hola,

estoy intentando redireccionar a otra pagina cuando meto el usuario y password correcto y me lo valida con mysql, todo anda bien (la validacion de bd) pero no me redirecciona... probe con header() y me da un warning WARNING: CANNOT MODIFY HEADER INFORMATION – HEADERS ALREADY SENT BY... y ahora estoy mirando con javascript embebido en php funcion window.locationf y tampoco me tira... se me queda en la misma pagina, simplemente quiero enviarlo a una pagina que esta en el mismo directorio que el archivo que se esta ejecutando.

ojala puedan ayudarme, un saludo a todos!!
  #2 (permalink)  
Antiguo 10/07/2011, 14:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Redireccion con php

El Warning que te muestra es porque ya has impreso algo antes de tratr de redireccionar. No se pueden enviar cabeceras una vez que se imprime algo en pantalla.

Lo que debes hacer es verificar que no se imprima nada antes de hacer la redireccion
  #3 (permalink)  
Antiguo 10/07/2011, 14:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Redireccion con php

hola,

Gracias por tu pronta respuesta.

Yo tengo un formulario para que el usuario meta nombre y password, entonces el header esta metido dentro de un if que verifica que el post de user y password sean los mismos de los leidos en la BD entonces es cuando se podruce el header...

Como podria hacerlo para que no imprima nada? no lo entiendo
  #4 (permalink)  
Antiguo 10/07/2011, 14:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Redireccion con php

Un ejemplo:

Lo siguiente producira un Warning:
Código PHP:
Ver original
  1. <html>
  2. <body>
  3. <?php header("Location: /pagina.php"); ?>
  4. </body>

Tambien lo siguiente:
Código PHP:
Ver original
  1. <?php
  2. echo 'Hola';
  3. header("Location: /pagina.php");
  4. ?>

Sin embargo, lo siguiente no:
Código PHP:
Ver original
  1. <?php
  2. //Primo proceso antes de empezar a imprimir
  3. header("Location: /pagina.php");
  4. ?><html>
  5. <body>
  #5 (permalink)  
Antiguo 10/07/2011, 14:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Redireccion con php

Entiendo pero entonces si la lectura de php es secuencial como hago para hacer una condicion con un header dentro? si no puede haber nada antes que el header...

mi codigo es el siguiente:

if( !empty($_POST['user']) && !empty($_POST['pass']) )
{
$user = $_POST['user'];
$pass = $_POST['pass'];
$frase = "select * from stock_pornis";
$autenticacion = mysql_query($frase,$conexion);

$row = mysql_fetch_array($autenticacion);
if( $user == $row[0] && $pass == $row[1] )
{
header('Location: www.mipagina.com/stock/login.php');[/url]
}
  #6 (permalink)  
Antiguo 10/07/2011, 14:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Redireccion con php

Antes de if( !empty($_POST['user']) && !empty($_POST['pass'])), ¿no hay nada?
  #7 (permalink)  
Antiguo 10/07/2011, 15:01
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Redireccion con php

este es todo el codigo:

<?php

/* Conexion BD NOTA: NOMBRE TABLA 'stock_pornis' */

$conexion = mysql_connect("mihost", "mibd", "mipass");

$seleccion = mysql_select_db("mibd", $conexion);


/* INTERFAZ */
?>

<HTML>


<BR><BR><BR><TABLE ALIGN='CENTER'>
<TR>
<TD>USUARIO</TD>
<TD><FORM METHOD='POST'>
<INPUT TYPE='text' NAME='user'>
</TD>
</TR>
<TR>
<TD>CONTRASEÑA</TD>
<TD>
<INPUT TYPE='password' NAME='pass'>
</TD>
</TR>
<TR>
<TD COLSPAN=2 ALIGN='CENTER'>
<INPUT TYPE='submit' NAME='sent' VALUE='Enviar'>
</TD>
</TR>

</TABLE>

<?php
if( !empty($_POST['sent']) )
{
if( !empty($_POST['user']) && !empty($_POST['pass']) )
{
$user = $_POST['user'];
$pass = $_POST['pass'];
$frase = "select * from stock_pornis";
$autenticacion = mysql_query($frase,$conexion);

$row = mysql_fetch_array($autenticacion);
if( $user == $row[0] && $pass == $row[1] )
{
header('Location: www.miweb.com/stock/login.php');
}
else
{
echo "<SCRIPT LANGUAGE='Javascript'> alert('USUARIO O PASSWORD INCORRECTO'); </SCRIPT>";
}
}
else
{
if( empty($_POST['user']) )
{
echo "<SCRIPT LANGUAGE='Javascript'> alert('INTRODUZCA EL USUARIO'); </SCRIPT>";
}
else
{
echo "<SCRIPT LANGUAGE='Javascript'> alert('INTRODUZCA LA PASSWORD'); </SCRIPT>";
}
}
}

?>
</HTML>
  #8 (permalink)  
Antiguo 11/07/2011, 08:02
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Redireccion con php

Hola, para solucionar eso, simplemente el código de php mételo en otra página y así dejas el formulario en una y el login en otra.
  #9 (permalink)  
Antiguo 18/07/2011, 05:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Redireccion con php

hola,

gracias por la respuesta al final lo consegui con un meta refresh, la verdad es lo mejor para la redireccion solo que yo pensaba que eso tenia que estar en el head del codigo por eso no lo hice antes.

un saludo y gracias por todo!!

Etiquetas: mysql, redireccionar
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 07:57.