Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO No funciona header("Location: www.sitio.com/pagina.html")

Estas en el tema de No funciona header("Location: www.sitio.com/pagina.html") en el foro de PHP en Foros del Web. ¿ Que estoy haciendo mal? Cita: Se queda en el archivo php y no regresa a mi html, quiero que me mande mensaje de datos ...
  #1 (permalink)  
Antiguo 17/05/2013, 10:34
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
No funciona header("Location: www.sitio.com/pagina.html")

¿ Que estoy haciendo mal?

Cita:
Se queda en el archivo php y no regresa a mi html, quiero que me mande mensaje de datos enviados depues de insertar los datos en MySQL y que regrese a mi html limpiando los campos.
Formulario en HTML
<form action="action.php" method="post" style="width:90%" >

<label class="etiqueta">Nombre*</label>
<input type="text" name="nombre" class="rounded" required placeholder="Nombre"><br>
<label class="etiqueta">Apellido Paterno*</label>
<input type="text" name="appat" class="rounded" required placeholder="Apellido Paterno"><br>
<label class="etiqueta">Apellido Materno*</label> ...etc.


Codigo en PHP

$result = mysql_query($query);
if (! $result){
/*echo 'La consulta SQL contiene errores.'.mysql_error();*/
exit;
}else {
header("Location: ".$_SERVER['HTTP_SERVER'].$_POST['back']."");
exit;
/*echo "DATOS ENVIADOS CORRECTAMENTE.' <a href='http://www.freightliner.mobi/registro.html'>Volver</a>";*/
/*echo '<p> Tu mensaje ha sido enviado </ p>';*/

/*echo ' <script type="text/javascript" LANGUAGE=javascript> window.history.go(-1) </SCRIPT> ';*/
/*echo "<br><center>DATOS ENVIADOS CORRECTAMENTE..</center>";
header('Refresh: 2; url=registro.html');*/
};
  #2 (permalink)  
Antiguo 17/05/2013, 10:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

A menos que imprimas algo, exista HTML o algún espacio antes de usar header() no deberías tener problemas, sin embargo nos es complicado adivinar si ese es todo el código que usas.

De igual forma si no tienes activado el reporte de errores jamás te vas a enterar de un posible error.

O ver si obtienes algo así: PHP:¿Por qué me sale "Warning: Cannot modify header information - headers already sent by (output started at 1:2) in 3 on line 4"?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/05/2013, 10:48
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

Este es el action.php que estoy usando

<html>
<body>
<?php
$username="xxxx";
$password="xxxx";
$database="DB";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");
$nombre=$_POST['nombre'];
$appat=$_POST['appat'];
$apmat=$_POST['apmat'];
$dir=$_POST['dir'];
$mail=$_POST['mail'];
$tel=$_POST['tel'];
$cel=$_POST['cel'];
$emp=$_POST['emp'];
$puesto=$_POST['puesto'];
$url=$_POST['url'];
$dist=$_POST['dist'];
$desde=$_POST['desde'];
$marcas=$_POST['marcas'];
$tamano=$_POST['tamano'];
$fecha=$_POST['fecha'];
$columbia=$_POST['columbia'];
$m2=$_POST['m2'];
$fl360=$_POST['fl360'];
$post=$_POST['post'];
$finan=$_POST['finan'];
$evento=$_POST['evento'];
$semi=$_POST['semi'];
$noti=$_POST['noti'];
$compo=$_POST['compo'];

$query = "INSERT INTO `registro` (`nombre`, `ap-pat`, `ap-mat`, `direccion`, `email`, `tel`, `cel`, `empresa`, `puestoempresa`, `url`, `distribuidor`, `clientedesde`, `marcas`, `paquetevehi`, `fecha`, `columbia`, `m2`, `fl360`, `postventa`, `fiancial`, `eventos`, `seminuevos`, `noticias`, `componentes`, fechahora )
VALUES ('$nombre', '$appat', '$apmat', '$dir', '$mail', '$tel', '$cel', '$emp', '$puesto', '$url', '$dist', '$desde', '$marcas', '$tamano', '$fecha', '$columbia', '$m2', '$fl360', '$post', '$finan', '$evento', '$semi', '$noti', '$compo', now())";

$result = mysql_query($query);
if (! $result){
/*echo 'La consulta SQL contiene errores.'.mysql_error();*/
exit;
}else {
header("Location: www.mipagina.com/mihtml.html");
}

?>
</body>
</html>
  #4 (permalink)  
Antiguo 17/05/2013, 10:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

Desde luego que está mal lo que haces, consulta el enlace que te pase en mi respuesta anterior para que entiendas lo que haces mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/05/2013, 10:51
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

en el código de html me faltó poner el submit

<input type="submit" class="rounded" name="enviar">

Ya le puse muchas cosas en el php para regresar a mi html y nada...

No sé que está mal, o si me falta configurar algo en mi hosting..

Ya puse varios ejemplos que he encontrado en internet, la mayoría con header Location y nada...
  #6 (permalink)  
Antiguo 17/05/2013, 10:54
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

http://www.php.net/manual/es/function.header.php


Recuerde que header() debe ser llamado antes de mostrar nada por pantalla, etiquetas HTML, líneas en blanco desde un fichero o desde PHP. Es un error muy común leer código con funciones como include o require, u otro tipo de funciones de acceso de ficheros que incluyen espacios o líneas en blanco que se muestran antes de llamar a la función header(). Sucede el mismo problema cuando se utiliza un solo fichero PHP/HTML.
  #7 (permalink)  
Antiguo 17/05/2013, 11:11
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

Clarooo...
Ya había visto este link http://www.php.net/manual/es/function.header.php pero no puse atención, y es que mi código de php tiene encabezado de <html>
<body> y cierra ambos, ese es todo el problema, se los puso Dreamweaver..
Ya los quité y jala sin problema, ahora mi pregunta es si puedo poner un mensaje de datos enviados corretamente antes de el header Location, ejemplo:

echo '<p>Your message has been sent!</p>';
header( "Location: http://www.mipagina.com/registro2.html" );

esto si se puede hacer ?? o tampoco ?
que delicado resultó ser php jajaja...
  #8 (permalink)  
Antiguo 17/05/2013, 11:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

No, eso no puedes hacerlo, lee bien la nota del manual.

Y no, PHP no es "sensible" simplemente debes aprender a trabajar con él, es cuestión de entender como funciona HTTP básicamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 17/05/2013, 11:24
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

OK, muchas gracias..
Realmente soy nuevo en php y como bien dices, hay que aprender a usarlo.

Créeme que busco ejemplos en internet y la mayoría con excepción de las etiquetas html que yo tenía en el php todos tienen un mensaje de datos enviados o datos registrados, etc. con un echo y después viene la sentencia header Location.

Eso me hace pensar que debería funcionar, como te comento más de un ejemplo que vi, así está.
Prueba de ello es esta página:

http://www.tangledindesign.com/blog/how-to-create-a-contact-form-using-html5-css3-and-php/
  #10 (permalink)  
Antiguo 17/05/2013, 11:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

Pues no, en dicha enlace que colocas no hay nada referente a header(), ¿o a qué te refieres?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 17/05/2013, 11:29
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

En ese ejemplo únicamente utilizan el echo y no el header Location, pero de algún sitio copié el ejemplo del echo y después el header location.

Sin embargo, haciendo referencia al documento, no debe existir un mensaje o etiqueta html antes del header Location.

Por lo tanto el ejemplo que te mandé no debe de funcionar.
  #12 (permalink)  
Antiguo 17/05/2013, 11:33
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No funciona header("Location: www.sitio.com/pagina.html")

Pues muchas gracias por tu ayuda.

Abusando de tu amabilidad, donde puedo encontrar un ejemplo de como enviar mensaje de datos enviados, ya regresa a la página anterior (html) pero sería bueno mandar un mensaje de datos enviados correctamente..
Como puedo hacer eso?

Etiquetas: formulario, html, mysql, registro, 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 11:29.