Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Formulario que lleve a más de un link?

12 de marzo de 2017

Buenas! En mi web tengo un formulario de contacto que una vez concretada la acción te lleva al index. Mi duda es la siguiente: ¿Es posible hacer que dependiendo el valor númerico ingresado en un campo del formulario te lleve a una u otra página?

Por ejemplo:

Si la variable del campo del formulario #numerodepasajes es de valor 1 que tras enviar el form me lleve al link1 Si la variable del campo del formulario #numerodepasajes es de valor 2 que tras enviar el form me lleve al link2

Necesitaría hacer lo mismo del numero 1 al 20.

Entiendo que la modificación debería ir en esta parte del formulario usando IF pero no sé como hacerlo, tal vez alguien podría aproximarme un poco! Les dejo mi formulario:

<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_name2 = $_POST['cf_name2'];
$field_name3 = $_POST['cf_name3'];
$field_name4 = $_POST['cf_name4'];
$field_name5 = $_POST['cf_name5'];
$field_message = $_POST['cf_message'];
 
$mail_to = '[email protected]';
$subject = 'Message from a site visitor '.$field_name;
 
$body_message = 'From: '.$field_name."\n";
$body_message .= 'Email: '.$field_name2."\n";
$body_message .= 'Destino: '.$field_name3."\n";
$body_message .= 'Cantidad de pasajeros: '.$field_name4."\n";
$body_message .= 'Monto a abonar: '.$field_name5."\n";
$body_message .= 'Message: '.$field_message;
 
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_name2."\r\n";
 
$mail_status = mail($mail_to, $subject, $body_message, $headers);
 
if ($mail_status) {
if ($field_name1 == 1) {
header('Location: https://www.miweb.com');
} elseif ($field_name1 == 2) {
header('Location: https:/www.miweb2.com');
};
}
?>
php

Respuestas

#1

Si las URLs a las que redireccionas coinciden con el valor del $field_name1 tal y como muestras en tu ejemplo, entonces puedes hacer esto:

if ($mail_status) {
    header(sprintf('Location: https://www.miweb%d.com', $field_name1));
}

Si la relación entre $field_name1 y la URL a la que redireccionas es totalmente arbitraria, entonces tienes que definir un array con todos los valores y hacer algo así:

$urls = array(
    1 => 'https://www.miweb.com',
    2 => 'https://www.lo-que-sea.com',
    // ...
    20 => 'https://www.otra-url.com',
);
 
// ...
 
if ($mail_status) {
    header(sprintf('Location: %s', $urls[$field_name1]));
}

@javiereguiluz

12 marzo 2017, 19:57