Foros del Web » Programando para Internet » PHP »

Problema con envio de formulario.

Estas en el tema de Problema con envio de formulario. en el foro de PHP en Foros del Web. Buenas gente, tengo un código creado para que me envie un mail de contacto al rellenar un formulario, y además envie un mail de respuesta. ...
  #1 (permalink)  
Antiguo 30/05/2006, 20:34
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 18 años
Puntos: 0
Problema con envio de formulario.

Buenas gente, tengo un código creado para que me envie un mail de contacto al rellenar un formulario, y además envie un mail de respuesta.

El código es el siguiente:

Código PHP:
if ($_GET['accion']=="enviar"){

if ((
$_SESSION['controlando'] == $_SESSION['controlando_bis']) AND ($_SESSION['controlando'] <> ''))
{
function 
ValidarDatos($campo){ 
$badHeads = array("Content-Type:"
"MIME-Version:"
"Content-Transfer-Encoding:"
"Return-path:"
"Subject:"
"From:"
"Envelope-to:"
"To:"
"bcc:"
"cc:"); 

foreach(
$badHeads as $valor){ 
if(
strpos(strtolower($campo), strtolower($valor)) !== false){ 
echo 
"<tr><td colspan='2' align='center' class='texto'>No seas spamer</td></tr>";
exit; 




ValidarDatos($_POST['email']); 
ValidarDatos($_POST['nombre']); 
ValidarDatos($_POST['apellidos']);
ValidarDatos($_POST['comentario']);

$nombre htmlentities($nombre);
$apellidos htmlentities($apellidos);
$email htmlentities($email);
$comentario htmlentities($comentario);

function 
check_email_address($email) {
if (!
ereg("[^@]{1,64}@[^@]{1,255}"$email)) {
return 
false;
}

$email_array explode("@"$email);
$local_array explode("."$email_array[0]);
for (
$i 0$i sizeof($local_array); $i++) {
if (!
ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^
_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"
$local_array[$i])) {
return 
false;
}


if (!
ereg("^\[?[0-9\.]+\]?$"$email_array[1])) { 
$domain_array explode("."$email_array[1]);
if (
sizeof($domain_array) < 2) {
return 
false;
}

for (
$i 0$i sizeof($domain_array); $i++) {
if (!
ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"$domain_array[$i])) {
return 
false;
}
}
}
return 
true;
}


function 
lnonly($string) {
$eregi eregi_replace("^([A-Za-z\Á\É\Í\Ó\Ú\Ñ\á\é\í\ó\ú\ñ\.]{1}[a-z\á\é\í\ó\ú\ñ\.]+(\ )*)+$","",$string);
if(empty(
$eregi)){
return 
true;
}
return 
false;
}

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['email'];
$comentario=$_POST['comentario'];
$enviado=$_POST['Enviar'];

if (
check_email_address($email)) 

if(
lnonly($nombre) && lnonly($apellidos)) 
{
if (isset(
$enviado)) 

if((
$nombre != "") && ($email != "") && ($apellidos != "") && ($comentario != "")) 
{

$destinatario="[email protected]";
$fecha date("d-M-y H:i");
$asunto="Formulario de contacto";

$cabeceras.= "MIME-Version: 1.0\r\n"
$cabeceras.= "Content-type: text/html; charset=iso-8859-1\r\n"
$cabeceras.= "From: {$nombre} {$apellidos}<{$email}>\r\n";
$cabeceras.= "Last-Modified: ".$fecha." GMT\r\n"
$cabeceras.= "Cache-Control: no-cache, must-revalidate\r\n"
$cabeceras.= "Pragma: no-cache\r\n"
$cabeceras.= "Reply-To: {$email}\r\n";

$headers.= "MIME-Version: 1.0\r\n"
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"
$headers.= "From: ViguerDesigner Studio <{$destinatario}>\r\n";
$headers.= "Last-Modified: ".$fecha." GMT\r\n"
$headers.= "Cache-Control: no-cache, must-revalidate\r\n"
$headers.= "Pragma: no-cache\r\n"
$headers.= "Reply-To: {$destinatario}\r\n";

$respuesta='Gracias por contactar con ViguerDesigner Studio, '.$nombre.' '.$apellidos.' .';

$texto='El Sr/a: '.$nombre.' '.$apellidos.' ha enviado el siguiente comentario: '.$comentario.' A las: '.$fecha.' .';

if(
mail($destinatario$asunto$texto$cabeceras)){

echo 
"<tr><td colspan='2' align='center' class='texto'>Formulario enviado correctamente.</td></tr>";

mail($email$asunto$respuesta,$headers);

}

else { 

echo 
"<tr><td colspan='2' align='center' class='texto'>El Formulario no se ha podido enviar.</td></tr>";

}
}

else{ 

echo 
"<tr><td colspan='2' align='center' class='texto'>Debe rellenar todos los campos</td></tr>";



}

}

else{

echo 
"<tr><td colspan='2' align='center' class='texto'>Solo puede insertar letras en los campos nombre y apellidos</td></tr>";

}

}

else

echo 
"<tr><td colspan='2' align='center' class='texto'>El mail es incorrecto.</td></tr>";

}

else {

echo 
"<tr><td colspan='2' align='center' class='texto'>No seas spamer</td></tr>";

exit; 


}

unset(
$_SESSION['controlando'],$_SESSION['controlando_bis']); 

echo 
"</form>";
echo 
"</table>"
El problema es que la línea 160, que es esta:

Código PHP:
if(mail($destinatario$asunto$texto$cabeceras)){ 
Siempre me da este error:


Código:
Warning: Unknown error in c:\foxserv\www\viguer\formulario.php on line 161
Me dice unknown error, y la verdad es que he revisado el código y no se porque puede ser.

Si alguien me pudiera ayudar se lo agradecería mucho, gracias.

Un saludo.
  #2 (permalink)  
Antiguo 30/05/2006, 23:40
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
si cuentas con servidor de mail

no sera que la funcion tenga mala algun parametro
manda imprimir los parametros de mail()

igual hay algo raro no?
crees
__________________
gerardo
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 06:16.