← Desenvolvimento

Alguém sabe este código de PHP?

Lida 4159 vezes

Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Alguém sabe aquele código PHP que se introduz por exemplo num formulario de email para ver o ip de quem enviou? É que criei um e gostaria de ter isso para impedir os spammers..já agora alguém me consegue dizer um trecho de php que faça se enviar aquele formulario 3 vezes em 5 minutos fica banido temporariamente 1 hora..por exemplo? Obrigado :P
Offline

MiguelTavares 
Membro
Mensagens 3871 Gostos 0
Troféus totais: 33
Trófeus: (Ver todos)
Avatar Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Código: [Seleccione]
<?php
$ip 
getenv&#40;"REMOTE_ADDR"&#41;; // obtém o número ip do usuário
?>

Over and out.
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

E quando vou chamar a variavel insiro $ip ou insiro $REMOTE_ADDR ?
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

se usares este código, a variavel que chamas é o $ip
Offline

MiguelTavares 
Membro
Mensagens 3871 Gostos 0
Troféus totais: 33
Trófeus: (Ver todos)
Avatar Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Citação de: "morpheus"
se usares este código, a variavel que chamas é o $ip

Tá dito ;)
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Já agora algum de vocês sabe aquela função que pedi? Tipo um IP ao enviar o formulário 3 vezes em 60 minutos fica banido durante..24horas por exemplo?  :oops:
Offline

MiguelTavares 
Membro
Mensagens 3871 Gostos 0
Troféus totais: 33
Trófeus: (Ver todos)
Avatar Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Isso já exige algumas condições IF...THEN...ELSE.
A parte de banir não sei se é possivel.
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

morpheus, tu que fizes-te aqueles maravilhosos tutoriais não me consegues ajudar? :(
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Já agora que estão a falar em formulários, eu gostaria de saber onde introduzir o código "sendmail"...eu tenho o formulário feito mas não sei onde colocar o código e como fazer para este funcionar.

Gostava, se possivel, que alguém me explicasse detalhadamente como fazer!

Obrigado
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

officer, já te mandei uma mp.

dancer_cat, penso que nos estás a perguntar qual a linha a inserir e o contexto, correcto?

se assim for, é isto:

Código: [Seleccione]
mail($sendto, $subject, $mesg);

onde $sendto é o destinatário, $subject é o assunto e $mesg é a mensagem em si. ;)
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Obrigado pelo código morpheus, vai dar jeito ;), mas o que eu pretendo era que a pessoa preencha o formulário, e depois quando carregar no botão "Enviar" o formulário seja enviado para o mail pretendido..

Depois eu tenho o seguinte código de "sendmail":

<?
  $nome = $_POST['nome']
  $email = $_POST['email']
  $localidade = $_POST['localidade']
  $telefone = $_POST['telefone']
  $assunto = $_POST['assunto']
  $mensagem = $_POST['mensagem']
 
  mail( "mail_pretendido@qualquer.com", "Dados do Formulario",
    $nome, "From: $email" );
  header( "Location: http://no sitio.htm" ;
?>

Gostava agora de saber onde coloco o código? e como faço para que o botão "Enviar" envie o formulário todo..

Espero ter-me explicado bem..eu sou novo nisto por isso tenho mais dificuldade em expôr o caso.
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

ah, ok! então é assim.

No teu formulário, vais ter que dar nomes a cada caixa (estilo T1). e vais ter que definir uma acção a fazer quando se carrega no botão enviar.

Apontas essa acção para um ficheiro com o nome "enviar.php" (por exemplo) e, dentro desse ficheiro, vais por o teu código (o que puseste atrás) e na variável "mensagem", vais definir o que queres que apareça no mail.

por exemplo. tens um formulário que além do nome e mail, tens dois campos. idade e telefone.

se na mensagem queres que apareça a idade e o telefone, poes a "$mensagem" como:

Código: [Seleccione]
$mensagem='Tenho '.$idade.' anos e moro em '.$morada.'. Adeus!';

sei que é um bocadinho complicado de perceber para quem nunca mexeu nisto, mas se experimentares, vais ver que até é muito fácil. ;)
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Excelente ajuda morpheus! :D

dancer_cat, bem-vindo ao +tráfego! :D
Offline

dancer_cat 
Membro
Mensagens 15 Gostos 1
Troféus totais: 23
Trófeus: (Ver todos)
Level 5 Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Tankx fpware, espero um dia conseguir tb ajudar outros a resolver os seus problemas da mesma maneira que me ajudaram a mim ;) foram 5 estrelas...

Abraços a todos e Beijos a todas
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

dancer_cat a ideia do +trafego é exactamente essa: ajuda e sê ajudado! :D