Foros del Web » Programando para Internet » PHP »

No encuentro el problema

Estas en el tema de No encuentro el problema en el foro de PHP en Foros del Web. Por mas vueltas que le doy (quitar, poner, cambiar) algo pasa que acabo de resolverlo. Sobre todo hay un problema y es que es la ...
  #1 (permalink)  
Antiguo 03/07/2010, 07:32
 
Fecha de Ingreso: julio-2010
Mensajes: 24
Antigüedad: 13 años, 9 meses
Puntos: 0
No encuentro el problema

Por mas vueltas que le doy (quitar, poner, cambiar) algo pasa que acabo de resolverlo. Sobre todo hay un problema y es que es la primera vez que manejo PHP. Os cuento, tengo un formulario "nombre, mail, url, y mensaje" con una validacion en jquery. Una vez rellenado lo requerido "nombre, mail y mensaje", y aun asi me lo sigue pidiendo, pero en vez de por el javascript por el propio php. Si elimino esa parte del php el error es otro.
Este es el php "procesar.php":
Código PHP:
Ver original
  1. <?php
  2. # Guardo en la variable los campos del form
  3. $nombre = $_POST['nombre'];
  4. $email = $_POST['email'];
  5. $url = $_POST['url'];
  6. $mensaje = $_POST['mensaje'];
  7.  
  8. # Verifico que los campos se hallan completado
  9. if ($nombre == "" AND $email == "" AND $mensaje == "") {
  10.   # Muestro mensaje de error
  11.  echo 'Debe introducir los datos, Nombre, Mail y Mensaje';
  12. }
  13.  
  14. # Caso contrario, procedo a enviar el email
  15. else{
  16.   $header = 'From: ' . $email . " \r\n";
  17.   $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  18.   $header .= "Mime-Version: 1.0 \r\n";
  19.   $header .= "Content-Type: text/plain";
  20.  
  21.   $mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
  22.   $mensaje .= "Su e-mail es: " . $email . " \r\n";
  23.   $mensaje .= "url: " . $_POST['url'] . " \r\n";
  24.   $mensaje .= "mensaje: " . $_POST['mensaje'] . " \r\n";
  25.   $mensaje .= "Enviado el " . date('d/m/Y', time());
  26.  
  27.   $para = '[email protected]';
  28.   $asunto = 'Contacto desde Pagina Web';
  29.  
  30.   if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
  31.     echo 'El mensaje fue enviado!';
  32.   }
  33.   else {
  34.     echo 'Error inesperado. El mensaje no se envio.';
  35.   }
  36. }
  37. ?>
El script en HTLM:
Código HTML:
Ver original
  1. <script type="text/javascript" src="js/validable.js" ></script>
  2.    
  3.     <script type="text/javascript" >
  4.     var filters = {
  5.             requerido: function(el) {return ($(el).val() != '' & $(el).val() != -1);},
  6.             email: function(el) {return /^[A-Za-z\.][A-Za-z0-9_\.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/.test($(el).val());},
  7.         };  
  8.     </script>
Y el body en HTML:
Código HTML:
Ver original
  1. <form name="form.validable" class="validable" action="procesar.php">
  2.                 <p><label><input name="nombre" id="nombre" class="requerido min:3:" title="Introduzca su nombre" size="250" /></label></p>
  3.                 <p><label><input name="email" id="email" class="requerido email" title="Introduzca su email" size="50"/></label></p>
  4.                 <p><label><input name="url" id="url" class="url" title="" size="50"/></label></p>
  5.                 <p><label><textarea name="mensaje" id="mensaje" class="requerido mensaje" rows="48" cols="12"></textarea></label></p>
  6.                 <p><label><input class="submit" type="submit" name="submit" value="" /></label></p>
  7.             </form>
Código Javascript:
Ver original
  1. $.extend({
  2.         /* PARAMOS LA EJECUCIÓN*/
  3.         stop: function(e){
  4.         if (e.preventDefault) e.preventDefault();
  5.         if (e.stopPropagation) e.stopPropagation();
  6.     },
  7.     /* PERSONALIZAMOS LA SALIDA POR PANTALLA */
  8.     alert: function(str) {
  9.         alert(str);
  10.     }
  11. });
  12.  
  13.  
  14. $(document).ready(function(){
  15.  
  16.     $("form.validable").bind("submit", function(e){
  17.         if (typeof filters == 'undefined') return;
  18.         $(this).find("input, textarea, select").each(function(x,el){
  19.             if ($(el).attr("className") != 'undefined') {
  20.         $(el).removeClass("error");
  21.             $.each(new String($(el).attr("className")).split(" "), function(x, klass){
  22.                 if ($.isFunction(filters[klass]))
  23.                     if (!filters[klass](el))  $(el).addClass("error");
  24.             });
  25.             }
  26.         });
  27.         if ($(this).find(".error").size() > 0) {
  28.             $(this).stop(e || window.event);
  29.             return false;
  30.         }
  31.         return true;
  32.     });
  33. });
Y el CSS po si hace falta:
Código CSS:
Ver original
  1. textarea{
  2. border: 1px dashed #fff;
  3. width: 348px;
  4. height: 156px;
  5. background-color: #6E6E6E;
  6. color: #fff;
  7. }
  8. input{
  9. color: #fff;
  10. border: 1px dashed #fff;
  11. padding-top: 6px;
  12. padding-bottom: 6px;
  13. width: 350px;
  14. background-color: #6E6E6E;
  15. }
  16. input.submit{
  17. background: url(images/botton_submit.png) bottom left no-repeat;
  18. width: 88px;
  19. height: 39px;
  20. border: none;
  21. }
  22. input.error {
  23. background-color:#5B1818;
  24. }
  25. textarea.error {
  26. background-color:#5B1818;
  27. }
Por si quereis ver la web [URL="http://www.joselmerino.com"]http://www.joselmerino.com[/URL]
  #2 (permalink)  
Antiguo 03/07/2010, 07:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: No encuentro el problema

Hola

Ponle un método al form

Cita:
<form name="form.validable" class="validable" action="procesar.php">
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 03/07/2010, 09:03
 
Fecha de Ingreso: julio-2010
Mensajes: 24
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: No encuentro el problema

Cita:
Iniciado por Adler Ver Mensaje
Hola

Ponle un método al form



Suerte
Perfecto Adler. Me imaginaba que era algo tan sencillo como eso. He añadido method="post" y funciona.
Gracias.

Etiquetas: encuentro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:12.