Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/11/2012, 05:03
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Formulario PHP: Radio buttons, desplegable, envío.

Mas lento

Cita:
Pon en la segunda linea de enviar.php

echo "<pre>";
print_r($_POST);
echo "</pre>";


con ello verás que te llega del formulario.
Código PHP:
Ver original
  1. <?php
  2. echo "<pre>";
  3. print_r($_POST);
  4. echo "</pre>";
  5.     //Vamos a crear en primer lugar las variables de nuestro formulario (Todos los NAME del formulario)
  6.     $quiero = $_POST['quiero'];

con esto aparecera en pantalla el contenido del array $_POST con lo que podràs corregir el formulario para que llegue lo que quieres que llegue. Una vez funcione elimina esas lineas.

Cita:
Por ejemplo

<option value="Por un amigo!">Por un amigo!</option>

Te faltan los value de las option del desplegable, puede ser el mismo texto o un codigo (es lo mas normal)
Una corrección necesaria para el formulario, las options llevan el parametro value y eso es lo que el formulario manda. Lo normal es poner codigos, 1,2,3... que luego deberas traducir a su significado.

Cita:
Mira el manual de mail()
Bajo mail() tienes el link a la pagina del manual http://php.net/manual/es/function.mail.php.

Cita:
no tienes los parametros en el orden adecuado.
en el manual veras el orden de los parametros, tu misma has puesto un comentario en el script al respecto

Cita:
//Hay que enviarlo estrictamente en este orden:
pero el orden que pones y el que dice el manual NO es el mismo.

Código PHP:
Ver original
  1. mail($destinatario,$asunto,$mensaje,$header);
  2.  
  3.     $resultado='<p>Tu mensaje ha sido enviado correctamente. ¡Gracias!</p>';
  4.  
  5.     echo $resultado;

esto, con el orden correcto, va a retornar que el mail se ha enviado correctamente, pase lo que pase al ejecutar mail(), es decir se haya enviado o no el mail, lo que no es correcto... por ello te propongo el condicional.

Código PHP:
Ver original
  1. if(mail($destinatario,$asunto,$mensaje,$header)){
  2.    $resultado='<p>Tu mensaje ha sido enviado correctamente. ¡Gracias!</p>';
  3. }else{
  4.    $resultado='<p>Tu mensaje NO ha sido enviado correctamente. ¡Intentalo de nuevo!</p>';
  5. }
  6.     echo $resultado;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.