Búsqueda personalizada
Regístrate gratis para participar de los foros, o si ya estás registrado haz login.
| comentario del autor | Lun May 11, 2009 9:02 pm | |
|
Gracias, saludos |
||
| asistió a la solución | Lun May 18, 2009 1:52 am | |
|
Ahí checaremos que falla. Saludos |
||
| comentario del autor | Lun May 18, 2009 9:59 am | |
|
<? /* ------------------------------------------------------ Formular-Gateway-Script für mail to date / web to date (C) 2002 MultiMüller GmbH www.multimueller.de Agregados, mejoras y correcciones hechos por Pablo Lecce www.rhosting.com.ar Script para el filtrado contra ataques usando formularios tomado del sitio http://php-hispano.net/foros/PHP/15101 ------------------------------------------------------ */ // Funcion para prevenir el spam filtrando las cabeceras function ValidarDatos($campo){ //Array con las posibles cabeceras a utilizar por un spammer $badHeads = array("Content-Type:", "MIME-Version:", "Content-Transfer-Encoding:", "Return-path:", "Subject:", "From:", "Envelope-to:", "To:", "bcc:", "cc:"); //Comprobamos que entre los datos no se encuentre alguna de //las cadenas del array. Si se encuentra alguna cadena se //dirige a una página de Forbidden foreach($badHeads as $valor){ if(strpos(strtolower($campo), strtolower($valor)) !== false){ header("HTTP/1.0 403 Forbidden"); exit; } } } // Declaro como falsa la variable de plantillas para dejar que el programa la evalue $hayplantilla=false; $haygracias=false; // Declaro las variables de acumulacion de variables $reemplazar.=""; $cadenanueva.=""; $reemplazarencadena=array(); $cadenanuevaencadena=array(); // Evalua si se pasaron variables. Si es asi separa variables especificas y compila las otras. if (count(stripslashes($_POST))!=0){ $cuerpodelmensaje=""; while (list($key, $val) = each ($_POST)){ switch ($key){ case "recipient": $enviaraemail=$val; break; case "email": $emaildelqueenvia=$val; break; case "subject": $asunto=$val; break; case "redirect": $fgwreturnurl=$val; if($fgwreturnurl!=""){$haygracias=true;} break; case "plantilla": $plantilla=$val; if($plantilla!=""){$hayplantilla=true;} break; default: $keysinguionesbajos=ereg_replace("_"," ",$key); if($hayplantilla==true){ $reemplazar.=",{{".$key."}}"; $cadenanueva.=",".$val; } else { $cuerpodelmensajefinal.=$keysinguionesbajos.": ".$val."<br>"; } } } if (!$emaildelqueenvia){ echo "No se ha indicado una dirección de E-Mail. Presiona el boton del navegador para volver atras al formulario y colocarlo."; die;} if($hayplantilla==true){ $reemplazados=explode(",",$reemplazar); $cadenanuevaencadena=explode(",",$cadenanueva); $archivo = file($plantilla); $lineasdecadena = count($cadenanuevaencadena); $lineas = count($archivo); for($i=0; $i < $lineas; $i++){ $Cadena=$archivo[$i]; for( $j = 0; $j <= $lineasdecadena; $j++ ){ if(($reemplazados[$j]!="")&&($cadenanuevaencadena[$j]!="")){$Cadena=ereg_replace($reemplazados[$j],$cadenanuevaencadena[$j],$Cadena); } } $cuerpodelmensajefinal.=$Cadena; } } $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= "Content-Type:text/html; charset=iso-8859-1\r\n"; $headers .= 'To: '.$enviaraemail.'' . "\r\n"; $headers .= 'From: '.$emaildelqueenvia.' <'.$emaildelqueenvia.'>' . "\r\n"; if(@mail ($enviaraemail, $asunto, $cuerpodelmensajefinal, $headers)){if($haygracias==true){header("Location:".$fgwreturnurl);} else { echo "Mensaje enviado! Gracias por comunicarte con nosotros. Tu mensaje será respondido a la brevedad.<p> </p>Vuelve atrás para seguir disfrutando de la web";}} else { echo "No se ha podido enviar tu email. Por favor vuelve atras e intentalo nuevamente.";}}else{echo "Error: no se ha transferido ningún dato";die; } ?> Y la plantilla con las respuestas es la siguiente: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin título</title> <style type="text/css"> <!-- .Estilo2 {font-family: Arial, Helvetica, sans-serif; font-size: 12px;} --> </style> </head> <body> <p class="Estilo2">Datos del formulario completado por el usuario: </p> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="Estilo2"><strong>Nombre y Apellido: </strong></td> <td class="Estilo2">{{Pregunta_1}}</td> </tr> <tr> <td class="Estilo2"><strong>Curso: </strong></td> <td class="Estilo2">{{Pregunta_2}}</td> </tr> <tr> <td class="Estilo2"><strong>Asunto: </strong></td> <td class="Estilo2">{{Pregunta_3}}</td> </tr> <tr> <td height="16" class="Estilo2"><strong>Mensaje: </strong></td> <td><p class="Estilo2">{{Pregunta_4}}</p> </td> </tr> </table> </body> </html> |
||
| asistió a la solución | Lun May 18, 2009 1:44 pm | |
|
$keysinguionesbajos=ereg_replace("_"," ",$key); Si deseas enviame el código y archivos completos a mi mail para que lo suba a mi servidor y haga pruebas y saque el problema los datos estan en mi web. aquí te postearé la respuesta. |
||
| comentario del autor | Lun May 18, 2009 5:07 pm | |
|
|
||
| solución | Mar May 19, 2009 5:00 pm | |
|
parte del formulario.php original <table width="482" align="center" border="0"> <tr> <td width="472"> <form id="miformulario" name="miformulario" method="post" action="sendmail.php"> <p> <input name="recipient" type="hidden" id="recipient" value="ezeluc8@hotmail.com" > </p> <p align="justify">Si quieres contactar con nosotros solo tienes que completar el siguiente formulario y tu mensaje será respondido a la brevedad. <input name="subject" type="hidden" id="subject" value="Usuario Centro de Estudiantes!" > <input name="redirect" type="hidden" id="redirect" > <input name="plantilla" type="hidden" id="plantilla" value="plantilladesendmail.html" > </p> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="26%"><br> Nombre y Apellido: </td> <td width="74%"> <p><label><br> <input name="Pregunta_1" id="Pregunta_1" > </label><label> </label></p></td> </tr> <tr> <td><br> Curso: </td> <td><label><br> <select name="Pregunta_2" id="Pregunta_2" style="WIDTH: 146px"> <option selected>Primero</option> <option>Segundo</option> <option>Tercero</option> <option>Cuarto Agrotécnica</option> <option>Cuarto Mecánica</option> <option>Cuarto Química</option> <option>Quinto Agrotécnica</option> <option>Quinto Mecánica</option> <option>Quinto Química</option> <option>Sexto Agrotécnica</option> <option>Sexto Mecánica</option> <option>Sexto Química</option> <option>Septimo Mecánica</option> <option>Septimo Química</option> </select> <br>De acuerdo al nuevo plan de estudio. </label></td> </tr> <tr> <td><br> Asunto:</td> <td><label><br> <input name="Pregunta_3" id="Pregunta_3" > </label></td> </tr> <tr> <td> <br> Tu E-mail:</td> <td><label><br> <input name="email" id="email" > </label></td> </tr> <tr> <td>Mensaje:</td> <td><label><br><textarea id="Pregunta_4" style="WIDTH: 211px; HEIGHT: 70px" name="Pregunta_4" rows="3" cols="22" type="text"></textarea> <br>*No usar la coma (,) en el texto. <br> De lo contrario el texto no será enviado. </label></td> </tr> </table> <p> <label> <input type="submit" name="Submit" value="Enviar" > </label> </p> </form> </td></tr></table> Cambios realizados Se elimino la línea <input name="plantilla" type="hidden" id="plantilla" value="plantilladesendmail.html" > La plantilladesendmail.html es la que trunca tu mensaje, al eliminar la linea anterior este archivo ya no se usa... Se cambio cada campo como por ejemplo: <input name="Pregunta_1" id="Pregunta_1" > Por <input name="Nombre" id="Pregunta_1" > Se realizó un cambio en el Input del botón de la siguiente forma: <input type="submit" name="Submit" value="Enviar" > Por <input type="submit" value="Enviar" > Para que este no se envíe como parte del mensaje. Esto te da excelentes resultados sacrificando el formato que generaba plantillad |
||