Foros del Web » Programando para Internet » PHP »

Formulario PHP para servidor Linux

Estas en el tema de Formulario PHP para servidor Linux en el foro de PHP en Foros del Web. Hola amigos!. Después de una larga búsqueda conseguí un formulario en PHP que es compatible con mi servidor Linux, mi único problema es que quisiera ...
  #1 (permalink)  
Antiguo 23/10/2009, 10:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 176
Antigüedad: 15 años, 2 meses
Puntos: 1
Formulario PHP para servidor Linux

Hola amigos!.

Después de una larga búsqueda conseguí un formulario en PHP que es compatible con mi servidor Linux, mi único problema es que quisiera que el mail me llege a mi bandeja de entrada con el nombre que yo quiero y el asunto que quiero.

En este momento me llega en "De" con un email del servidor y con el asunto (sin asunto).

Me gustaría que llegue "De: Pepe" y "Asunto: Consulta".

Este es el formulario:
Código PHP:
<?php
$ip 
getenv ("REMOTE_ADDR") ;
?>

<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>Apellido
<input type='text' name='Apellido' id='Apellido'>

</p>
<p>Telefono
<input type='text' name='Telefono' id='Telefono' />
</p>
<p>Direccion
<input type='text' name='Direccion' id='Direccion' />
</p>
<input type='hidden' name ='ip' value= <? echo "$ip"?> />
<p>Correo electronico
<input type='text' name='mail' id='mail' />
</p>
<p>Comentario</p>
 <textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
<p>
<input type='submit' value='Enviar'>
</p>
</form>
Este es el otro archivo que se encarga e enviar el correo:
Código 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($oFicherofilesize($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));
}

//cambiar aqui el email
if (form_mail("[email protected]"$_POST[asunto],
"Los datos introducidos en el formulario son:\n\n"$_POST[email]))
?>
Ya he cambiado [email protected] por mi correo.
Espero puedan ayudarme.
Muchas Gracias!.
  #2 (permalink)  
Antiguo 23/10/2009, 10:41
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Formulario PHP para servidor Linux

abajo de:

$sAdjuntos = "";

agrega lo siguiente:

$sDe="[email protected]";
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 23/10/2009, 10:42
 
Fecha de Ingreso: noviembre-2008
Ubicación: W2.0
Mensajes: 103
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Formulario PHP para servidor Linux

Lo que noto es que tu código php para enviar el correo esta hecho para enviar archivos adjuntos, y en tu formulario no estas enviando ninguno.
  #4 (permalink)  
Antiguo 23/10/2009, 10:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 176
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Formulario PHP para servidor Linux

Buenisimo Urgido!. Ahora tengo el asunto y el mail. Muchas gracias!.


Diegocespedes:

Eso es lo que yo tambien note.

Me parece que lo de archivos adjuntos esta demás porque no lo voy a necesitar. Entonces que parte del codigo tendria que sacar para que nosobre lo de los archivos adjuntos?.
  #5 (permalink)  
Antiguo 23/10/2009, 10:59
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Formulario PHP para servidor Linux

Código PHP:
Ver original
  1. <?php
  2. function form_mail($sPara, $sasunto, $sTexto, $sDe)
  3. {
  4. $bHayFicheros = 0;
  5. $sCabeceraTexto = "";
  6. $sAdjuntos = "";
  7.  
  8. if ($sDe)$sCabeceras = "From:".$sDe."\n";
  9. else $sCabeceras = "";
  10. $sCabeceras .= "MIME-version: 1.0\n";
  11. foreach ($_POST as $sNombre => $sValor)
  12. $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
  13.  
  14. /*foreach ($_FILES as $vAdjunto)
  15. {
  16. if ($bHayFicheros == 0)
  17. {
  18. $bHayFicheros = 1;
  19. $sCabeceras .= "Content-type: multipart/mixed;";
  20. $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
  21.  
  22. $sCabeceraTexto = "----_Separador-de-mensajes_--\n";
  23. $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  24. $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
  25.  
  26. $sTexto = $sCabeceraTexto.$sTexto;
  27. }
  28. if ($vAdjunto["size"] > 0)
  29. {
  30. $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
  31. $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
  32. $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
  33. $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
  34.  
  35. $oFichero = fopen($vAdjunto["tmp_name"], 'r');
  36. $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  37. $sAdjuntos .= chunk_split(base64_encode($sContenido));
  38. fclose($oFichero);
  39. }
  40. }*/
  41.  
  42. if ($bHayFicheros)
  43. $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
  44. return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
  45. }
  46.  
  47. //cambiar aqui el email
  48. if (form_mail("[email protected]", $_POST[asunto],
  49. "Los datos introducidos en el formulario son:\n\n", $_POST[email]))
  50. ?>


INTENTA CON ESO Y CHECA SI FUNCIONA, SI EL RESULTADO ES POSITIVO ENTONCES LO SEÑALADO CON GRIS LO PUEDES ELIMINAR. SALUDOS
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 23/10/2009, 10:59
 
Fecha de Ingreso: noviembre-2008
Ubicación: W2.0
Mensajes: 103
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Formulario PHP para servidor Linux

Código 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;


if (
form_mail("[email protected]"$_POST[asunto],
"Los datos introducidos en el formulario son:\n\n"$_POST[email]))
?>
  #7 (permalink)  
Antiguo 23/10/2009, 11:04
 
Fecha de Ingreso: febrero-2009
Mensajes: 176
Antigüedad: 15 años, 2 meses
Puntos: 1
Perfecto!.

Muchas gracias a los dos!.

Problema resuelto..

Saludos!.

Amigos!.

Les cuento que me surgio algo mas!.

Necesito que el visitante ingrese el email si o si!. Y como esta ahora el formulario, el usuario puede presionar enviar sin colocar su email y a mi no me llega su email.

Como puedo validarlo para que coloque su email si o si?.

Gracias!.

Última edición por GatorV; 23/10/2009 a las 12:34
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:24.