Foros del Web » Programando para Internet » PHP »

Formulario contacto PHP-HTML no quiere funcionar

Estas en el tema de Formulario contacto PHP-HTML no quiere funcionar en el foro de PHP en Foros del Web. Hola a todos mis gurús del web. Tengo un formulario de contacto muy simple que estaba funcionando perfecto hasta que movi mi sitio de carpeta ...
  #1 (permalink)  
Antiguo 19/08/2010, 22:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 64
Antigüedad: 17 años
Puntos: 5
Formulario contacto PHP-HTML no quiere funcionar

Hola a todos mis gurús del web.

Tengo un formulario de contacto muy simple que estaba funcionando perfecto hasta que movi mi sitio de carpeta y no quiso funcionar mas. Me aparece la pagina que dice enviado pero no llega a mi gmail.
Tendre que poner algun archivo extra en la carpeta del sitio?

Por favor envío el codigo a ver si alguien se ilumina. Muchisimas gracias.

Codigo html:

<form name='formulario' id='formulario' method='post' action='mail_adjuntos.php' target='_self' enctype="multipart/form-data">
<p>&nbsp;</p>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="18%"><span style="font-weight: bold">Nombre: </span></td>
<td width="73%"><input type='text' name='Nombre' id='Nombre'></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span style="font-weight: bold">Empresa:</span></td>
<td><input type='text' name='Empresa' id='Apellidos'></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span style="font-weight: bold">E-mail</span>:</td>
<td><input type='text' name='E-mail' id='E-mail'></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top"><span style="font-weight: bold">Consultas o Comentarios:&nbsp;&nbsp;&nbsp;</span></td>
<td><textarea name="mensaje" cols="50px" rows="5" wrap="virtual" id="mensaje"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type='submit' value='Enviar'></td>
</tr>
</table>
</form>


CODIGO PHP:

<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}


if (form_mail("[email protected]","Contacto desde sitio ",
"Los datos introducidos en el formulario son:\n\n", "su sitio"))
echo "Su mensaje ha sido enviado con éxito, pronto nos contactaremos con Ud.";
?>
  #2 (permalink)  
Antiguo 20/08/2010, 00:06
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Formulario contacto PHP-HTML no quiere funcionar

Te paso lo que yo uso que me funciona bien, cambiale el nombre al campo de texto del mail (E-mail) y ponele email, porque creo que ese nombre no es valido

Código PHP:
      <?php
      
      
                
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;
                                                                        }
                                 }
}
//Ejemplo de llamadas a la funcion
ValidarDatos($_POST['Nombre']);
ValidarDatos($_POST['Empresa']);
ValidarDatos($_POST['email']);
ValidarDatos($_POST['mensaje']);

  
      
      
      
      
      
      
      
      
 function 
validar_email($email) {
    return 
preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/'$email);
}


$email=$_POST['email'];
$asunto="ACA PONER EL ASUNTO DEL MAIL";
if(
validar_email($email)){



      
///////Configuración/////
      
$mail_destinatario '[email protected]';
      
///////Fin configuración//
      
if (isset ($_POST['enviar'])) {
      
$headers .= "From: ".$_POST['email'];
     
      
if ( 
mail($mail_destinatario$asunto
"Nombre : ".$_POST['Nombre']."\r".
"Empresa : ".stripcslashes ($_POST['Empresa'])."\r".
" E-mail: ".stripcslashes ($_POST['email'])."\r".
"Mensaje:".stripcslashes ($_POST['mensaje']), $headers ))
 echo 
'<p>Su mensaje ha sido enviado correctamente. Gracias por contactar con nosostros</p>';
      else echo 
'Error al enviar el formulario. Por favor, inténtelo de nuevo mas tarde.'; }; 
    }
else if (isset (
$_POST['enviar'])) {


if (
$email=="")
{
echo 
'<p>Introduzca una direccion de email</p>';
}

else {
    echo 
'<p>$email  no es una cuenta de correo electronico valida.</p>';
    
    }
    
    }
      
      
?>
__________________
la la la
  #3 (permalink)  
Antiguo 20/08/2010, 01:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 64
Antigüedad: 17 años
Puntos: 5
Respuesta: Formulario contacto PHP-HTML no quiere funcionar

Muchas gracias pero sigue sin funcionarme

Etiquetas: contacto, 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 21:55.