Foros del Web » Programando para Internet » PHP »

No me funciona el formulario de Email! Pueden ayudarme!?¿

Estas en el tema de No me funciona el formulario de Email! Pueden ayudarme!?¿ en el foro de PHP en Foros del Web. Hola Gente, hace unas semanas ize unas cuantas preguntas sobre otros temas.. Esta vez esta muy jodi..., ya no se que le pasa.. Haber si ...
  #1 (permalink)  
Antiguo 30/05/2010, 18:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Pregunta No me funciona el formulario de Email! Pueden ayudarme!?¿

Hola Gente, hace unas semanas ize unas cuantas preguntas sobre otros temas..
Esta vez esta muy jodi..., ya no se que le pasa..
Haber si ustedes ven el error! Gracias!

Os explico la estructura:

-en la raiz tengo el Post (en php)
-y en una carpeta "qui-som" tengo el formulario (en html) con javascript. Y una paguina de retorno en la misma carpeta


codigo del post:
Código:
<?php

function postvars($key) {

	// Liefert die POST-Variablen unabhängig von den Magic Quotes

	if (isset($_POST[$key])) {
		if (get_magic_quotes_gpc()) {
			return (stripslashes($_POST[$key]));
		} else {
			return ($_POST[$key]);
		}
	}
	else {
		return ("");
	}
}

function quoted_printable_encode($input) {

	// MIME-Encoding

    $line_max = 76;
	$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
	$lines = split("\n", $input);
	$eol = "\n";
	$escape = "=";
	$output = "";

	for ($j=0;$j<count($lines);$j++) {
		$line = $lines[$j];
		$linlen = strlen($line);
		$newline = "";
		for($i = 0; $i < $linlen; $i++) {
			$c = substr($line, $i, 1);
			$dec = ord($c);
			if ( ($dec == 32) && ($i == ($linlen - 1)) ) { 
				$c = "=20"; 
			} elseif ( ($dec == 61) || ($dec==46) || ($dec < 32 ) || ($dec > 126) ) { 
				$h2 = floor($dec/16); $h1 = floor($dec%16); 
				$c = $escape.$hex["$h2"].$hex["$h1"]; 
			}
			if ( (strlen($newline) + strlen($c)) >= $line_max ) { 
				$output .= $newline.$escape.$eol; 
				$newline = "";
			}
			$newline .= $c;
		} 
		$output .= $newline;
		if ($j<count($lines)-1) $output .= $eol;
	}
	return trim($output);
}

function createHTMLMail() {

	// erzeugt eine HTML-Mail

	global $_POST;
	reset($_POST);
	
	$i=1;
	
	$mymail="";
	
	// Header
	
	$mymail.= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
	$mymail.= "<html>\n";
	$mymail.= "<head>\n";
	
	$mymail.="<META http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n";
	
	$mymail.= "</head>\n";
	$mymail.= "<body bgcolor=\"#ffffff\" text=\"#333333\" link=\"#333333\">\n";

	$mymail.= "<style>\n";
	$mymail.= "  td {font-family : Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 11px; color : #333333; }\n";
	$mymail.= "</style>\n";
	$mymail.="<table width=100% border=0 cellpadding=4>\n";

	$mymail.="<tr>";
	$mymail.="<td colspan=2><strong>The following message has been sent:</strong></td>\n";
	$mymail.="</tr>\n";
	
	while (list($key, $val) = each ($_POST))
	{
		switch ($key)
		{
			case "x":
			case "y":
			case "fgwemail":
			case "fgwsubject":
			case "fgwreturnurl":
				break;
	   		default:
				$mymail.="<tr>";
				$mymail.="<td><strong>".$key.":</strong></td>\n";
				$mymail.="<td width=100%>".$val."</td>\n";
				$mymail.="</tr>\n";
		}
	}

	$mymail.="</table>\n";

	return $mymail;
}

function createTextMail() {

	global $_POST;
	reset($_POST);

	$mymail="";
	while (list($key, $val) = each ($_POST))
	{
		switch ($key)
		{
			case "x":
			case "y":
			case "fgwemail":
			case "fgwsubject":
			case "fgwreturnurl":
				break;
	   		default:
				$mymail.=$key." ";
				$mymail.=$val."\n";
		}
	}
	
	$mymail.="\n";

	return $mymail;
}
	
function createMimeMail() {
	$mymime="This is a multi-part message in MIME format.\n\n";
	$mymime.="----WEB2DATEGATEWAY\n";
	$mymime.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
	$mymime.="Content-Transfer-Encoding: quoted-printable\n\n";
	$mymime.=quoted_printable_encode(createTextMail())."\n";
	$mymime.="----WEB2DATEGATEWAY\n";
	$mymime.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
	$mymime.="Content-Transfer-Encoding: quoted-printable\n\n";
	$mymime.=quoted_printable_encode(createHTMLMail())."\n";
	$mymime.="----WEB2DATEGATEWAY--\n";
	return $mymime;
}

function deSlash(&$element) {

	// Für Stripslash

	$element=stripslashes($element);
}

// Hauptprogramm

$fgwemail=postVars("fgwemail");
$fgwsubject=postVars("fgwsubject");
$fgwreturnurl=postVars("fgwreturnurl");
$whitelist=array("[email protected]", "[email protected]");

if ($fgwemail!='[email protected]') {

	if (!in_array(strtolower($fgwemail), $whitelist)) {
		die("ERROR: ILLEGAL RETURN-EMAIL-ADDRESS");
	}
	
	if (!$fgwemail) {
		die ("ERROR: NO RETURN-EMAIL-ADDRESS");
	}
	if (!$fgwreturnurl) {
		die ("ERROR: NO RETURN-URL");
	}

	mail ($fgwemail, $fgwsubject, createMimeMail(), "MIME-Version: 1.0\nContent-Type: multipart/alternative;\n\tboundary=\"--WEB2DATEGATEWAY\"\nX-Mailer: web to date Gateway Version 1.0");	
}
header("Location: ".$fgwreturnurl);


?>
  #2 (permalink)  
Antiguo 30/05/2010, 18:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: No me funciona el formulario de Email! Pueden ayudarme!?¿

Codigo del formulario:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>QUI SOM</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="expires" content="0">
<meta name="author" content="">
<meta name="description" content="">
<meta name="keywords" lang="" content="">
<meta name="generator" content="Web2Date BASIC">
<link rel="stylesheet" type="text/css" href="../assets/s.css">
<link rel="stylesheet" type="text/css" href="../assets/ssb.css">
</head>

<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000"  bottommargin="0" rightmargin="0">
<table width="575" cellpadding="0" cellspacing="0" border="0">
  <tr>
<td width="575" valign="top"><table cellpadding="0" cellspacing="0" border="0">
  
  <tr>
    <td colspan="3"><img src="../images/ph000001985b0d93483.gif" width="138" height="50" alt="" border="0"></td>
  </tr>
  
  <tr>
    <td width="659"><h2><a name="0000009d890116607"></a></h2></td>
    <td width="30" background="../images/pline.gif">&nbsp;</td>
    <td></td>
    </tr>
  <tr>
    <td valign="top"><span class="tipodeletrajuan">C. Museu, 30-32, 1r 2a<br>08912 Badalona<br><br>
      <b>Per contactar amb nosaltres ompliu el formulari:</b><br><br></span><span class="normal"><strong>Franc Sal&oacute; i Tejedor</strong><br>
      arquitecte col&middot;legiat 26694-9<br>Tel./fax 934642327
    </p>
    </span></td>
    <td background="../images/pline.gif">&nbsp;</td>
    
    <td width="45">&nbsp;</td>
    
    </tr>
  <tr>
    <td><h2><a name="0000009d890114906"></a></h2></td>
    <td background="../images/pline.gif">&nbsp;</td>
    <td></td>
    </tr>
  <tr>
    <td valign="top"><script language="JavaScript">
function check()
{
  var checked=true;
  var pattern=/.*\@.*\..*/;
                                                                          if (checked)
  {
    document.sendform.method="POST";
    document.sendform.action="../w2dfgw.php";
	document.sendform.submit;
  }
  return checked;
} 
</script>
      
      <form name="sendform" onSubmit="return check()" enctype="application/x-www-form-urlencoded">
        <table border="0" cellpadding="0" cellspacing="0" width="400">
          <input type="hidden" name="fgwemail" value="[email protected]">
          
          <input type="hidden" name="fgwsubject" value="Formulari B2T">
          
          <input type="hidden" name="fgwreturnurl" value="0000009d890112f04.html">
          
          <tr>
            <td valign="top"><span class="grey">Nom</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="vname" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Cognom</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="nname" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">E-Mail</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="email" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Missatge</span></td>
            <td valign="top"><textarea style="width: 300px;" cols="39" rows="7" class="normal" name="nachricht"></textarea><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td><img src="../images/pcpx.gif" width="100" height="1" alt="" border="0"></td>
            <td align="left"><input type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
            </tr>
          </table>
        
        </form>
      
      <br><br></td>
    <td background="../images/pline.gif">&nbsp;</td>
    
    <td width="45">&nbsp;</td>
    
    </tr>
  <tr>
    <td height="31"><h2><a name="0000009d89011a308"></a></h2></td>
    <td background="../images/pline.gif">&nbsp;</td>
    <td></td>
    </tr>
  <tr>
    <td valign="top"><span class="normal"><strong>Joan M Compte i Anguela</strong><br></b>arquitecte col&middot;legiat 25892-1<br>Tel. 650827491</p></span></td>
    <td background="../images/pline.gif">&nbsp;</td>
    
    <td width="45">&nbsp;</td>
    
    </tr>
  <tr>
    <td><h2><a name="0000009d89011d609"></a></h2></td>
    <td background="../images/pline.gif">&nbsp;</td>
    <td></td>
    </tr>
  <tr>
    <td valign="top"><script language="JavaScript">
function check()
{
  var checked=true;
  var pattern=/.*\@.*\..*/;
                                                                          if (checked)
  {
    document.sendform.method="POST";
    document.sendform.action="../w2dfgw.php";
	document.sendform.submit;
  }
  return checked;
} 
</script>
      
      <form name="sendform" onSubmit="return check()" enctype="application/x-www-form-urlencoded">
        <table border="0" cellpadding="0" cellspacing="0" width="400">
          <input type="hidden" name="fgwemail" value="[email protected]">
          
          <input type="hidden" name="fgwsubject" value="Formulari B2T">
          
          <input type="hidden" name="fgwreturnurl" value="0000009d890112f04.html">
          
          <tr>
            <td valign="top"><span class="grey">Nom</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="vname" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Cognom</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="nname" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">E-Mail</span></td>
            <td valign="top"><input class="normal" style="width: 300px;" size="26" type="text" name="email" value=""><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Missatge</span></td>
            <td valign="top"><textarea style="width: 300px;" cols="39" rows="7" class="normal" name="nachricht"></textarea><br></td>
            </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td><img src="../images/pcpx.gif" width="100" height="1" alt="" border="0"></td>
            <td align="left"><input type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
            </tr>
          </table>
        
        </form>
      
      <br><br></td>
    <td background="../images/pline.gif">&nbsp;</td>
    
    <td width="45">&nbsp;</td>
    
    </tr>
  <tr>
    <td><h2><a name="0000009d89011db0a"></a></h2></td>
    <td background="../images/pline.gif">&nbsp;</td>
    <td></td>
    </tr>
  <tr>
    <td valign="top"><div align="center"><span class="normal">
      &copy;2010-2011 <a href="mailto:[email protected]" target="_blank">ZEROCK</a> Tots els drets reservats.</p>
    </span></div></td>
    <td background="../images/pline.gif">&nbsp;</td>
    
    <td width="45">&nbsp;</td>
    
    </tr>
</table></td>
</tr>
</table>



</body>
</html>
Lo raro es que no me lleva a la URLreturn y no envia el email...
  #3 (permalink)  
Antiguo 31/05/2010, 06:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: No me funciona el formulario de Email! Pueden ayudarme!?¿

Lo raro es que no me lleva a la URLreturn y no envia el email...[/QUOTE]
  #4 (permalink)  
Antiguo 31/05/2010, 08:40
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: No me funciona el formulario de Email! Pueden ayudarme!?¿

Lo basico del envio seria esto (y ya lo sabes):
//funcion ejemplo
mail($para, $asunto, $mensaje, $cabeceras);

Pero hay algo mas en tu codigo, me parece que sobra algo, no estoy seguro.

Tu tienes:

Código PHP:

//el la parte final $cabeceras (fijate la funcion ejemplo) pones texto plano, bueno seria lo mismo, mas en el manual la veo asi:

$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

//podrias reemplazar ese texto plano por $cabeceras (esta cabecera esta comprobada, funciona)

mail ($fgwemail
     
$fgwsubject
     
createMimeMail(), 
     
"MIME-Version: 1.0\nContent-Type: multipart/alternative;\n\tboundary=\"--WEB2DATEGATEWAY\"\nX-Mailer: web to date Gateway Version 1.0");    

Luego en lo que seria $mensaje pones una funcion createMimeMail(), que agrega esto"Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n" que es parte ya de las cabeceras "$cabeceras" y luego dentro de esa funcion se llama a createHTMLMail() que crea un hatml con su "<META http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n"

Una y otra vez repites eso... 
  #5 (permalink)  
Antiguo 31/05/2010, 09:54
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: No me funciona el formulario de Email! Pueden ayudarme!?¿

Funciono...!

Mira sin cambiar lo que antes dije, prueba con esto:

Código PHP:

//fijate si en la url del navegador te agrega los envios (GET) 
//al hacer submit (bueno esa es la falla) ya que el codigo php espera post

//de todos modos cambia esto, ante la duda:

if (checked)
  {
    
//document.sendform.method="POST";
   //document.sendform.action="zerock_full.php";
  //deja solo sin comentar la ultima lines 
  
document.sendform.submit;
  }
  return 
checked;


//has eso en los dos codigos js

//LUEGO en los dos form colocas el action="" y en method="" 
//de manera normal dentro del formulario

//luego pon tu email en todas estas lineas:

EN LOS DOS FORM:
 <
input type="hidden" name="fgwemail" value="[email protected]">

EN EL CODIGO PHP:
//prueba con un solo email (repetido para empezar)
$whitelist=array("[email protected]""[email protected]");

//A estea linea no la cambie (y funciono), mas creo que debes poner tu email.
if ($fgwemail!='[email protected]'

Bueno creo que puse todo.
Y creo que el problema fundamental estaba alli en el method y action

Y para testear puedes quitar el header y hacer un echo debajo de la funcion mail()
dentro de ese condicional...

Saludos...!

Última edición por wiwi74; 31/05/2010 a las 10:02
  #6 (permalink)  
Antiguo 01/06/2010, 04:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: No me funciona el formulario de Email! Pueden ayudarme!?¿

Osti tio! Merci wiwi74, cambiar el action y el metod lo arreglado... Muchas gracias x tu tiempo!

Etiquetas: email, formulario
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 22:12.