Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/06/2014, 07:16
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Crear nueva variable PHP

Cita:
Iniciado por sergi_ruiz Ver Mensaje
Muchas gracias por vuestras respuestas. He hecho el cambio en los "name" y la variable $telf sigue siendo nula.

Sin embargo, esto no explica por qué anteriormente las tres variables $name $address y $comment funcionaban bien.
Porque seguramente cambiastes los nombres de las variables que recogías en PHP y no en el formulario, dando la sensación errónea de que lo que nos mostrastes sí te funcionaba, pero no es así, es imposible indicar que recoges $_POST['name'] mientras que en el formulario la clave es contact-name.

Cita:

He eliminado la clase del formulario (form contact-form):

Código HTML:
Ver original
  1. <form method="post" action="contact2.php" class="form contact-form">

Y me ha funcionado correctamente con todas las variables, aunque la respuesta final al usuario que rellena el formulario no aparece como debiera. Normalmente aparece un borde verde sobre el formulario que da el mensaje de ok o el de error. Al quitar la clase form se envían correctamente todas las variables pero el mensaje de ok/error lo da en una página en blanco.

Esto me ha hecho sospechar que el problema tenga algo que ver con la hoja de estilos. ¿Es posible que el .css controle alguno de estos parámetros?

Estas son las partes del CSS que afectan al form:

Código CSS:
Ver original
  1. form,
  2.     fieldset {
  3.         padding:0;
  4.         margin:0;
  5.         border:0;
  6.     }
  7.  
  8.  
  9.  
  10. #message p{margin: 0;}
  11.     .error_message{
  12.         padding: 5px 10px!important;
  13.         border-width: 2px !important;
  14.         background:rgba(247,0,0,0.5) !important;
  15.         margin: 0 0 15px;
  16.     }
  17.     .ok_message{
  18.         padding: 10px 15px!important;
  19.         background:rgba(57,143,20,0.5) !important;
  20.         margin: 0 0 15px;
  21.     }
  22.  
  23.  
  24. .formRow{
  25.         width:100%;
  26.         margin:0 0 1.5em;
  27.     }
  28.     .formRow:after{
  29.         content:"";
  30.         display:block;
  31.         clear:both;
  32.     }
  33.     .textField{
  34.         width:100%;
  35.         overflow:hidden;
  36.         border:1px solid #505a68;
  37.         background:#798493;
  38.         font-weight:bold;
  39.         padding:0.5em;
  40.        
  41.         -webkit-border-radius: 2em;
  42.         -moz-border-radius: 2em;
  43.         border-radius: 2em;
  44.                
  45.         -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
  46.         -moz-box-sizing: border-box;    /* Firefox, other Gecko */
  47.         box-sizing: border-box;
  48.        
  49.         -moz-box-shadow:    0 1px 1px rgba(255,255,255,0.36);
  50.         -webkit-box-shadow: 0 1px 1px rgba(255,255,255,0.36);
  51.         box-shadow:         0 1px 1px rgba(255,255,255,0.36);
  52.     }
  53.     input,
  54.     textarea{
  55.         display:block;
  56.         background:#fff;
  57.         font:1em/1.214em Arial, Helvetica, sans-serif;  /*14px/17px*/
  58.         color:#444;
  59.         width:100%;
  60.         padding:0.75em 1.5em;
  61.         border:1px solid #505762;
  62.         margin:0;
  63.        
  64.         resize:none;
  65.        
  66.         -moz-box-shadow:    inset 0 0px 3px rgba(0,0,0,0.75);
  67.         -webkit-box-shadow: inset 0 0px 3px rgba(0,0,0,0.75);
  68.         box-shadow:         inset 0 0px 3px rgba(0,0,0,0.75);
  69.        
  70.         -webkit-border-radius: 1.5em;
  71.         -moz-border-radius: 1.5em;
  72.         border-radius: 1.5em;
  73.                
  74.         -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
  75.         -moz-box-sizing: border-box;    /* Firefox, other Gecko */
  76.         box-sizing: border-box;         /* Opera/IE 8+ */
  77.     }
  78.     textarea {
  79.         overflow:auto;
  80.         height:10.812em;
  81.     }
  82.     * +html input,
  83.     * +html textarea,
  84.     * +html .textField{
  85.         width:99%;
  86.         padding:0;
  87.     }
  88.     ::-webkit-input-placeholder {
  89.         color:    #444;
  90.     }
  91.     :-moz-placeholder {
  92.         color:    #444;
  93.     }


Perdonad por el desorden. He sacado del CSS las partes que creo que afectan a las etiquetas del formulario, pero es posible que haya alguna que no haya adjuntado.

Muchas gracias de nuevo.

¡Saludos!
CSS es para dar estilos, no afecta a las variables GET y POST. De echo hasta donde sé, no afecta a ninguna variable entre el usuario y el servidor y ni del lado del usuario ni del lado del servidor.

un <form> no admite class como atributo. Supongo que la lógica está en que un formulario es único o por lo menos no se debería mostrar más de 1 vez en una misma recogida de datos por parte del usuario. Para dar estilo a un form utiliza el atributo ID y en CSS lo especificas así

Código CSS:
Ver original
  1. #id_del_form{
  2. //estilos para el form
  3. }

Otro apunte, dudo mucho que un nombre de cualquier atributo que contenga espacios funcione en HTML. Eso provocará que el formulario no funcione correctamente o, lo más probable, que no funcione en absoluto.

Saludos.
__________________
Ayúdame a hacerlo por mi mismo.