PHP - Formulario que lleve a más de un 1 link?

 
Vista:
sin imagen de perfil

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

Publicado por pablo (1 intervención) el 12/03/2017 18:53:24
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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 = 'prueba@gmail.com';
$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');
        };
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

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

Publicado por kip (877 intervenciones) el 13/03/2017 00:32:02
Hola, en lugar de usar tantos if yo lo haria de esta manera:

1
2
3
4
5
6
7
8
9
10
11
$array_direcciones = array( 1 => 'http://www.web1.com',
                            2 => 'http://www.web2.com',
                            3 => 'http://www.web3.com',
                            4 => 'http://www.web4.com',
                            5 => 'http://www.web5.com',
                            6 => 'http://www.web6.com'
                        );
 
if ($mail_status) {
    header("Location: ".$array_direcciones[$field_name1]);
}

Creo un array con diferentes valores por cada indice y si $field_name1 vale 5 entonces accedere al valor del array con el indice 5 que seria http://www.web5.com.

Deberias crear tantos elementos en el array y los indices como sean los valores que $field_name1 que esperes.....

No se si es lo que buscabas, de todas formas pruebalo

Nos cuentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

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

Publicado por Brayan (76 intervenciones) el 13/03/2017 14:35:22
La idea de arriba es genial, pero tambien puedes usr la funcion swtich yo lo uso bastante para sesiones, pero tambien es util en estos casos
ejemplo:

1
2
3
4
5
6
7
8
9
10
11
switch ($field_name) {
    case 1:
        header('Location: https://www.miweb1.com');
        break;
    case 2:
        header('Location: https://www.miweb2.com');
        break;
    case 3:
        header('Location: https://www.miweb3.com');
        break;
}

Al igual que dice @kip haces la cantidad de case segun el numero de field_name que necesites.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar