Formulario de contacto en PHP bajo servidor linux
¿Hola qué tal? Tengo este código para enviar datos de contacto desde un formulario
<span style="font-weight: bold;">archivo enviar.php</span>
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));
}
//cambiar aqui el email
if (form_mail("[email protected]",$_POST[asunto],
"Los Datos ingresados en la Consulta fueron:\n\n", $_POST[email]))
?>
Por otro lado tengo el formulario que se llena desde la web..
<form id="form2" name="form2" method="post" action="enviar.php">
<table width="96%" border="1" cellpadding="0" cellspacing="0" bordercolor="#1F3485">
<tr>
<td width="12%" class="Estilo19">
<div align="right" class="style4">Nombre y Apellido:</div>
</td>
<td width="88%" class="Estilo17">
<input name="nombre" type="text" id="nombre" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Teléfono:</div>
</td>
<td class="Estilo17">
<input name="telefono" type="text" id="telefono" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Email:</div>
</td>
<td class="Estilo17">
<input name="email" type="text" id="email" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Consulta:</div>
</td>
<td class="Estilo17">
<textarea name="consulta" cols="17" id="consulta"></textarea> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#1F3485"><img src="spacer.gif" width="100" height="1" /></td>
</tr>
<tr>
<td colspan="2">
<div align="center"><span class="Estilo17">
<input type="submit" name="Submit3" value="Enviar" />
<input type="reset" name="Submit4" value="Restablecer" />
</span></div>
</td>
</tr>
</table>
</form>
Lo que me interesa es poder enviar desde el formulario, la dirección de la página web que se esta visitando en ese momento.
La idea es pasarlo en forma oculta.
En la página que tengo el formulario tengo el siguiente código para capturar la dirección de la página.
<?php
$s = $_SERVER['REQUEST_URI'];
?>
y en el formulario puse un campo oculto:
<input type="hidden" name="Direccion_Visitada" value= "<?php $s = $_SERVER['REQUEST_URI']; ?>"/>
No se si esta parte esta bien y no se como capturar la variable oculta en el archivo enviar.php y enviarla con la función form_mail($sPara, $sasunto, $sTexto, $sDe)
Espero que me puedas ayudar
Gracias
Marcelo
<span style="font-weight: bold;">archivo enviar.php</span>
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));
}
//cambiar aqui el email
if (form_mail("[email protected]",$_POST[asunto],
"Los Datos ingresados en la Consulta fueron:\n\n", $_POST[email]))
?>
Por otro lado tengo el formulario que se llena desde la web..
<form id="form2" name="form2" method="post" action="enviar.php">
<table width="96%" border="1" cellpadding="0" cellspacing="0" bordercolor="#1F3485">
<tr>
<td width="12%" class="Estilo19">
<div align="right" class="style4">Nombre y Apellido:</div>
</td>
<td width="88%" class="Estilo17">
<input name="nombre" type="text" id="nombre" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Teléfono:</div>
</td>
<td class="Estilo17">
<input name="telefono" type="text" id="telefono" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Email:</div>
</td>
<td class="Estilo17">
<input name="email" type="text" id="email" size="23" /> </td>
</tr>
<tr>
<td class="Estilo19">
<div align="right" class="style4">Consulta:</div>
</td>
<td class="Estilo17">
<textarea name="consulta" cols="17" id="consulta"></textarea> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#1F3485"><img src="spacer.gif" width="100" height="1" /></td>
</tr>
<tr>
<td colspan="2">
<div align="center"><span class="Estilo17">
<input type="submit" name="Submit3" value="Enviar" />
<input type="reset" name="Submit4" value="Restablecer" />
</span></div>
</td>
</tr>
</table>
</form>
Lo que me interesa es poder enviar desde el formulario, la dirección de la página web que se esta visitando en ese momento.
La idea es pasarlo en forma oculta.
En la página que tengo el formulario tengo el siguiente código para capturar la dirección de la página.
<?php
$s = $_SERVER['REQUEST_URI'];
?>
y en el formulario puse un campo oculto:
<input type="hidden" name="Direccion_Visitada" value= "<?php $s = $_SERVER['REQUEST_URI']; ?>"/>
No se si esta parte esta bien y no se como capturar la variable oculta en el archivo enviar.php y enviarla con la función form_mail($sPara, $sasunto, $sTexto, $sDe)
Espero que me puedas ayudar
Gracias
Marcelo
1 Respuesta
Respuesta de vellonce
1