
Histórico de Curtidas
-
Renato recebeu reputação de Cat em Atualização em breve! Nova Equipe, redução de ADS, site mais rápido e outras novidades!hoje eu to nostálgico
10 anos vai ser uma data histórica
-
Renato recebeu reputação de Pedro. em [PHP] Random KeyGalera, estava colocando confirmação por email no sistema de cadastro de um site que estou fazendo, então tive que fazer essa função pra gerar uma chave de ativação pra cada user.
Ai resolvi postar aqui.
A função gera x caracteres diferentes que incluem todo o alfabeto em maiusculo, todo o alfabeto em minusculo e números (26 + 26 + 10 = 62 caracteres diferentes)
<?php
function keyrand($len = 10) {
$array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
$key = array();
for($i = 1; $i <= $len; $i++)
{
$r = rand(0,count($array));
$key[$i] = $array[$r];
}
return join($key);
}
?>
[/code] Exemplos de uso: [code]
<?php echo keyrand(); ?>
Por padrão ele irá gerar randomicamente 10 caracteres diferentes.
<?php echo keyrand(15); ?>
[/code]
Irá gerar 15 caracteres diferentes. Ou substitua o 15 pela quantidade de caracteres que quer gerar.
-
Renato recebeu reputação de gpetao em YurOTS 7.6 EditadoCara te amo.
Se a gente não começar postar conteúdo vai ficar parado mesmo.
É que eu ando muito ocupado ultimamente com coisas mais importantes, mas quando eu tiver um tempo vo postar bastante conteúdo, rs.
REP+
-
Renato recebeu reputação de BlackLubbuk em Criando Spells para seu servidor!Putz cara, perfeito.
Rep+
-
Renato recebeu reputação de lassdarck2 em [TalkAction] Criar Logs (GM+)Fiz o script para o pedido:
Créditos no script.
Explicação: O GM fala /createlog Texto, e o texto é gravado dentro de um arquivo chamado logs.txt na data do seu server.
Em data/talkactions/scripts crie um arquivo chamado createlog.lua e bote dentro:
--[Created by Renato Ribeiro for TibiaKing.com]--
--[Pedido: http://tibiaking.com/forum/topic/2626-talkaction-pedido-logs-para-gms]--
function onSay(cid, words, param, channel)
local file = "data/logs.txt"
local name = getPlayerName(cid)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Erro: Sem parametro.")
return true
else
doWriteLogFile(file, "["..name.."] Log: "..param..".")
end
end
[/code] Agora abra o arquivo [color=#0000FF][b]talkactions.xml[/b][/color] na pata [b]data/talkactions[/b] e bote esta tag: [code]<talkaction log="yes" access="3" words="/createlog" event="script" value="createlog.lua"/>
Pronto, agora sempre que um gm, cm ou god falar "/createlog Texto", o texto será gravado no arquivo logs.txt que será criado na pasta data do seu server.
É isso!
-
Renato recebeu reputação de Cain Jorge em [Talk] Teleportar player pra qualquer lugarCréditos no Script
Explicação: Simples comando pra teleportar o player para qualquer lugar
Exemplo: /tt Renato, 350, 147, 7
Sem bugs! 100%
Vá em data/talkactions/scripts copie qualquer arquivo, renomeie para teleportthing.lua e cole dentro:
--[by Renato Ribeiro to TibiaKing.com]--
function onSay(cid, words, param, channel)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário um paramêtro.")
return TRUE
end
local prm = string.explode(param, ",")
local plr = getPlayerByName(prm[1])
if (plr == nil) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player está offline ou não existe.")
elseif (prm[4] == nil or prm[4] == '') then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário todas as coordenadas x, y, z, respectivamente separada por vírgulas.")
else
doTeleportThing(plr, {x=prm[2], y=prm[3], z=prm[4]})
doSendMagicEffect(getCreaturePosition(cid), 10)
return TRUE
end
end
[/code] Va em data/talkactions/talkactions.xml e ponha em gamemaster ou em qualquer lugar: [code]<talkaction log="yes" words="/tt" access="3" event="script" value="teleportthing.lua">
Não retire o acess="3", IMPORTANTE!
Bjundas</talkaction>
-
Renato recebeu reputação de Cain Jorge em Mapping InspirationsLpz, você me tem
-
Renato recebeu reputação de Cain Jorge em Mapping InspirationsOlá galera.
Bom, pra quem me conhece a bastante tempo sabe que eu já fui mapper. Eu comecei minha jornada no Open Tibia justamente como mapping, e não como programador (como muitos pensam).
Eu sempre tive esse fascínio por criação. Não é a toa que também sou web designer.
Mas hoje em dia para mim mappear não há mais tempo, ainda tão novo e tenho meus compromissos com o trabalho, sobra pouco tempo, e o tempo que resta eu dedico à programação, que é a carreira que eu pretendo seguir.
Pois bem, decidi criar este tópico com as melhores (ao meu ver) imagens de mapping, juntos com o autor é claro, que servirá como inspiração para as novas gerações do mapping que virão (:
Que ponte magnífica, mas vejo estragos, será que é segura?
Autor: Peroxide
Onde estou? é tudo tão diferente, tão... aterrorizador.
Autor: Neon
Que tal uma pontezinha para evitar possíveis quedas? Não queremos ver ninguém se machucar!
Autor: HesteN
Um pouco de natureza, ahh, que ar bom de se respirar em frente à esta linda cachoeira!
Autor: Peroxide
Pena que em lugares tão bonitos, árvores exuberantes, existam caçadores, pior para eles.
Autor: Peroxide
Sente um calafrio na espinha?
Autor: Illusion
Vejo sábios elfos à me guiar.
Autor: Peroxide
Uma casa na montanha, rodeada por natureza.
Autor:
--
Logo logo tem mais, só ficar ligado aqui.
-
Renato recebeu reputação de XLetinhoBRX em Mapping InspirationsOlá galera.
Bom, pra quem me conhece a bastante tempo sabe que eu já fui mapper. Eu comecei minha jornada no Open Tibia justamente como mapping, e não como programador (como muitos pensam).
Eu sempre tive esse fascínio por criação. Não é a toa que também sou web designer.
Mas hoje em dia para mim mappear não há mais tempo, ainda tão novo e tenho meus compromissos com o trabalho, sobra pouco tempo, e o tempo que resta eu dedico à programação, que é a carreira que eu pretendo seguir.
Pois bem, decidi criar este tópico com as melhores (ao meu ver) imagens de mapping, juntos com o autor é claro, que servirá como inspiração para as novas gerações do mapping que virão (:
Que ponte magnífica, mas vejo estragos, será que é segura?
Autor: Peroxide
Onde estou? é tudo tão diferente, tão... aterrorizador.
Autor: Neon
Que tal uma pontezinha para evitar possíveis quedas? Não queremos ver ninguém se machucar!
Autor: HesteN
Um pouco de natureza, ahh, que ar bom de se respirar em frente à esta linda cachoeira!
Autor: Peroxide
Pena que em lugares tão bonitos, árvores exuberantes, existam caçadores, pior para eles.
Autor: Peroxide
Sente um calafrio na espinha?
Autor: Illusion
Vejo sábios elfos à me guiar.
Autor: Peroxide
Uma casa na montanha, rodeada por natureza.
Autor:
--
Logo logo tem mais, só ficar ligado aqui.
-
ACTIONS
onUse(cid, item, fromPosition, itemEx, toPosition)
onLogin(cid)
onLogout(cid)
onAdvance(cid, skill, oldLevel, newLevel)
onStatsChange(cid, attacker, type, combat, value)
onDirection(cid, old, current)
onOutfit(cid, old, current)
onSendMail(cid, receiver, item, openBox)
onReceiveMail(cid, sender, item, openBox)
onTradeRequest(cid, target, item)
onTradeAccept(cid, target, item, targetItem)
onJoinChannel(cid, channel, users)
onLeaveChannel (cid, channel, users)
onLook(cid, thing, position, lookDistance)
onThink(cid, interval)
onTextEdit(cid, item, newText)
onReportBug(cid, comment)
onAreaCombat(cid, tileItem, tilePosition, isAggressive)
onPush(cid, target)
onTarget(cid, target)
onFollow(cid, target)
onCombat(cid, target)
onAttack(cid, target)
onCast(cid, target)
onKill(cid, target, lastHit)
onDeath(cid, corpse, deathList)
onPrepareDeath(cid, deathList)
[/code] [center][/center] [center][size=8]GLOBAL EVENTS[/size][/center] [code]onThink(interval)
onStartup()
onShutdown()
onGlobalSave()
onRecord(current, old, cid)
onTime() onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
onEquip(cid, item, slot)
onDeEquip(cid, item, slot)
onAddItem(moveItem, tileItem, position, cid)
onRemoveItem(moveItem, tileItem, position, cid)[/code] [center][/center] [center][size=8]SPELLS[/size][/center] [code]onCastSpell(cid, var) onSay(cid, words, param, channel) onUseWeapon(cid, var)
• Retirado do SCRIPTSYSTEM_HELP, doc das Sources do TFS
CREATURE SCRIPTS MOVEMENTS TALKACTIONS WEAPONS -
Renato recebeu reputação de Victor Cain J em Mapping InspirationsOlá galera.
Bom, pra quem me conhece a bastante tempo sabe que eu já fui mapper. Eu comecei minha jornada no Open Tibia justamente como mapping, e não como programador (como muitos pensam).
Eu sempre tive esse fascínio por criação. Não é a toa que também sou web designer.
Mas hoje em dia para mim mappear não há mais tempo, ainda tão novo e tenho meus compromissos com o trabalho, sobra pouco tempo, e o tempo que resta eu dedico à programação, que é a carreira que eu pretendo seguir.
Pois bem, decidi criar este tópico com as melhores (ao meu ver) imagens de mapping, juntos com o autor é claro, que servirá como inspiração para as novas gerações do mapping que virão (:
Que ponte magnífica, mas vejo estragos, será que é segura?
Autor: Peroxide
Onde estou? é tudo tão diferente, tão... aterrorizador.
Autor: Neon
Que tal uma pontezinha para evitar possíveis quedas? Não queremos ver ninguém se machucar!
Autor: HesteN
Um pouco de natureza, ahh, que ar bom de se respirar em frente à esta linda cachoeira!
Autor: Peroxide
Pena que em lugares tão bonitos, árvores exuberantes, existam caçadores, pior para eles.
Autor: Peroxide
Sente um calafrio na espinha?
Autor: Illusion
Vejo sábios elfos à me guiar.
Autor: Peroxide
Uma casa na montanha, rodeada por natureza.
Autor:
--
Logo logo tem mais, só ficar ligado aqui.
-
Renato recebeu reputação de Victor Cain J em Mapping InspirationsLute! Não podemos deixar envenenar nossas terras!
Autor: Magnetico
Faraós não são de nada!
Autor: WardawG
Ufa! Escapei por pouco.
Autor: Magnetico
Ele realmente acha que me assusta?
Autor: WardawG
Hmmm, nature!
Autor: knatte1
Uma breve caçada em dragões, típico.
Autor: Leftwing
Sinistro!
Autor: Infesty
Só de vigia.
Autor: Magnetico
Nômades malditos, deixe-me passar!
Autor: Infesty
Pow, morri :/
Autor: BardockTornado
Meu reinado acaba de começar!
Autor: Infesty
Curtindo uma prainha ai, quem topa?
Autor: AundSoul
Ar fresco!
Autor: BardockTornado
Olá, alguém ai?
Autor: Infesty
Épico?
Autor: TILFen
-
Renato recebeu reputação de Zauster em [Resolvido] Atributos em Itensmariatti,
A gente quer te ajudar, assim como vem ajudando em todas as suas dúvidas.
Mas cara, ajude-nos também, escreva certo, não digo abreviação do tipo "vc", "intão", "agnt", mas como você formula as frases. Eu não entendo metade dos seus posts, não sei como o pessoal que te ajuda entende.
Não custa nada você fazer esse favorzinho né? Valeu!!
Abraços!
-
Renato recebeu reputação de Zauster em [Resolvido] Atributos em ItensNão força (:
Faça o mínimo necessário para a gente entender.
Somente para te ajudar, ou seja, para seu próprio benefício.
-
Renato recebeu reputação de VertusSpriter em Mapping InspirationsOlá galera.
Bom, pra quem me conhece a bastante tempo sabe que eu já fui mapper. Eu comecei minha jornada no Open Tibia justamente como mapping, e não como programador (como muitos pensam).
Eu sempre tive esse fascínio por criação. Não é a toa que também sou web designer.
Mas hoje em dia para mim mappear não há mais tempo, ainda tão novo e tenho meus compromissos com o trabalho, sobra pouco tempo, e o tempo que resta eu dedico à programação, que é a carreira que eu pretendo seguir.
Pois bem, decidi criar este tópico com as melhores (ao meu ver) imagens de mapping, juntos com o autor é claro, que servirá como inspiração para as novas gerações do mapping que virão (:
Que ponte magnífica, mas vejo estragos, será que é segura?
Autor: Peroxide
Onde estou? é tudo tão diferente, tão... aterrorizador.
Autor: Neon
Que tal uma pontezinha para evitar possíveis quedas? Não queremos ver ninguém se machucar!
Autor: HesteN
Um pouco de natureza, ahh, que ar bom de se respirar em frente à esta linda cachoeira!
Autor: Peroxide
Pena que em lugares tão bonitos, árvores exuberantes, existam caçadores, pior para eles.
Autor: Peroxide
Sente um calafrio na espinha?
Autor: Illusion
Vejo sábios elfos à me guiar.
Autor: Peroxide
Uma casa na montanha, rodeada por natureza.
Autor:
--
Logo logo tem mais, só ficar ligado aqui.
-
Renato recebeu reputação de Bluetooth em Transformando ItensFaz o seguinte.
Vai em actions > scripts
Cria um arquivo lua chamado silktoyarn.lua e poe:
function onUse(cid, item, fromPosition, itemEx, toPosition)
silk = item.itemid
yarn = ID_DA_YARN
if(getPlayerItemCount(cid, silk) == 10) then
doPlayerRemoveItem(cid, silk, 10)
doPlayerAddItem(uid, yarn)
doSendMagicEffect(getPlayerPosition(cid), 15)
end
end[/code] Depois abra o arquivo actions > actions.xml E adicione a tag: [code]<action itemid="ID_DA_SILK" event="script" value="silktoyarn.lua"/>
Não esqueça de substituir o ID_DA_SILK na tag XML e o ID_DA_YARN no código.
Se não funcionar troque dentro do código lua, aonde diz 'silk = item.itemid' ponha o id da silk no lugar do item.itemid
E não sei se vai funfar não porque fiz agora de improviso, não sei nem se as funções são essas mesmos.
Mas qualquer coisa só falar aqui.
Explicando o Script:
Pra dar certo, você não pode clicar nele com 100, se não, não funciona mesmo. Você tem que separar 10 e clicar pra virar 1 yarn.
Depois eu crio um script que transforma 100 em 10, 90 em 9 etc. Mas agora to ocupadão.
Abraços e boa sorte!
-
Renato recebeu reputação de johnconolly em [SEO] Otimização de Sites>> SEO – Otimização De Sites >>
Otimização de Sites é o conjunto de estratégias com o objetivo de potencializar e melhorar o posicionamento de um site nas páginas de resultados naturais (orgânicos) nos sites de busca. O termo SEO (do inglês, Search Engine Optimization, Acrônimo SEO, também traduzido no Brasil como “otimização para mecanismos de busca”) também se refere a indústria de consultoria, que trabalha na otimização de projetos e websites de seus clientes. Alguns comentaristas, e também alguns profissionais de SEO, dividiram os métodos usados por seus praticantes em categorias como os “SEO de White Hat” (geralmente utilizam métodos aprovados pelos sistemas de busca, como a prática de construção de conteúdo relevante e melhoria da qualidade do site), ou “SEO de Black Hat” (utilizam truques como “Cloaking”, que é a camuflagem do conteúdo real da página, e spamdexing). O termo “spamdexing” (originado da fusão de spam e indexing) refere-se a pratica de Spam direcionada aos motores de busca.
Leia mais > Embi Marketing - Ipiranga
-
Renato recebeu reputação de hylo em [TalkAction] Recarregar soft boots por comandoCréditos no script.
Explicação: simples, você fala !soft e recarrega sua soft por X valor. Retorna erro caso não tenha a grana ou a worn soft boots.
• Crie um arquivo LUA com o nome soft.lua em data/talkactions/scripts e ponha:
--[Created by Renato Ribeiro to www.TibiaKing.com and others]--
function onSay (cid, words, param, channel)
local preco = 10000 -- gold coins
local wornId = yyyy -- id da worn soft boots, bota descarregada
local newId = xxxx -- id da nova soft boots, bota carregada
if getPlayerItemCount(cid, wornId) >= 1 and getPlayerMoney(cid) >= preco then
doSendMagicEffect(getPlayerPosition(cid), 12)
doPlayerRemoveItem(cid, wornId)
doPlayerAddItem(cid, newId)
doPlayerRemoveMoney(cid, preco)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recarregou sua soft por "..preco.." gps.")
else
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem "..preco.." gps ou uma worn soft boots para poder recarregar.")
return TRUE
end
end[/code] [color=#FF0000][b]Atenção![/b][/color] Aqui nestes dois locais: [i] local wornId = [color=#800080]yyyy[/color] local newId = [color=#000080]xxxx[/color][/i] Troque o [color=#800080]yyyy[/color] pelo ID da worn soft boots (descarregada) e o [color=#000080]xxxx[/color] pelo ID da soft boots (carregada). [b]• Depois em [color=#0000FF]data/talkactions/talkactions.xml[/color] ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!soft" access="0" event="script" value="soft.lua">
E voalá! (:
OBS: Script não testado!</talkaction>
-
Renato recebeu reputação de hFrost em [Action] Quest que ganha crystal coins equivalente ao levelCréditos: Eu (por criar o script), thalia (por me ajudar e algumas correções básicas)
Sei que parece um script básico, mas é que eu estou aprendendo ainda, então não reclama .l.
Explicação: Se você for level 50 vai ganhar 50 crystal coins, se for level 10 vai ganhar 10 crystal coins etc.
• Crie um arquivo LUA com o nome cclevelquest.lua em data/actions/scripts
E ponha:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
storage = 1579,
itemid = 2160,
qnt = getPlayerLevel(cid),
}
if getPlayerStorageValue(cid, config.storage) == 1 then
return doPlayerSendCancel(cid, "You already make this quest.")
else
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You received "..config.qnt.." crystal coins.")
doPlayerAddItem(cid, config.itemid, config.qnt)
end
end
[/code] Você pode trocar o itemid pra outro item que seja contável também.. mas não esquece de trocar o nome nessa linha: [code]doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You received "..config.qnt.." crystal coins.") Onde tá crystal coins. • Em actions.xml coloque <action actionid="9898" event="script" value="cclevelquest.lua"/>
No mapeditor você vai colocar 9898 no actionid nas propriedades do chest e não em uniqueid
Abraços.
-
Renato recebeu reputação de ADM Milord em [Talk] Cassino SystemCassino System por talkaction.
Créditos no script.
Explicação: ele fala !apostar X, esse X é em mil, ou seja se eu falar !apostar 50, será 50k. O X não poderá ser maior do que o "max =" e menor do que o "min =" que será estipulado por você. Se o player ganhar, o premio será o valor que ele apostou multiplicado pelo valor do "premio =". As chances de o player ganhar está ali no "rdm = math.random(1,3)" no caso o player terá 1/3 (1 terço, ou, uma chance em três) chances de ganhar, se você mudar para (1,5) ele terá uma chance em 5 para ganhar, e assim sucessivamente. LEMBRANDO QUE VOCê DEVE MANTER O NÚMERO 1 E SÓ ALTERAR O SEGUNDO NÚMERO.
• Crie um arquivo LUA com o nome cassino.lua em data/talkactions/scripts e ponha:
function onSay (cid, words, param, channel)
local prm = tonumber(param)
local min = 1
local max = 500
local rdm = math.radom(1,3)
local premio = 2 -- o valor que tiver aqui multiplica o valor apostado se o cara ganhar
if (prm == nil) or prm < min or prm > max then
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa apostar no mínimo "..min.."k ou no máximo "..max.."k.")
return TRUE
elseif getPlayerMoney(cid) < prm*1000 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem "..prm.."k para apostar.")
doSendMagicEffect(getPlayerPosition(cid), 2)
return TRUE
elseif rdm == 1 then -- ele ganhou
doPlayerRemoveMoney(cid, prm*1000)
doPlayerAddMoney(cid, (prm*1000)*premio)
elseif rdm > 1 then -- ele perdeu
doPlayerRemoveMoney(cid, prm*1000)
doSendMagicEffect(getPlayerPosition(cid), 2)
end
return TRUE
end
[/code] [b]• Depois em [color=#006400]data/talkactions/talkactions.xml[/color] ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!apostar" access="0" event="script" value="addpremium.lua"/>
Mude aonde esta "!apostar" para o comando que você deseja.
Status: Não testado. //quem testar avise.
-
Renato recebeu reputação de rodox2008 em [HTML + PHP] Formulário de ContatoFormulário de Contato - Funcionando
Olá galera, o tutorial abaixo vai te ajudar a criar um formulário de contato que funciona perfeitamente!
Basta seguir passo-a-passo, e caso surjam duvidas no meio do caminho, basta perguntar aqui mesmo.
PS: É necessário um conhecimento de HTML e uma base em lógica de programação!
1 - iremos criar o index.html onde ficará o formulário.
<form action="enviar.php" method="POST">
<input type="hidden">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nome:<br> <input type="text" size="30" name="nome" value=""></td>
</tr>
<tr>
<td>E-mail:<br> <input type="text" size="30" name="email" value=""></td>
</tr>
<tr>
<td>Assunto:<br> <input type="text" size="30" name="assunto" value=""></td>
</tr>
<tr>
<td>Mensagem:<br> <textarea cols="40" rows="10" name="mensagem"></textarea>
</td>
</tr>
<tr>
<td> <input name="submit" type="submit" value=" Enviar "> <input name="reset" type="reset" value=" Limpar "></td>
</tr>
</table>
</form>
[/code] Acima, criei um formulário simples com NOME, EMAIL, ASSUNTO, MENSAGEM. Sinta-se a vontade para editar/adicionar, porem você deverá colocar name em todos os campos, exemplo: Campo do nome: <input type="text" size="30" [b]name="nome"[/b] value=""> Porque será usado no PHP, no envio para e-mail. Uma parte imporante e que não deve faltar também é o action="enviar.php" method="POST", dentro do form, pois o enviar.php é o nome do arquivo que iremos criar no segundo passo, onde ele enviará o email, e retornará as mensagens. [b][size=3][color=#FF0000]2[/color][/size] - Agora iremos criar a parte de PHP.[/b] Crie um arquivo [b]enviar.php[/b] com o código: [code]
<?php
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$mensagem = $_POST["mensagem"];
global $email;
$data = date("d/m/y"); //pegando a data do evio
$hora = date("H:i"); //pegando a hora
$ip = $_SERVER['REMOTE_ADDR']; //pegando ip do cara que enviou
if($nome != NULL or $mensagem != NULL or $assunto != NULL or $email != NULL) {
mail ("[email protected]", //email para enviar dados
"$assunto",
"Nome: $nome\nData: $data\nIp: $ip\nHora: $hora\nE-mail: $email\n\nMensagem: $mensagem",
"From: $email"
);
echo "<p>Obrigado por entrar em contato, $nome</p>";
echo "<p>Entraremos em contato quando possível</p>";
}
else {
echo "<p>Mensagem não enviada, por favor preencha corretamente o formulário.</p>";
}
?>
Abaixo tem a explicação do código acima
2.1 - Você vai setar as variáveis:
$nome = $_POST["nome"];
• = Aqui é o nome da variável, você a escolhe.
• = Aqui é o nome do campo que voce usou no HTML (aonde vocês pois name="" que eu disse ser necessário)
As outras variáveis são para pegar a hora, data, etc. Não mecha.
2.2, você fará uma condição if, onde retornará erro caso não preenchido o formulário corretamente:
if($nome != NULL or $mensagem != NULL or $assunto != NULL or $email != NULL) {
• = Caso o campo do nome estiver em branco...
• = Caso o campo da mensagem estiver em branco...
E assim sucessivamente, você escolhe os campos necessários, só acrescentando or $variável != NULL
2.3 - você fará a ação caso a condição do passo 2.2 for verdadeira, ou seja, estiver todos os campos preenchidos:
mail ("[email protected]", //email para enviar dados
"$assunto",
"Nome: $nome\nData: $data\nIp: $ip\nHora: $hora\nE-mail: $email\n\nMensagem: $mensagem",
"From: $email"
);
echo "<p>Obrigado por entrar em contato, $nome</p>";
echo "<p>Entraremos em contato quando possível</p>";
}
• = Para onde enviará os dados do formulário depois do cara clicar em Enviar
• = Aqui é a mensagem que aparecerá no email, as caracteres \n significam uma quebra de linha, ou seja, igual <br> do html
• = Aqui é a mensagem que aparecerá pro usuário logo quando ele clicar em Enviar.
2.4 - você fará a ação caso a condição do passo 2.2 for falsa, ou seja, estiver algum campo vazio:
echo "<p>Mensagem não enviada, por favor preencha corretamente o formulário.</p>"; }
• = Aqui vai a mensagem de ERRO.
-
Renato recebeu reputação de Arysoooon em Criando Spells para seu servidor!Putz cara, perfeito.
Rep+
-
Renato recebeu reputação de Silverz em Criando OTServ, IP Fixo, SqliteStudio e Colocando OTServ onlineArthur, a diferença é que o Matheus arruma...
UHDAUSDHAUDHSAU
Muito bom mat, rep+
-
Renato recebeu reputação de Viny 13 em Mudar o nome da skill shielding
Daí eu já não sei se é pelo cliente ou pelo servidor...
-
Renato recebeu reputação de kelvin9826 em [HTML + PHP] Formulário de ContatoFormulário de Contato - Funcionando
Olá galera, o tutorial abaixo vai te ajudar a criar um formulário de contato que funciona perfeitamente!
Basta seguir passo-a-passo, e caso surjam duvidas no meio do caminho, basta perguntar aqui mesmo.
PS: É necessário um conhecimento de HTML e uma base em lógica de programação!
1 - iremos criar o index.html onde ficará o formulário.
<form action="enviar.php" method="POST">
<input type="hidden">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nome:<br> <input type="text" size="30" name="nome" value=""></td>
</tr>
<tr>
<td>E-mail:<br> <input type="text" size="30" name="email" value=""></td>
</tr>
<tr>
<td>Assunto:<br> <input type="text" size="30" name="assunto" value=""></td>
</tr>
<tr>
<td>Mensagem:<br> <textarea cols="40" rows="10" name="mensagem"></textarea>
</td>
</tr>
<tr>
<td> <input name="submit" type="submit" value=" Enviar "> <input name="reset" type="reset" value=" Limpar "></td>
</tr>
</table>
</form>
[/code] Acima, criei um formulário simples com NOME, EMAIL, ASSUNTO, MENSAGEM. Sinta-se a vontade para editar/adicionar, porem você deverá colocar name em todos os campos, exemplo: Campo do nome: <input type="text" size="30" [b]name="nome"[/b] value=""> Porque será usado no PHP, no envio para e-mail. Uma parte imporante e que não deve faltar também é o action="enviar.php" method="POST", dentro do form, pois o enviar.php é o nome do arquivo que iremos criar no segundo passo, onde ele enviará o email, e retornará as mensagens. [b][size=3][color=#FF0000]2[/color][/size] - Agora iremos criar a parte de PHP.[/b] Crie um arquivo [b]enviar.php[/b] com o código: [code]
<?php
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$mensagem = $_POST["mensagem"];
global $email;
$data = date("d/m/y"); //pegando a data do evio
$hora = date("H:i"); //pegando a hora
$ip = $_SERVER['REMOTE_ADDR']; //pegando ip do cara que enviou
if($nome != NULL or $mensagem != NULL or $assunto != NULL or $email != NULL) {
mail ("[email protected]", //email para enviar dados
"$assunto",
"Nome: $nome\nData: $data\nIp: $ip\nHora: $hora\nE-mail: $email\n\nMensagem: $mensagem",
"From: $email"
);
echo "<p>Obrigado por entrar em contato, $nome</p>";
echo "<p>Entraremos em contato quando possível</p>";
}
else {
echo "<p>Mensagem não enviada, por favor preencha corretamente o formulário.</p>";
}
?>
Abaixo tem a explicação do código acima
2.1 - Você vai setar as variáveis:
$nome = $_POST["nome"];
• = Aqui é o nome da variável, você a escolhe.
• = Aqui é o nome do campo que voce usou no HTML (aonde vocês pois name="" que eu disse ser necessário)
As outras variáveis são para pegar a hora, data, etc. Não mecha.
2.2, você fará uma condição if, onde retornará erro caso não preenchido o formulário corretamente:
if($nome != NULL or $mensagem != NULL or $assunto != NULL or $email != NULL) {
• = Caso o campo do nome estiver em branco...
• = Caso o campo da mensagem estiver em branco...
E assim sucessivamente, você escolhe os campos necessários, só acrescentando or $variável != NULL
2.3 - você fará a ação caso a condição do passo 2.2 for verdadeira, ou seja, estiver todos os campos preenchidos:
mail ("[email protected]", //email para enviar dados
"$assunto",
"Nome: $nome\nData: $data\nIp: $ip\nHora: $hora\nE-mail: $email\n\nMensagem: $mensagem",
"From: $email"
);
echo "<p>Obrigado por entrar em contato, $nome</p>";
echo "<p>Entraremos em contato quando possível</p>";
}
• = Para onde enviará os dados do formulário depois do cara clicar em Enviar
• = Aqui é a mensagem que aparecerá no email, as caracteres \n significam uma quebra de linha, ou seja, igual <br> do html
• = Aqui é a mensagem que aparecerá pro usuário logo quando ele clicar em Enviar.
2.4 - você fará a ação caso a condição do passo 2.2 for falsa, ou seja, estiver algum campo vazio:
echo "<p>Mensagem não enviada, por favor preencha corretamente o formulário.</p>"; }
• = Aqui vai a mensagem de ERRO.