Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2010, 07:32
diezdedos
 
Fecha de Ingreso: julio-2010
Mensajes: 24
Antigüedad: 13 años, 10 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]