Foros del Web » Programando para Internet » PHP »

formularios - pag de agradecimientos

Estas en el tema de formularios - pag de agradecimientos en el foro de PHP en Foros del Web. Hola! Estoy haciendo un formulario en php y necesitaria saber cómo puedo después, de que el usuario envie el formulario, que vaya a una página ...
  #1 (permalink)  
Antiguo 31/07/2003, 10:47
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
formularios - pag de agradecimientos

Hola!

Estoy haciendo un formulario en php y necesitaria saber cómo puedo después, de que el usuario envie el formulario, que vaya a una página de agradecimientos...

En "action" del form he puesto: "<?php echo $PHP_SELF ?>" y ésto lo que hace es enviarme correctamente el fomulario a mi email pero me carga otra vez la misma página... Y luego anteriormente en el código php he puesto un include("links-gracias.php"); y lo que hace es cargarme otra vez la missma página y añadirme además el contenido de "links-gracias.php". Pero lo que en realidad quiero es que no aparezca el contenido de la página actual sino sólamente el de "links-gracias.html".

No sé si existe un código en php que permita despues de enviar el formulario al email ir automáticamente depués a otra página, en mi caso una página de agradecimientos. Podríais ayudarme?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 31/07/2003, 11:01
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
pon algo de codigo....

para que recarge la web, o salte a otra...

<META HTTP-EQUIV="Refresh" CONTENT="2;URL=home.php">


y lo que pides de recargar la web incluyendo otro texto o otro HTML

Código PHP:
function cabeceraHTML(){
require(
"theme/admin.theme.up.php");
echo <<< HTML
HTML;
}
cabeceraHTML(); 
-----------------------------------------------------------------------

la funcion cabecera la copias al principio de tu script... y luego
solo tienes que hacer la llamada a esa funcion... lo que hara es
volver a recargar la page desde el principio.... llama a esa funcion
con la otra linea de codigo....

cabeceraHTML();

despues de la carga de la cabecera puedes poner

un include(""); o un requiere.... jejeje

espero a ver ayudado...
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 31/07/2003 a las 11:08
  #3 (permalink)  
Antiguo 31/07/2003, 11:49
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Muchas gracias! que rapidez!! pero no ha funcionado

He probado con lo que me has dicho de:

<META HTTP-EQUIV="Refresh" CONTENT="2;URL=gracias.php">

y lo que hace es recargar la página esa y ni siquiera da tiempo de rellenar el fomulario jejeje.

Y luego con lo de la funcion de cabecera html me carga lo que pongo en require("gracias.php"); del codigo q me has dado pero no me quita el contenido de la página del formulario!

La pagina consiste en un listado de links y debajo hay un formulario donde el visitante puede mandarme, mediante un formulario, un link. Pues bien, cuando se envia el formulario (y utilizando el codigo que me has dado) se carga la misma página sin que aparezca el formulario pero sí el listado de links y además, debajo del mismo, el contenido de la página de "gracias.php" que metimos mediante el "require"...
Lo que quiero es que al enviarse el formulario se pase a la página de agradecimientos "gracias.php" Hay otra forma de hacerlo?

Gracias
  #4 (permalink)  
Antiguo 31/07/2003, 11:58
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Mas que código de php, es solo custion de ingenio.

Puedes hacer varias cosas, por ejemplo redireccionar a una página donde solo haya texto de agradecimiento, puedes usar el.

header("Location: http://www.tusitio.com/gracias.pghp");

o si quieres javascript. o simplemente crear en la misma página alguna condicón que te imprima con las gracias.

nuevo, mas cuidado con tus respuestas.
Cita:
<META HTTP-EQUIV="Refresh" CONTENT="2;URL=gracias.php">
Eso hace que despues de 2 segundo cargue la página.


Para ayudaret mejor, muestra el código, será mas facil orientarte.
Saludos

Última edición por biblio; 31/07/2003 a las 12:01
  #5 (permalink)  
Antiguo 31/07/2003, 12:01
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
a ver...

principio de fichero
Código PHP:
function cabeceraHTML(){
echo <<< HTML
aqui va el codigo HTML de tu web.-.-- pones tu theme o algo parecido.. es lo que cargara... yo en mi caso.. cargo mi theme vacio... osea sin resultados de nada... vacio... o limpio como lo quieras llamar
HTML;

luego solo tienes que hacer la llamada a esa funcion con
Código PHP:
cabeceraHTML();
require(
"tu fichero.html"); 
y despues incluir lo que quieras... un fichero externo de php o html... lo que quieras... yo lo uso asi.. y me funciona...igual me estoy equivocando en algo... pero creo que no... ya que esto es bastante simple... que alguien me corrija si es asi
__________________
3w.valenciadjs.com
3w.laislatv.com
  #6 (permalink)  
Antiguo 31/07/2003, 13:36
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Desacuerdo

Pues no se me logra Gracias a los 2. Y no es nada del otro mundo...

Pongo aqui como es el código de la página donde esta el formulario "formulario.php"

<html>
<head>
</head>
<body>
--aqui pongo una tabla con enlaces (todo en html)--

<?php
// Si se ha cubierto y enviado el formulario lo procesamos
if ($submit == 'Enviar')
{
// Poner aquí la dirección de correo electrónico a la
// que se remitirá el contenido del formulario
$to = "[email protected]";
// Asunto del correo. También podríamos dejar que lo
// rellenase el usuario en el formulario
$subject = "link";
// Contenido del mensaje. Ponemos delante el
// remitente
$message = "Sitio: $URL\n\nURL banner: $URL banner\n\nIdioma: $idioma\n\nModalidad nautica: $deporte\n\nNombre del webmaster: $nombre\n\nEmail: $email\n";
// Cabecera del mensaje. No se verá, pero es necesario
// para que nos funcione todo bien
$headers = "From: $Nombre\nTo: Centro\nReply-To: $Email";
// Envío del mensaje
if (mail($to, $subject, $message, $headers))
{
// Ha funcionado
---aqui creo q hay q poner algo de lo q decis vosotros (creo)----

}
else
{
// No ha funcionado
print "<p>ERROR, ha debido introducir algún campo incorrectamente o lo ha dejado en blanco, TODOS los campos son obligatorios, por favor vuelva a intentarlo</p>";
print "<p><a href=javascript:history.back()>Volver</a></p>";
}
}
// Si no se ha procesado el formulario es que aún no lo hemos
// presentado, así que hagámoslo
else
{
?>

---------ahora viene el formulario--------

<form action="<?php echo $PHP_SELF ?>" method="post">
----------formulario en html--------
</form>

<?
}
?>


Despues cuando el visitante de al botón de "enviar" formulario debe aparecer seguidamente otra nueva página llamada "gracias.php" totalmente nueva y simple donde aparecen unas lineas de texto de agradecimiento con una imagen y un enlace para volver. El problema haciendo lo que me habéis dicho es que en la página nueva vuelven a aparecer la tabla de enlaces de links y debajo de esa tabla la página de agradecimientos "gracias.php" pero asi no lo quiero!! las tablas no deben aparecer! solo la nueva página "gracias.php" después de pulsar el botón de enviar formulario de "formulario.php"

Es asi de simple, no debe ser mu complicado... ojalá consigáis hallar la solución porque he probado varias cosas y nada.
  #7 (permalink)  
Antiguo 01/08/2003, 01:50
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
depues de esto:
print "<p><a href=javascript:history.back()>Volver</a></p>";
pon esto
header("Location: links-gracias.php");


Un Saludo
  #8 (permalink)  
Antiguo 01/08/2003, 05:58
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Desacuerdo

Gracias pero eso ya lo he probado como dijo biblio y sigue sin funcionar vuelve a aparecer la tabla que no quiero... y de todas formas eso habría que ponerlo debajo de donde he puesto en el código: "// Ha funcionado".

Simplemente deseo que al enviar el formulario se pase a una pag de agradecimientos en simple html...

Ya no sé que hacer para que funcione!! alguna sugerencia más?
  #9 (permalink)  
Antiguo 01/08/2003, 07:37
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
pues tiene que funcionar yo lo hago asi es mas creo que el scripts es el mismo

Un Saludo
  #10 (permalink)  
Antiguo 01/08/2003, 09:23
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta

Pues es imposible que funcione poniendolo como dices tu debajo de eso que me dices que está dentro de "// No ha funcionado" en else {} Seria en todo caso en "// Ha funcionado" y no va

Mi servidor está perfectamente configurado y funcionando porque he hecho otros formularios en PHP...

No sé si existe algún codigo efecto javascript que permita que al pinchar en "Enviar formulario" pase a la pag de agradecimientos, alguien sabe? O si hay alguna cosa más en PHP que permita hacerlo... O hay algo mal en el código que he puesto en el post de arriba? Gracias
  #11 (permalink)  
Antiguo 01/08/2003, 10:13
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
pedon claro tienes que poner dentro del if no del else...

Un Saludo
  #12 (permalink)  
Antiguo 01/08/2003, 12:25
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Prueba de este modo, no es tan dificil.

Código PHP:
<?php
if(isset($_POST['submit'])){
    
// haces alguna condición mas, y envias el correo.
    
if(mail($to$subject$message$headers)){//si se envia el correo redirigimos
        
header("Location: gracias.htm");
    }
}
?>
<html>
<head>
<title>Correo</title>
</head>
<body>
<form action="" method="post" name="form1" target="_self">
  <input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Saludos
  #13 (permalink)  
Antiguo 01/08/2003, 22:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Recuerden en usar preferentemente exit; tras una llamada a cabeceras "location" ..

Código PHP:
<?
header
("Location: gracias.htm");
exit;
?>
La cabecera header() de "Location" .. le "manda" al navegador la instrucción de que cambie la página que está viendo el cliente (el navegador) .. pero el flujo del proceso continua en el servidor (en el script PHP) ...

Creo que el 99.9% de ocasiones .. cuando enviamos esa cabecera al navegador es por qué queremos terminar la ejecución del script en curso y "lanzar" la ejecución de otro script (o página en general) .. He de ahí la instrucción exit; que termina el proceso del script (PHP) en ese punto de nuestro código.

En este caso .. al ser HTML lo que hay a continuación tal vez no plantee problemas .. pero si fuera código PHP que ejecutar (tal vez una consulta a una BD .. una lectura/escritura a un archivo de texto plano .. manejo de sesiones .. etc) si que plantearía problemas pues dicho código se ejecutaria (atendiendo a los condicionales y estructuras de control que usemos ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 07/08/2003, 01:59
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Nada, sigue sin funcionar
Creo que lo he colocado bien lo que ha dicho biblio y poniendo tb lo de cluster y tampoco... Aunque (por si acaso) mejor que me digas biblio donde tengo que insertar eso que me has dicho, osea en que parte del código que he puesto en el post de arriba, por favor.

Y si alguien puede poner un modelo de formulario que pase después a una pág de agradecimiento mejor y si acabamos antes y no estoy aqui dando la brasa todo el rato

Gracias.
  #15 (permalink)  
Antiguo 07/08/2003, 11:03
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
pues yo he probado todo lo que aqui se ha escrito y desde el mio. hasta el ultimo, funcionan todos, eso ya tiene que ser otra
cosa... yo no se ayudarte mas... sorry
__________________
3w.valenciadjs.com
3w.laislatv.com
  #16 (permalink)  
Antiguo 07/08/2003, 11:09
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
mmmm tu php se esta ejecutan como cgi en IIS o es apache?¿

Un Saludo
  #17 (permalink)  
Antiguo 08/08/2003, 08:21
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
Mensaje

En cgi supongo porque no he tenido que configurar apache aunque si que voy a hacer una base de datos proximamente para un sitio. Y con ésto no tiene que ver el problema porque ya digo que tengo otros formularios en PHP y funcionan perfectamente.

Si decís que funciona así (q a mi no me va desdeluego) pues mandarme un modelo vuestro del php de esas 2 pags: una la del formulario y la otra la cual es la pág. de agradecimientos. Porque yo ya he probado todo y es inútil y no puedo estar eternamente con ésto e incordiándoos, asi q os estaría muy agradecido si me mandárais un modelo a mi dirección de correo: [email protected]

Muchas gracias.
  #18 (permalink)  
Antiguo 08/08/2003, 09:21
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
jejejejjej si hubiera empezado preguntando eso estaria ya solucionado ya que el header location da problemas con el IIS mira prueba con esto :
Código PHP:
header("Redirect: 0, url=tupagina.php"); 
soloes reemplazar el location por el redirect, a ver si tenemos suerte

Un Saludo
  #19 (permalink)  
Antiguo 08/08/2003, 09:34
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
jorrrrrr modo cgi jorrrrr....
__________________
3w.valenciadjs.com
3w.laislatv.com
  #20 (permalink)  
Antiguo 10/08/2003, 14:04
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
jejejeje nadaaaaaaaaaaaaaa

He puesto eso q dices DINASEN asi:

if (mail($to, $subject, $message, $headers))
{
// Ha funcionado
header("Location: gracias.html");
exit;
}

tb he probado poniendolo con http Y TAMPOCO!
Creo que había que colocarlo ahi no? tb poniendo "exit;" despues y nada. Ya no se que hacer esto es fustrante...

Es curioso q me funcionen los otros formularios q tengo en php y este q solo quiero cambiarle una cosita de pasar a una pag de agradecimientos y no salga!!!

Se os ocurre alguna cosa más? porque yo ya estoy por los suelos!! O mandarme algun modelo vuestro q a vosotros si os funciona please, [email protected]
  #21 (permalink)  
Antiguo 11/08/2003, 02:10
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
mmmmmmm. si lo has puesto como yo puse no te pudo quedar como tu has puesto

seria asi :

header("Redirect: 0, url=tupagina.php");
Código PHP:
if (mail($to$subject$message$headers))
{
// Ha funcionado
//header("Location: gracias.html"); como tu lo tienes puesto
header("Redirect: 0, url=gracias.html");//como yo te comente
exit;

Un Saludo
  #22 (permalink)  
Antiguo 11/08/2003, 09:51
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 0
No va ni con redirec ni con location ni con la madre que lo inventó

Lo he puesto asi:

Código PHP:
  <?php
// Si se ha cubierto y enviado el formulario lo procesamos
if ($submit == 'Enviar')
{
    
// Poner aquí la dirección de correo electrónico a la
    // que se remitirá el contenido del formulario
    
$to "[email protected]";
    
// Asunto del correo. También podríamos dejar que lo
    // rellenase el usuario en el formulario
    
$subject "Water Sports Connection - ENCUESTA";
    
// Contenido del mensaje. Ponemos delante el
    // remitente
    
$message "Nombre: $nombre\n\nEdad: $edad\n\nPais: $pais\n\nNos conocen por: $conocimiento\n\nDeportes que practica el ussuario: $deportes acuaticos habituales\n\nPuntuacion al diseño: $diseño\n\nOpinion de la informacion: $info\n\nPuntuacion fondos, layouts y animacion: $diseño2\n\nOpinion de la navegacion: $navegacion\n\nOpinion del sitio y entorno: $opinion\n\nEl usuario recomienda sitio: $recomendar\n\nComentarios del visitante: $comentarios\n";
    
// Cabecera del mensaje. No se verá, pero es necesario
    // para que nos funcione todo bien
    
$headers "From: $Nombre\nTo: Centro\nReply-To: $Email";
    
// Envío del mensaje
    
if (mail($to$subject$message$headers))
    {
        
// Ha funcionado
header("Redirect: 0, url=gracias.html");//como yo te comente
exit;
    }
    else
    {
        
// No ha funcionado
        
print "<p>ERROR, ha debido introducir algún campo incorrectamente o lo ha dejado en blanco, TODOS los campos son obligatorios, por favor vuelva a intentarlo</p>";
        print 
"<p><a href=javascript:history.back()>Volver</a></p>";
    }
}
// Si no se ha procesado el formulario es que aún no lo hemos
// presentado, así que hagámoslo
else
{
?>
El formulario sigue funcionando pero NO pasa a la páagina de agradecimientos. Ya no sé que hacer, un siglo para una cosa tan simple Que desesperación... Alguien me manda un modelo por favor?
  #23 (permalink)  
Antiguo 11/08/2003, 10:07
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
la verdad es que si es raro vamos a probar una cosilla :
debajo de
Código PHP:
header("Redirect: 0, url=gracias.html");//como yo te comente
pon esto
echo "<br>paso de redireccionarme tio";
exit; 
Un Saludo
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:30.