Foros del Web » Programando para Internet » PHP »

Problemas con función redirigir

Estas en el tema de Problemas con función redirigir en el foro de PHP en Foros del Web. Hola! Estoy haciendo un sitema de usuarios. Hay una parte que corresponde al link tramitar_usuario.php en la cual contienen las funciones para los diferentes accioens ...
  #1 (permalink)  
Antiguo 28/10/2011, 22:07
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Problemas con función redirigir

Hola!
Estoy haciendo un sitema de usuarios. Hay una parte que corresponde al link tramitar_usuario.php en la cual contienen las funciones para los diferentes accioens login, logout, etc. Hago un include a un archivo http.php con el siguiente código, y no me redirige y me dá error, qué puedo hacer??

Código HTML:
<?php
function redirect($url) {
 if (!headers_sent()) {
  header('Location: http://' . $_SERVER['HTTP_HOST'] .
   dirname($_SERVER['PHP_SELF']) . '/' . $url);
 } else {
  die('Could not redirect; Headers already sent (output).');
 }
}
?> 
  #2 (permalink)  
Antiguo 28/10/2011, 22:13
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Problemas con función redirigir

¿Tenemos que adivinar el error que te dá?

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 28/10/2011, 22:48
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con función redirigir

ahí lo tienes: "Could not redirect; Headers already sent (output)."
  #4 (permalink)  
Antiguo 28/10/2011, 23:23
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Problemas con función redirigir

¿Y si nos muestras el código donde ejecutas la función? Segun tu función, el error indica que ya se enviaron los headers, es decir, ya hubo una salida HTML
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 29/10/2011, 03:39
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: Problemas con función redirigir

sabes como funciona el if? por que segun tu codigo el error no es un error, me explico, tu as puesto:

Código PHP:
<?php
function redirect($url) {
 if (!
headers_sent()) { //si esto es verdad te manda al link de abajo
  
header('Location: http://' $_SERVER['HTTP_HOST'] .
   
dirname($_SERVER['PHP_SELF']) . '/' $url);
 } else { 
//si lo de arriba no es asi hace que haga esto.
  
die('Could not redirect; Headers already sent (output).');
 }
}
?>
entonces la pregunta es la siguiente sabes si se cumple la condicion if?? si no es asi mira haber si se cumple y si no se cumple hay esta el error. espero haberte ayudado aunque nose mucho pero....

y lo que te an dixo segun lo que pusiste en el else la redirecion o los datos que se an de cumplir y existen, pero claro eso lo as puesto tu.
  #6 (permalink)  
Antiguo 29/10/2011, 07:33
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con función redirigir

Ahí va el código de tramitar_usuario:

Código HTML:
Ver original
  1. if (isset($_REQUEST['action'])) {
  2.  switch ($_REQUEST['action']) {
  3.   case 'Login':
  4.    if (isset($_POST['email'])
  5.      and isset($_POST['passwd']))
  6.    {
  7.     $sql = "SELECT user_id,access_lvl,name " .
  8.         "FROM cms_users " .
  9.         "WHERE email='" . $_POST['email'] . "' " .
  10.         "AND passwd='" . $_POST['passwd'] . "'";
  11.     $result = mysql_query($sql,$conn)
  12.      or die('Could not look up user information; ' . mysql_error());
  13.  
  14.     if ($row = mysql_fetch_array($result)) {
  15.      session_start();
  16.      $_SESSION['user_id'] = $row['user_id'];
  17.      $_SESSION['access_lvl'] = $row['access_lvl'];
  18.      $_SESSION['name'] = $row['name'];
  19.     }
  20.    }
  21.    redirect('index.php');
  22.    break;
  23.  
  24.   case 'Logout':
  25.    session_start();
  26.    session_unset();
  27.    session_destroy();
  28.  
  29.    redirect('index.php');
  30.    break;
  31.  
  32.   case 'Create Account':
  33.    if (isset($_POST['name'])
  34.      and isset($_POST['email'])
  35.      and isset($_POST['passwd'])
  36.      and isset($_POST['passwd2'])
  37.      and $_POST['passwd'] == $_POST['passwd2'])
  38.    {
  39.     $sql = "INSERT INTO cms_users (email,name,passwd) " .
  40.         "VALUES ('" . $_POST['email'] . "','" .
  41.         $_POST['name'] . "','" . $_POST['passwd'] . "')";
  42.  
  43.     mysql_query($sql,$conn)
  44.      or die('Could not create user account; ' . mysql_error());
  45.  
  46.     session_start();
  47.     $_SESSION['user_id'] = mysql_insert_id($conn);
  48.     $_SESSION['access_lvl'] = 1;
  49.     $_SESSION['name'] = $_POST['name'];
  50.    }
  51.    redirect('index.php');
  52.    break;

Gracias por las respuestas, pero ando perdido... Alguien busca el fallo?

Etiquetas: redirigir, usuarios
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 16:37.