Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2009, 09:10
Avatar de DragonX
DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.433
Antigüedad: 22 años, 10 meses
Puntos: 177
Validar formulario del lado del servidor

Hola amigos, como estan?

La verdad soy de madera en esto del PHP, pero antes de preguntar investigué mucho pero de nada sirve ya que realmente no entiendo mucho este gran lenguaje...

Les cuento un poco cuál es la consulta, actualmente en mi sitio urbanchip en la sección de contacto tengo un formulario con una validación en JS y se que no es lo mejor, por eso quiero hacer la validación de forma correcta, del lado del servidor.....pero sinceramente se me hace imposible porque no lo entiendo......

A ver si me pueden dar una manito con esto ya que estoy medio complicado, desde ya mil gracias!!!!!!!

Les dejo el contacto.php y el mail.php a ver si me pueden ayudar...

contacto.php

Código php:
Ver original
  1. <form action="mail.php" method="post" id="f1" name="f1">
  2.             <fieldset>
  3.               <h3>Datos personales</h3>
  4.               <input type="hidden" name="url" value="urbanchip.com/" />
  5.               <p><label for="nombre">Nombre</label><input name="nombre" id="nombre" value="Nombre (obligatorio)" size="22" tabindex="1" type="text" onblur="if(this.value == '') { this.value='Nombre (obligatorio)'}" onfocus="if (this.value == 'Nombre (obligatorio)') {this.value=''}" /></p>
  6.               <p><label for="mail">Mail</label><input name="mail" id="mail" value="Mail (obligatorio)" size="22" tabindex="2" type="text" onblur="if(this.value == '') { this.value='Mail (obligatorio)'}" onfocus="if (this.value == 'Mail (obligatorio)') {this.value=''}" /></p>
  7.               <p><label for="pais">Pa&iacute;s</label><input name="pais" id="pais" value="Pais" size="22" tabindex="2" type="text" onblur="if(this.value == '') { this.value='Pais'}" onfocus="if (this.value == 'Pais') {this.value=''}" /></p>
  8.               <h3>¿Qu&eacute; servicio desea contratar?</h3>
  9.               <div id="servicioscontrata">
  10.               <p class="colform">
  11.                 <input type="checkbox" name="desarrollo_web" id="desarrollo_web" />Desarrollo Web<br />
  12.                 <input type="checkbox" name="seo" id="seo" />Posicionamiento SEO<br />
  13.                 <input type="checkbox" name="redaccion" id="redaccion" />Redacci&oacute;n de contenidos<br />
  14.               </p>
  15.               <p class="colform">
  16.                 <input type="checkbox" name="psd_html" id="psd_html" />de PSD a HTML<br />
  17.                 <input type="checkbox" name="consultoria_web" id="consultoria_web" />Consultor&iacute;a Web<br />
  18.                 <input type="checkbox" name="consultoria" id="consultoria" />Consultor&iacute;a Accesibilidad<br />
  19.               </p>
  20.               </div>
  21.               <h3>Consulta</h3>
  22.               <p><label for="asunto">Subject</label><input name="asunto" id="asunto" value="Asunto (obligatorio)" size="22" tabindex="3" type="text" onblur="if(this.value == '') { this.value='Asunto (obligatorio)'}" onfocus="if (this.value == 'Asunto (obligatorio)') {this.value=''}" /></p>
  23.               <p><label for="mensaje">Message</label><textarea name="mensaje" id="mensaje" cols="61" rows="10" tabindex="3"></textarea></p>
  24.               <h3>Unos datos extras</h3>
  25.               <p>Cuentenos, sin obligaciones, como nos conoci&oacute;</p>
  26.                       <select name="nosconocio" id="nosconocio">
  27.                 <option selected="selected">¿C&oacute;mo nos conoci&oacute;?</option>
  28.                 <option>Recomendaci&oacute;n</option>
  29.                 <option>Google/Yahoo/MSN</option>
  30.                 <option>Aviso publicitario</option>
  31.                 <option>Por un amigo</option>
  32.                       </select>
  33.               <p><input value="Enviar consulta" id="sender" type="submit" /></p>
  34.             </fieldset>
  35.           </form>

y por otro lado les dejo la función mail php que utilizo:

Código php:
Ver original
  1. <?php
  2.  
  3. $host     = "localhost";
  4. $user     = "[email protected]";
  5. $pass     = "xxxx";
  6. $from     = "[email protected]";
  7. $fromName = "Urbanchip";
  8. $to       = "[email protected]";
  9. $toName   = "Urbanchip";
  10.  
  11. $asunto   = "Contacto WEB";
  12. $date     = date ("j/m/y");
  13. $time     = date ("G a");
  14. $URLError = "error.html";
  15. $URLOk    = "ok.html";
  16.  
  17. require("class.phpmailer.php");
  18.  
  19. $phpmailer = new PHPMailer();
  20.  
  21. $phpmailer->IsSMTP();                                   // send via SMTP
  22. $phpmailer->Host     = $host; // SMTP servers
  23. $phpmailer->SMTPAuth = true;     // turn on SMTP authentication
  24. $phpmailer->Username = $user;  // SMTP username
  25. $phpmailer->Password = $pass; // SMTP password
  26.  
  27. $phpmailer->From     = $from;
  28. $phpmailer->FromName = $fromName;
  29.  
  30. //Direccion del reseptor
  31. $phpmailer->AddAddress($to, $toName);    // optional name
  32.  
  33.  
  34. $phpmailer->WordWrap = 50;                              // set word wrap
  35.  
  36. $phpmailer->IsHTML(true);                               // send as HTML
  37.  
  38. //INI - Preparo el body
  39. $msg = "Correo enviado desde Web Site el día $date a las $time.<br><br>";
  40.  
  41. if ($_SERVER['REQUEST_METHOD'] == "POST") {
  42.   foreach ($_POST as $key => $value) {
  43.     $msg .= ucfirst ($key) ." : ". $value . "<br>";
  44.   }
  45.  
  46. }else {
  47.   foreach ($_GET as $key => $value) {
  48.     $msg .= ucfirst ($key) ." : ". $value . "<br>";
  49.   }
  50. }
  51. //END - Preparo el body
  52.  
  53. $phpmailer->Subject  =  $asunto;
  54. $phpmailer->Body     =  $msg;
  55.  
  56. if(!$phpmailer->Send()){
  57.    header ("Location:$URLError");
  58. }
  59.  
  60. header ("Location:$URLOk");
  61.  
  62.  
  63. ?>

por favor cualquiera que me pueda ayudar y necesite ver algo mas haganmelo saber estoy medio loco con el tema....

un abrazo y gracias!!!!
__________________
Desarrollos dosLotos
Calendario Maya, Meditación, Osho