Foros del Web » Programando para Internet » PHP »

Alguien me ayuda a redirigir como los Dioses (porfa!)?

Estas en el tema de Alguien me ayuda a redirigir como los Dioses (porfa!)? en el foro de PHP en Foros del Web. Hola a todos/as. Estoy en un proyecto en el cual tengo una página llamada "modeloSubPagina2.php" donde se presenta un artículo informativo. Al final de dicho ...
  #1 (permalink)  
Antiguo 06/10/2008, 09:10
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Exclamación Alguien me ayuda a redirigir como los Dioses (porfa!)?

Hola a todos/as.

Estoy en un proyecto en el cual tengo una página llamada "modeloSubPagina2.php" donde se presenta un artículo informativo.

Al final de dicho artículo, hay un pequeño y muy simple formulario que pemrite agregar un comentario a los visitantes, y también una zona en donde se van mostrando ordenadamente los comentarios que otros usuarios ya hicieron. (un buen ejemplo es www.taringa.net).

En fin, yo quiero que cuando los visitantes hayan agregado su comentario, se le muestre en la ventana dle navegador un texto como "Su comentario fue enviado con éxito" y que la cabo de unos 2 o 3 segundos, el usuario sea redirigido a "modeloSubPagina2.php".

Como no quise complicarme mucho la vida, y porque no son demasiados artículos los que posee el site entero, decidí pasar un campo oculto llamado "id" y recibirlo en el archivo "envia_formulario.php" con HTTP_POST['id], de forma que he intentado de muchas maneras que el usuario sea redirigido a la página $id.



¿se entiende?



Gracias a todos.
  #2 (permalink)  
Antiguo 06/10/2008, 09:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

con php puedes usar el sleep() para que se espere y luego redirigir con header()
ejemplo:
Código PHP:
sleep(3);//se espera tres segundos
header('LOCATION modeloSubPagina2.php');//redirigimos 
aunque tambien puedes usar html
Código HTML:
<META HTTP-EQUIV="refresh" CONTENT="3; url=modeloSubPagina2.php"> 
cambia el 3 por los segundos que quiereas que se espere.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 06/10/2008, 09:38
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Ok. Pero, en el uso del "header", pueod incluir variables? O sea, del tipo

sleep(3);//se espera tres segundos
header('LOCATION $id');//redirigimos
  #4 (permalink)  
Antiguo 06/10/2008, 09:43
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

mmmmmmmmm

Se supone que a tu pagina en donde ves el articulo lo llamas asi

http://tuhost/modeloSubPagina2.php?idArticulo=1

Lo que tendrias que hacer es cuando agregas el comentario, en el submit del formulario que enviara los datos del comentario poner asi

<form method="POST" action="procesaComentario.php?idArticulo= <?php echo $idArticulo ;?>"

Luego en tu archivo procesaComentario.php le tendrias que redirigir a la pagina de articulos :

header("Location:modeloSubPagina2.php?idAritculo=" .$idArticulo);

O Sino le imprimes un mensaje diciendo que se grabo correctamente y luego desde Javascript lo redireccionas a la pagina de articulo siempre pasandole como parametro el Id del articulo.

Espero haberte ayudado, cualquier duda solo preguntame.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #5 (permalink)  
Antiguo 06/10/2008, 11:32
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Me sale esto che... no se que puede ser. Me fijo mientras... peor me vendría bien una mano


Cita:
Comentario Enviado Con Exito.
Espere Unos Segundos...
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\Scripts\envia_comentario.php:25) in D:\xampp\htdocs\Scripts\envia_comentario.php on line 27

Espere por favor, será redireccionado en 5 segundos.
  #6 (permalink)  
Antiguo 06/10/2008, 11:36
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Antes de la función header(), no debe haber ninguna salida al navegador, contenido HTML, cookies ni nada por el estilo, verifica que no se este imprimiendo algo antes del header().




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #7 (permalink)  
Antiguo 06/10/2008, 11:45
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Exacto antes del header no puedes enviar nada al navegador, ahora si quieres hacer el redireccionamiento, pero quieres mostrar un mensaje de confirmacion de si se agrego el comentario, pues tendrias que hacer el redireccionamiento con JavaScript.

La función de redireccionar en JavaScript es como la siguiente :

Código:
 function redireccionar() {
    setTimeout("location.href=formulario.htm", 5000);//Aqui debes poner a que pagina quieres redireccionar
}
Y en tu etiqutea body deberias llamarlo:

Código:
<body onLoad"redireccionar()">
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)

Última edición por stone_neo; 06/10/2008 a las 12:03
  #8 (permalink)  
Antiguo 06/10/2008, 12:04
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Pues... he verificado y creo que no he impreso nada. Por las dudas, aquí les pongo el código completo del archivo "envia_comentario.php".

Código PHP:
<?php 
$fecha 
date("d/m/Y");
$paginita "papapa";
if(isset(
$HTTP_POST_VARS["nick"]) 
&& isset(
$HTTP_POST_VARS["comentario"]))

{
if(
$HTTP_POST_VARS["comentario"] != "")
{
if(
$HTTP_POST_VARS["nick"] == "")
{
$nickNuevo "anonimo";
}
else
{
$nickNuevo $HTTP_POST_VARS["nick"];
}
$idNoticia $HTTP_GET_VARS["idPagina"];
$ref $_SERVER['HTTP_REFERER'];
$comentarioNoticia $HTTP_POST_VARS["comentario"];
include(
"config.php");
$conectar mysql_connect($host$usuario$contra);
mysql_select_db("vistaoeste1"$conectar);
mysql_query("INSERT INTO comentarios (fecha, pagina, comentario, email, nombre, edad) VALUES ('".$fecha."', '".$idNoticia."', '".$comentarioNoticia."', '".$email."', '".$nickNuevo."', '".$edad."')");

?>
<html> 
<head>
<?php header("Location:modeloSubPagina2.php");?>
</head> 
<body>
<?php 
echo "Comentario Enviado Con Exito.<BR>Espere Unos Segundos... <BR>";
echo 
"ref = ".$ref
echo 
"<BR>";
echo 
"idPagina = ".$idNoticia;
?>
</body> 
</html>
<?
}
else
{
echo 
"Debe Introducir Un Comentario.";
}
?>
Y aquí le spongo lo que me muestra le navegador cuando cliqueo para que envíe el formulario: (noten que he colocaod unas líneas para control, en donde se imprimen los valores de unas variables, a fin de comprobar que se reciben y envían correctamente entre el formulario de comentarios y el archivo de proceso. No se cómo resolver el tema de las barras "\'modeloSubPagina2.php\'")

Cita:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\Scripts\envia_comentario.php:29) in D:\xampp\htdocs\Scripts\envia_comentario.php on line 29
Comentario Enviado Con Exito.
Espere Unos Segundos...
ref = http://localhost/modeloSubPagina2.php
idPagina = \'modeloSubPagina2.php\'
  #9 (permalink)  
Antiguo 06/10/2008, 12:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

a eso le llamas nada??

...imprimir no necesariamente es usar echo, he aquí otro error explicado en las FAQ's (y que nadie lee)



demás, si redireccionas... para que imprimir algo??

lo de las barras, es otro error también documentado de magic_quotes

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 06/10/2008, 12:12
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: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Cita:
<html>
<head>
<?php header("Location:modeloSubPagina2.php");?>
Carlojas dijo:
Antes de la función header(), no debe haber ninguna salida al navegador, contenido HTML, cookies ni nada por el estilo, verifica que no se este imprimiendo algo antes del header().

Y al parecer no entendiste. Por el heco de que las etiquetas <html> y demas estar fuera de etiquetas PHP, estas SE IMPRIMEN ...

No se puede imprimir nada antes de header.

Tampoco se cual es el afan de mostrar que sera redireccionado en 3 segundos. Redirecciona y ya. No es como si al usuario le importara mucho. O le dara mucho tiempo para leer.
  #11 (permalink)  
Antiguo 06/10/2008, 12:17
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Uy que bolu.... pense que no podían haber echos nada mas. Ok. Perdonen la ignorancia. Y y ahabía leído algo sobre magic quotes pero no me acordaba donde. Estoy a full buscando.
  #12 (permalink)  
Antiguo 06/10/2008, 12:18
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 0
Respuesta: Alguien me ayuda a redirigir como los Dioses (porfa!)?

Me sentí vapuleado... no lo vuelvo a hacer. Lo prometo. Y gracias, me olvidaba...
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 08:43.