Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema para redireccionar con php

Estas en el tema de Problema para redireccionar con php en el foro de PHP en Foros del Web. Hola a todos, bueno, deciros que soy nuevo y este es mi primer mensaje!! . He creado una base de datos y un formulario php ...
  #1 (permalink)  
Antiguo 04/03/2015, 18:52
 
Fecha de Ingreso: marzo-2015
Mensajes: 2
Antigüedad: 9 años, 1 mes
Puntos: 0
Problema para redireccionar con php

Hola a todos, bueno, deciros que soy nuevo y este es mi primer mensaje!!. He creado una base de datos y un formulario php en mi web para que las personas puedan mandarme mensajes y se guarden en mi base de datos, hasta ahí bien, los comentarios funcionan perfectamente y llegan a la base de datos de forma correcta. El problema viene con este código:

include("config.php") ;
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
mysql_select_db($database) or die ("error2".mysql_error());
mysql_query ("INSERT INTO `xxxnosta_comentarios`.`comentarios` (`NOMBRE`, `EMAIL`, `COMMENT`, `ENTRY`) VALUES ('$_POST[NOMBRE]', '$_POST[EMAIL]', '$_POST[COMMENT]', '$_POST[ENTRY]') ");

$url = $_POST[URL];
header ("Location:$url");
exit();

El header me da error continuamente y no se porque, lo que quiero es que redireccione a la página de donde se escribió el comentario ¿alguien me puede ayuadar por favor? gracias
  #2 (permalink)  
Antiguo 04/03/2015, 18:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema para redireccionar con php

¿Es posible que compartas el mensaje de error o es nuestra obligación adivinar?

¿Ya consulta el manual acerca de cómo se usa header()?

Es decir, debes colocar un espacio después de "Location:", so, por favor consulta el manual.

Adicionalmente, ¿será que tu error se parezca a esto?

http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/03/2015, 19:36
 
Fecha de Ingreso: marzo-2015
Mensajes: 2
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema para redireccionar con php

Si perdona el código de error se me olvidó copiarlo, el error es este:

Advertencia: No se puede modificar la información de cabecera - cabeceras ya enviado por (la producción empezó a /home/xxxnosta/public_html/rikki-six/sendcomment.php:6) en /home/xxxnosta/public_html/rikki-six/sendcomment.php en la línea 13.

¿Te refieres a ponerle con este espacio?:

("Location: $url");

Lo cierto es que era por mero interés, porque en realidad es mejor que no redireccione a la misma página porque entonces la persona se quedará con la incertidumbre de saber si me ha llegado el mensaje. Es mejor que en la página donde se envia ponga un mensaje así como:
"TU MENSAJE SE HA ENVIADO CORRECTAMENTE, VOLVER A LA PÁGINA" o algo por el estilo... lo único que como me daba error quería saber porque era. La verdad que acabo de empezar con PHP no se prácticamente nada...lo único que he conseguido es crear la base de datos en mi host y el formulario en mi web, pero me sacas de ahí y estoy perdido. Ahora lo que estoy intentando hacer es que los comentarios que ponen las personas aperezcan en la página, me han guiado un poco y me han dicho que ponga este código, aunque me debe de faltar algo porque no funciona:
<?php
include("config.php") ;
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
mysql_select_db($database) or die ("error2".mysql_error());
$result = mysql_query("SELECT * FROM `xxxnosta_comentarios`.`comentarios` WHERE ENTRY='$ENTRY'");
while($row = mysql_fetch_array($result)) {
echo "<b>".$row['NAME']."</b>"."<p>".$row['COMMENT']."</p>";
echo "<hr />";
}

?>
Es que claro, después de esto me quedo ¿ y ahora que? se que me falta algo pero no se que...gracias por la atención.
  #4 (permalink)  
Antiguo 04/03/2015, 19:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema para redireccionar con php

Por favor lee el enlace que te acerqué, ahí se explican las causas del error que recibes así como las posibles soluciones.

En breve, no puedes imprimir nada, absolutamente nada antes de usar header() como se explica en el manual: http://php.net/manual/es/function.header.php

So, el mensaje de error te está indicando en que lineas comenzó la salida, incluso un salto de linea o un espacio puede arruinar su funcionamiento.

Por favor, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/03/2015, 21:17
 
Fecha de Ingreso: agosto-2010
Ubicación: peru
Mensajes: 115
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema para redireccionar con php

hola no tienes que sobrar espasios o saltos del linia en el header sino te saldra error
revisa bien tu codigo
include("config.php") ;
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
mysql_select_db($database) or die ("error2".mysql_error());
mysql_query ("INSERT INTO `xxxnosta_comentarios`.`comentarios` (`NOMBRE`, `EMAIL`, `COMMENT`, `ENTRY`) VALUES ('$_POST[NOMBRE]', '$_POST[EMAIL]', '$_POST[COMMENT]', '$_POST[ENTRY]') ");
$url = $_POST[URL];
header ("Location:$url");
exit();
  #6 (permalink)  
Antiguo 05/03/2015, 10:04
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Problema para redireccionar con php

Si necesitás enviar headers luego de imprimir algo, podés usar ob_start(); y ob_end_flush();

Código PHP:
<?php
    ob_start
();

    
// Todo tu código php con el header("Location: blabla");

    
ob_end_flush();
?>
Saludos
  #7 (permalink)  
Antiguo 05/03/2015, 12:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema para redireccionar con php

Cita:
Iniciado por GeekGirl Ver Mensaje
Si necesitás enviar headers luego de imprimir algo, podés usar ob_start(); y ob_end_flush();
Sí, pero eso sería un "hack" y no una solución real.

Es decir, es un "hack" porque entonces no se comprende el problema y entonces se le "arregla" de manera indirecta.

Sin embargo eso podría ocultar posibles errores ya que con ob_start() te "comes" toda la salida, y si ahí sucede algo ni te enteras.

Yo jamás recomendaría usar hacks para "solucionar" este tipo de problemas, que suceden más por falta de compresión que por "error de código", es cuestión de diseño.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 06/03/2015, 06:23
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Problema para redireccionar con php

Totalmente pateketrueke. Yo le ofrecí una solución rápida, no dije que fuera lo más prolijo ni lo mejor :P

Etiquetas: formulario, mysql, redireccionar, select, sql
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 03:24.