Foros del Web » Programando para Internet » PHP »

Ayuda con Formulario para ip

Estas en el tema de Ayuda con Formulario para ip en el foro de PHP en Foros del Web. buenas amigitos quisiera pedirles un favor un grandizimo favor bueno en el formulario se logra enviar los datos pero cuando quiero colocar que envie tambien ...
  #1 (permalink)  
Antiguo 02/04/2009, 13:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación Ayuda con Formulario para ip

buenas amigitos
quisiera pedirles un favor un grandizimo favor
bueno en el formulario se logra enviar los datos
pero cuando quiero colocar que envie tambien la ip me sale error
porfavor me gustaria que me ayuden con esto
muchas gracias
Código:
<?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, $ipv));
}

//Ejemplo de como usar:
if (form_mail("mail","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "mail"))
echo "<LINK href='../style_anf.css' rel=STYLESHEET type=text/css><body></BODY>";
?>

envia los datos pero me gustaria k envien tambien la ip
espero su ayuda pronto
  #2 (permalink)  
Antiguo 02/04/2009, 13:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Ayuda con Formulario para ip

Con $_SERVER['REMOTE_HOST'] puedes obtener esa información e incluirla en el mensaje.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/04/2009, 13:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda con Formulario para ip

sii eso hize lo coloque en varios lugares
pero continua saliendome error y no me envia la ip
en si como tendria k ir y en que lugar estar ubicado?
  #4 (permalink)  
Antiguo 02/04/2009, 13:33
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Ayuda con Formulario para ip

podrias poner el codigo de como estas mandando la ip?
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #5 (permalink)  
Antiguo 07/04/2009, 16:48
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Formulario para ip

nos seria muy util si pueden lograr colocar como iria eso de la ip dentro del codigo que puso
espero q pongan y no dejen pasar y pasar este tema
  #6 (permalink)  
Antiguo 07/04/2009, 16:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Ayuda con Formulario para ip

Obtener IP del cliente:

Código php:
Ver original
  1. // Ejemplo de uso de getenv()
  2. $ip = getenv('REMOTE_ADDR');
  3.  
  4. // O simplemente use una Superglobal ($_SERVER o $_ENV)
  5. $ip = $_SERVER['REMOTE_ADDR'];

Fuente: http://php.net/getenv
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 07/04/2009, 17:00
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Formulario para ip

logre colocarlo pero me sale error
el codigo de perudemda si envia los daatos
pero no logro poder poner que envie tambien la ip

Código:
<?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, $ipv));
}

//Ejemplo de como usar:
if (form_mail("mail","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "mail"))
echo "<LINK href='../style_anf.css' rel=STYLESHEET type=text/css><body></BODY>";
?>
donde insertar el codigo que da
triby?
Código:
   1.
      // Ejemplo de uso de getenv()
   2.
      $ip = getenv('REMOTE_ADDR');
   3.
       
   4.
      // O simplemente use una Superglobal ($_SERVER o $_ENV)
   5.
      $ip = $_SERVER['REMOTE_ADDR'];
  #8 (permalink)  
Antiguo 07/04/2009, 17:13
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Ayuda con Formulario para ip

Que error te muestra?
  #9 (permalink)  
Antiguo 07/04/2009, 17:13
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Formulario para ip

no lograr enviar los datos y sale error linea 57
  #10 (permalink)  
Antiguo 07/04/2009, 17:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Ayuda con Formulario para ip

Todo lo que tienes que hacer es obtener la direccion IP y agregarla al texto que deseas enviar:

Código php:
Ver original
  1. // Localiza esta linea en tu archivo
  2. $sTexto = $sCabeceraTexto.$sTexto;
  3.  
  4. // Debajo agrega:
  5. $ip = $_SERVER['REMOTE_ADDR'];
  6. $sTexto .= "\n\nMensaje enviado desde: $ip";
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 07/04/2009, 17:47
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Formulario para ip

man acaba de probar como dijiste
coloque eso en el lugar q pones pero no logra enviar la ip solo envia los datos
pero no ip

tiene q ir en este lugar
Código:
 $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
debajo de eso tiene k estar y si envia los datos
muchas gracias amigo muchas gracias
problema resuelto
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 12:08.