Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Livio_iago

Capturar IP e Navegador durante Cadastro?

Recommended Posts

Galera... Antes de mais nada, desculpe o tamanho do post, mas ele é uma sequencia, isso é bem simples pra quem sabe...

Como cou um iniciante em PHP... Pego uma coisa aqui, outra alí... Vou alterando conforme alguma lógica válida... Mas nem tudo dá pra adivinhar, entao peço, HELP-ME...

 

Basicamente, estou fazendo um CADASTRO. Ele já funciona para o BANCO, já consigo gravar... Mas aí tentei incrementá-lo usando um script q peguei aqui e ententando adaptar as minhas necessidades que eram...

 

- Enviar um email para mim, quando alguem cadastrar.

- Enivar um email para o usuário, agradecendo o cadastro.

- Capturar o IP durante o cadastro.

- Capturar o Navegador durante o cadastro (esse é o menos importante).

 

Entao segue o script que eu peguei...

 

SCRIPT PARA ENVIAR EMAIL PRA MIM, PARA O USUARIO, E GRAVAR NO BANCO Mas como a questao de gravar no banco eu já tinha conseguido com do DW, intao excluí a parte em negrito lá em baixo...

 

<?

 

//garante a integridade dos dados para certificar que eles venham do formulário de cadastro.

$pessoa = $_POST['nome'];

$nome = $_POST['telefone'];

$email = $_POST['email'];

 

$data = date("d/m/y"); //função para pegar a data de envio do e-mail

$ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário

$navegador = $_SERVER['HTTP_USER_AGENT']; //função para pegar o navegador do visitante

$hora = date("H:i"); //para pegar a hora com a função date

 

 

//aqui envia o e-mail para você

mail ("voce@seuemail.com.br", //email aonde o php vai enviar os dados do form

"Cadastro de usuário tipo: $nome",

"Nome: $nome\nTelefone: $telefone\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\n,

"From: $email"

);

//aqui são as configurações para enviar o e-mail para o visitante

$site = "voce@seuemail.com.br"; //o e-mail que aparecerá na caixa postal do visitante

$titulo = "RE:Cadastro"; //titulo da mensagem enviada para o visitante

$msg = "$nome, obrigado por cadastrar-se.

 

//aqui envia o e-mail de auto-resposta para o visitante

mail("$email",

"$titulo",

"$msg",

"From: $site"

);

 

 

// Inclui o arquivo de conexão

include("conecta.php");

 

$ordem="select * from pessoas where email = '$email'";

$executar=mysql_query($ordem,$conexao);

$mostrar=mysql_fetch_array($executar,$conexao);

 

if( ($mostrar["email"]) == ($email) ) //Impede que seja cadastrado outro usuário com o mesmo email

{

echo "Já existe um usuário com esse email.";

}

 

else

{

 

 

 

 

// Insere os dados na tabela

$inserir="insert into pessoas (nome, telefone, email) values ('$nome', '$telefone', '$email')";

$executa=mysql_query($inserir,$conexao);

 

// Verifica se cadastrou!!

if($executa)

{

echo "<font color=red face=arial size=4><center>Parabéns</font><br><font face=arial color=darkblue>$nome seu cadastro foi feito com sucesso!";

}

 

else

{

echo "<font face=arial color=darkblue>Problemas no cadastro</font>";

}

}

 

 

?>

Como eu já tinha comentado, excluí toda essa parte em negrito, que é a parte de gravar no banco, e tinha outras coisas também referente a isso que nao usei... O que eu queria era apenas a parte do envio dos emails e captura do Ip e Nav...

 

Ok, aqui está o meu...

 

// MINHA LIGACAO COM O BANCO, QUE O DREAMWEAVER FEZ...

 

<?php require_once('Connections/CommEr24bd.php'); ?>

<?php

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

 

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

 

$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {

$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);

}

 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

$insertSQL = sprintf("INSERT INTO form_clientes (form_membro, form_nome, form_apelido, form_email, form_sexo, form_nasc_dia, form_nasc_mes, form_nasc_ano, form_end, form_operad, form_fone, form_pais, form_ident, form_como, form_ip_usu, form_nav_usu, form_data, form_hora) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",

GetSQLValueString($_POST['form_membro'], "text"),

GetSQLValueString($_POST['form_nome'], "text"),

GetSQLValueString($_POST['form_apelido'], "text"),

GetSQLValueString($_POST['form_email'], "text"),

GetSQLValueString($_POST['form_sexo'], "text"),

GetSQLValueString($_POST['form_nasc_dia'], "text"),

GetSQLValueString($_POST['form_nasc_mes'], "text"),

GetSQLValueString($_POST['form_nasc_ano'], "text"),

GetSQLValueString($_POST['form_end'], "text"),

GetSQLValueString($_POST['form_operad'], "text"),

GetSQLValueString($_POST['form_fone'], "text"),

GetSQLValueString($_POST['form_pais'], "text"),

GetSQLValueString($_POST['form_ident'], "text"),

GetSQLValueString($_POST['form_como'], "text"),

GetSQLValueString($_POST['form_ip_usu'], "text"),

GetSQLValueString($_POST['form_nav_usu'], "text"),

GetSQLValueString($_POST['form_data'], "date"),

GetSQLValueString($_POST['form_hora'], "date"));

 

mysql_select_db($database_CommEr24bd, $CommEr24bd);

$Result1 = mysql_query($insertSQL, $CommEr24bd) or die(mysql_error());

 

$insertGoTo = "sucessoform.htm";

if (isset($_SERVER['QUERY_STRING'])) {

$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";

$insertGoTo .= $_SERVER['QUERY_STRING'];

}

header(sprintf("Location: %s", $insertGoTo));

}

 

//FIM DA LIGACAO COM O BANCO

 

//INICIO DO SCRIPT QUE PEGUEI, JÁ COM AS ALTERAÇOES PARA MINHA NECESSIDADE... NO CASO, MUDEI O NOME DOS INPUTS...

 

//garante a integridade dos dados para certificar que eles venham do formulário de cadastro.

$membro = $_POST['form_membro'];

$nome = $_POST['form_nome'];

$apelido = $_POST['form_apelido'];

$email = $_POST['form_email'];

$data = $_POST['form_email']; //função para pegar a data de envio do e-mail

$hora = $_POST['form_hora']; //para pegar a hora com a função date

$ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário

$navegador = $_SERVER['HTTP_USER_AGENT']; //função para pegar o navegador do visitante

 

 

//aqui envia o e-mail para você

 

mail ("livio@visa.co.mz", //email aonde o php vai enviar os dados do form

"Cadastro de usuário tipo: $nome",

"Nome: $membro\nnome: $nome\napelido: $apelido\nemail: $email\ndata: $data\nhora: $hora\nip: $ip\nnavegador: $navegador\n",

"From: $email"

);

//aqui são as configurações para enviar o e-mail para o visitante

$site = "www.er24.co.mz"; //o e-mail que aparecerá na caixa postal do visitante

$titulo = "RE:Cadastro"; //titulo da mensagem enviada para o visitante

$msg = "$nome, obrigado por cadastrar-se seu numero de Membro na ER24."

 

 

?>

Bom, amigos, em negrito logo acima, tem as funcoes para PEGAR o IP e o NAV do usuário. Como nao conheço, nao mexi em nada... A unica coisa q fiz foi inserir dois campos HIDDEN no meu Form, um é o form_ip_uso e o outro é o form_nav_uso , e copiei e colei a função $_SERVER['REMOTE_ADDR'] e fiz o mesmo para o Hidden do Navegador, por achar q funcionaria, mas nao funcionou....................

Quando testei, deu form_ip_usu CANNOT BE NULL ...

Com isso, eu nem sei se existem mais erros no codigo, afinal, eu to ADAPTANDO, mas nao passo daqui...

Desculpa o tamanho do post, mas essa é minha dúvida...

O que pode estar errado com tudo isso... será q tem uma forma mais fácil.. já tenho tudo pronto para o banco... só queria receber os emails e pegar o IP pelo menos...

 

 

Abraco

 

 

Livio Iago

Compartilhar este post


Link para o post
Compartilhar em outros sites

GALERA, ACONTECEU UMA COISA...Bom, recebi o email. Mesmo dando a mensagem de CANNOT BE NULL para o campo IP... Ele enviou o email pra mim, e tambem enviou o IP e Navegador, mas incrivel, nao enviou mais nada... veio tudo em branco... assim ó...Nome: nome: apelido: email: data: hora: ip: 127.0.xxx.xxxnavegador: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 3.1)Detalhe, meu navegador nao é esse... heheheheheheh, mas enfim...Agora, imagino que deva ser o ENVIO DO IP PARA O BANCO, pois realmente nao tem nada no código relativo a isso...Alguem pode ajudar...abracoLivio

Compartilhar este post


Link para o post
Compartilhar em outros sites

GALERA, ACONTECEU UMA COISA...

 

Bom, recebi o email. Mesmo dando a mensagem de CANNOT BE NULL para o campo IP... Ele enviou o email pra mim, e tambem enviou o IP e Navegador, mas incrivel, nao enviou mais nada... veio tudo em branco... assim ó...

 

Nome:

nome:

apelido:

email:

data:

hora:

ip: 127.0.xxx.xxx

navegador: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 3.1)

 

Detalhe, meu navegador nao é esse... heheheheheheh, mas enfim...

Agora, imagino que deva ser o ENVIO DO IP PARA O BANCO, pois realmente nao tem nada no código relativo a isso...

 

Alguem pode ajudar...

 

abraco

 

 

Livio

 

bom ele vai pegar os dados como plataforma, e versao do seu navegador e nao o nome dele

 

 

e eu ja vi esta parte >>>>>

 

$data = date("d/m/y"); //função para pegar a data de envio do e-mail

$ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário

$navegador = $_SERVER['HTTP_USER_AGENT']; //função para pegar o navegador do visitante

$hora = date("H:i"); //para pegar a hora com a função date

nesse link aqui, creio que deve ajudar>>>http://forum.imasters.com.br/topic/448427-php-carrinho-de-compras/page__view__findpost__p__1773056__fromsearch__1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.