Hipervínculo

Hola, mi duda es la siguiente:
He construido una página index.htm con el dreamweaver, en la que incluyo un formulario para recoger datos de contacto, el cual me lo manda a mi mail mediante un archivo php.
El formulario me funciona perfectamente, ahora lo que quiero hacer es que a la vez que me manda la información a mi mail, redireccione a la persona que me manda sus datos a otra página que NO he construido yo.
¿Cómo puedo hacer el hipervínculo en el botón enviar?.
Muchas gracias. Un saludo.
1

1 Respuesta

52.300 pts. Siempre aprendiendo, es lo que hay ;)
No se puede crear un hipervínculo, pero sí abrir la página que deseas usando PHP y Javascript.
Dentro del
<head>
Pones el código Javascript, podría ser el siguiente:

<script language="JavaScript">
newwindow=window.open("pagina.html","","width=315,height=160");
newwindow.creator=blank;
</script>

Esto te lo abriría en una nueva ventana, si quieres que te la abra en las misma cambia "blank" por "self".
Posteriormente colocas un:
if (isset($enviar) && $error==false)
   {
<span style="white-space: pre;"> </span> newwindow;
   }

else
   {

Procesas el error
}
Esto hace que al pulsar enviar se verifique si hay errores en el formulario (te aconsejo que los proceses siempre y en caso de que haya errores muestres de nuevo el formulario). Si no hay errores y se ha enviado, abrirá la página que quieres, si hay errores no se abrirá (si no lo haces así procesando el error nunca sabrá el usuario que ha enviado en formulario correctamente).

Hola, gracias por aclararme parte de la duda. Ahora ya tengo claro que no puedo hacer un hipervínculo en el botón de enviar.
Te dejo el código en .php y te agradecería me dijeras lo que debo cambiar para redireccionarlo a una página que no he creado yo.
<?php
$EmailFrom = "[email protected]";
$EmailTo = " [email protected] ";
$Subject = "Prospeccion";
$name = Trim(stripslashes($_POST['name']));
$mail = Trim(stripslashes($_POST['mail']));
// validacion
$validationOK=true;
if (Trim($name)=="") $validationOK=false;
if (Trim($mail)=="") $validationOK=false;
if (Trim($Telephone)=="") $validationOK=false;
if (!$validationOK) {
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=index.htm\">
";
  exit;
}
// prepare email body text
$Body = "";
$Body .= "Nombre: ";
$Body .= $name;
$Body .= "\n";
$Body .= "E-mail: ";
$Body .= $mail;
$Body .= "\n";
$Body .= "Teléfono: ";
$Body .= $Telephone;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=index.htm\">
";
}
else{
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=index.htm\">
";
}
?>
Muchas gracias. Un cordial saludo.
Según lo tienes estructurado lo deberías de colocar de la siguiente manera:
if ($success){ 
  print " 
<meta http-equiv=\"refresh\" content=\"0;URL=
http://www.otrapagina.com/\">
"; 

else{ 
  print " 
<meta http-equiv=\"refresh\" content=\"0;URL=index.htm\">
"; 
}

Si no te está funcionando es probablemente porque no asignas valor al $Telephone:
$name = Trim(stripslashes($_POST['name'])); 
$mail = Trim(stripslashes($_POST['mail'])); 

AQUÍ falta asignarle el valor al $Telephone, por lo que $validationOK siempre es false

// validacion 
$validationOK=true; 
if (Trim($name)=="") $validationOK=false; 
if (Trim($mail)=="") $validationOK=false; 
if (Trim($Telephone)=="") $validationOK=false;

El error podría ser ese, siempre te vuelve a index.htm porque $validationOK nunca es true.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas