Enviar opción del select por php

Estoy dando los últimos toques a un formulario y me he encontrado con una duda que no consigo resolver.
Dentro del formulario (html) tengo un select simple con el siguiente código:
<div class="controls">
<select id="mi_select" name="mi_select" class="span12">
<option value="Departament">Select Department</option>
<option value="General">General</option>
<option value="Commercial">Commercial</option>
<option value="Sales">Sales</option>
<option value="Commercial">Deposit</option>
<option value="Sales">Withdraw</option>
</select>
</div>
Este código, obviamente, está dentro de su etiqueta form correspondiente, con method post.
Ahora bien, cuando hago el envío por php llegan al correo todos los datos extraídos menos la selección del select.
Este es mi código php:
<?php
if(!empty($_POST['firstname']) AND
!empty($_POST['lastname']) AND
!empty($_POST['useremail']) AND
!empty($_POST['usermessage'])){
$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['firstname']."\r\n";
$tema="Contact from website";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Firstname:</strong></td>
<td width='80%' align='left'>$_POST[firstname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Lastname:</strong></td>
<td width='80%' align='left'>$_POST[lastname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Email:</strong></td>
<td width='80%' align='left'>$_POST[useremail]</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Departament:</strong></td>
<td align='left'>$_POST[mi_select]</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Message:</strong></td>
<td align='left'>$_POST[usermessage]</td>
</tr>
</table>
";
@mail($to,$tema,$mensaje,$headers);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-send.html'>";
} else {
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-error.html'>";
}
?>
¿Qué estoy haciendo mal?
He probado con $_REQUEST pero tampoco ha servido.
Cuando me llega el mensaje con los datos del formulario en lugar de
Aparecer la opción que había marcado en el select aparece la palabra
Array.
Firstname: Inés
Lastname: MCh
Email: [email protected]
Departament: Array
Message: Prueba

1 Respuesta

Respuesta

Creo que puede tratarse de un conflicto con configuración de magic quotes en tu servidor.

siempre utiliza las comillas esecillas para leer los parámetros POST o GET  "$_POST['parameter'] ", con esto no derivas tener problemas.

<?php
if(!empty($_POST['firstname']) AND
!empty($_POST['lastname']) AND
!empty($_POST['useremail']) AND
!empty($_POST['usermessage'])){
$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['firstname']."\r\n";
$tema="Contact from website";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Firstname:</strong></td>
<td width='80%' align='left'>".$_POST['firstname']."</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Lastname:</strong></td>
<td width='80%' align='left'>".$_POST['lastname']."</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Email:</strong></td>
<td width='80%' align='left'>".$_POST['useremail']."</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Departament:</strong></td>
<td align='left'>".$_POST['mi_select']."</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Message:</strong></td>
<td align='left'>".$_POST['usermessage']."</td>
</tr>
</table>
";
// test
echo '<pre>';
print_r($_POST);
echo '<br>';
echo '<br>'.$mensaje;
echo '</pre>';
exit();
@mail($to,$tema,$mensaje,$headers);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-send.html'>";
} else {
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-error.html'>";
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas