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

1 Respuesta

Respuesta
1
Pues mira haber si te puedo ayudar...
Lo que tienes que hacer para mandar un valor de una página a otra de forma oculta al usuario es enviarlo por post, puedes tener el mismo campo tipo hidden y poner:
<input type="hidden"  name="Direccion_Visitada"  value= "<?php $s = $_SERVER['REQUEST_URI']; echo $s;?>"/>
Así obtienes la dirección y con el echo la sacas para que sea obtenida en el value de HTML, si solo te interesa saber el archivo donde está, y no tanto la URI completa, puedes usar también $_SERVER['PHP_SELF']
La otra manera de mandar estos datos es mandarlos por variables de sesión,
al principio de tus archivos tendrías que poner session_start(); antes de imprimir cualquier cosa y ya de aquí puedes hacer la asignación así:
$_SESSION['direccion']=$_SERVER['REQUEST_URI'];
y la puedes usar en la siguiente página con $_SESSION['direccion'] solamente
ya cuando acabes de usar la sesion puedes usar
unset($_SESSION['direccion']);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas