Nostradamus 6 Postado Julho 21, 2007 Share Postado Julho 21, 2007 (editado) Introdução Estava observando que em 99,9 % dos casos de sites, a maioria apenas troca de layout. Pois hoje ensinarei a criar um website simples em PHP na garra! Requerimentos Conheçimento básico de HTML Um pouco de lógica, para saber o que é possível e o que não é dentro do PHP Dedicação Editor de textos (Bloco de notas, notepad++, entre outros) Lógica estruturada Primeiramente, antes de entrar em qualquer linguagem, vamos planejar como o site será. Formulário para account, senha, nome do char, vocação, sexo Inclur arquivo de configuração do site Pegar dados informados Verificar caso campos em branco Verificar se a account é numérica Verificar o número de dígitos da account e da senha Verificar se não foi usado caracteres especiais (*, /, \, !, @, #, $, %, entre outros) Verificar se a account existe Verificar se o char existe Criar a conta com os dados informados Arquivo de configuração do site Configuração de diretório do servidor Configurar nome do servidor Configurar life, mana, level, skills, entre outros dos jogadores a serem criados Rápida explicação Para entender o que iremos fazer em PHP é fácil vamos trabalhar com isso no código: Variavel - Toda variável no PHP é seguida de um $ (ex: $variavel) Condições - A sintaxe das condições no PHP é: if(condição) { // executar algo } Inicialização de código - No PHP indicamos o início de um código pelas "tags": <?php e no final por ?> Comentários - No PHP indicamos um comentário simples por // texto livre ou um comentário multi-linha por /* textosimples */ Usaremos algumas funções nativas do PHP, são elas: file_exists('dir/arquivo.xml') - Função que checa se um arquivo existe fopen('dir/arquivo.xml', 'w') - Função para abrir/criar arquivos, nesse caso usamos "w" então criaremos um arquivo. fwrite('texto', 'dir/arquivo.xml') - Função para escrevermos num arquivo fclose('dir/arquivo.xml') - Função para fechar um arquivo is_numeric($variavel) - Função para verificar se algo é numérico IsSet($variavel) - Função para verificar se algo foi setado ou mesmo usado echo - Função para imprimir uma mensagem na tela strlen - Função para verificar o número de caracteres de uma palavra (string) Mãos na massa! Primeiramente, criemos uma variável e damos a ela um valor de um diretório, o diretório da pasta data: $dir = "C:/otserv/data"; // não coloque o "/" no final Agora, vamos fazer um formulário em HTML, irei fazer um bem simples para o fácil entendimento: <form method="post"> Account <br /> <input type="text" name="account" /> <br /> Password <br /> <input type="text" name="password" /> <br /> Nome <br /> <input type="text" name="nick" /> <br /> Sexo <br /> <select name="sex"> <option value="0">Feminino</option> <option value="1">Masculino</option> </select> <br /> Vocação <br /> <select name="voc"> <option value="1">Sorcerer</option> <option value="2">Druid</option> <option value="3">Paladin</option> <option value="4">Knight</option> </select> <br /> <input type="submit" name="make" value="Criar" /> <br /> </form> Vejamos agora o texto em negrito: Podemos observar que demos nomes para os campos para texto e botões, podemos dar o nome disso de identificação. Usaremos isso para saber quais valores correspondem a tais lugares. Pois sem isso, como saberíamos os dados informados? Observe que usamos o método (method) post para pegar os dados, que no PHP é "chamado" por $_POST['campo']; Vejamos como pegamos a account, senha, nome, e dados do player com POST: $account = $_POST['account']; $password = $_POST['password']; $name = $_POST['nick']; $sex = $_POST['sex']; $voc = $_POST['voc']; Depois de tudo pronto, está na hora de por a mão na massa começando a fazer as condições de criação. Primeiramente vamos ver quais faremos: Caso a account não seja numérica, exibir mensagem de erro Caso a account senha maior ou menor que 7, exibir mensagem de erro Caso a senha seja maior que 20 ou menor que 3, exibir mensagem de erro Caso o nome não ser letras, exibir mensagem de erro Caso a account exista Caso o char exista Vamos fazer pela ordem então: 1) Caso a account não seja numérica, exibir mensagem de erro if(!is_numeric($account)) { echo "Account não numérica"; } 2) Caso a account senha maior ou menor que 7, exibir mensagem de erro if(strlen($account) != 7) { echo "Account deve conter 7 números"; } 3) Caso a senha seja maior que 20 ou menor que 3, exibir mensagem de erro if(strlen($password) > 20 or strlen($password) < 3) { echo "Senha deve ser entre 3 a 20 dígitos"; } 4) Caso o nome não ser letras, exibir mensagem de erro 5) Caso a account exista if(file_exists("$dir/accounts/$account.xml") { echo "A account já existe em nosso banco de dados"; } 6) Caso o char exista if(file_exists("$dir/players/$name.xml") { echo "O jogador já existe em nosso banco de dados"; } Agora depois de todas as condições, faremos a parte de criação da account: $arquivo = fopen("$dir/account/$account.xml"); fwrite($arquivo, ' <?xml version="1.0"?> <account pass="'.$password.'" premDays="0" premEnd="0"> <characters> <character name="'.$name.'"/> </characters> </account> '); fclose($arquivo); OBS: Lembrando que estou me baseando no Evolutions. Agora vamos fazer a criação do player: $arquivoII = fopen($dir/players/$name.xml");fwrite($arquivoII, ' <?xml version="1.0" encoding="UTF-8"?> <player name="'.$name.'" account="'.$account.'" sex="'.$sex.'" lookdir="2" exp="3200" voc="'.$voc.'" level="8" access="1" cap="300" maglevel="0" soul="100" maxdepotitems="1000" lastlogin="0"> <spawn x="300" y="300" z="7"/> <temple x="300" y="300" z="7"/> <health now="100" max="100" food="0"/> <mana now="0" max="0" spent="0"/> <skull redskulltime="0" redskull="0"/> <look type="128" head="20" body="30" legs="40" feet="50" addons="0"/> <skills> <skill skillid="0" level="10" tries="0"/> <skill skillid="1" level="10" tries="0"/> <skill skillid="2" level="10" tries="0"/> <skill skillid="3" level="10" tries="0"/> <skill skillid="4" level="10" tries="0"/> <skill skillid="5" level="10" tries="0"/> <skill skillid="6" level="10" tries="0"/> </skills> <addons/> <deaths> </deaths> <blessings> <blessings/> <spells> </spells> <inventory> <slot slotid="5"> <item id="2431"/> </slot> <slot slotid="6"> <item id="2160" count="99"/> </slot> <slot slotid="10"> <item id="2152" count="48"/> </slot> </inventory> <depots> <depot depotid="1"> <item id="2590"> <inside> <item id="2594"> <inside> <item id="2152" count="50"/> </inside> </item> </inside> </item> </depot> </depots> <storage/> </player> '); fclose($arquivoII); OBS: Eu apenas peguei o player padrão que vem no servidor do Evolutions, caso queira modificar, é simples. Agora, vamos para a última parte: iremos juntar tudo que foi feito. <form method="post"> Account <br /> <input type="text" name="account" /> <br /> Password <br /> <input type="text" name="password" /> <br /> Nome <br /> <input type="text" name="nick" /> <br /> Sexo <br /> <select name="sex"> <option value="0">Feminino</option> <option value="1">Masculino</option> </select> <br /> Vocação <br /> <select name="voc"> <option value="1">Sorcerer</option> <option value="2">Druid</option> <option value="3">Paladin</option> <option value="4">Knight</option> </select> <br /> <input type="submit" name="make" value="Criar" /> <br /> </form> <?php $dir = "C:/otserv/data"; if(IsSet($_POST['make'])) { $account = $_POST['account']; $password = $_POST['password']; $name = $_POST['nick']; $sex = $_POST['sex']; $voc = $_POST['voc']; if(!is_numeric($account)) { echo "Account não numérica"; } else if(strlen($account) != 7) { echo "Account deve conter 7 números"; } else if(strlen($password) > 20 or strlen($password) < 3) { echo "Senha deve ser entre 3 a 20 dígitos"; } else if(file_exists("$dir/accounts/$account.xml") { echo "A account já existe em nosso banco de dados"; } else if(file_exists("$dir/players/$name.xml") { echo "O jogador já existe em nosso banco de dados"; } else { $arquivo = fopen("$dir/account/$account.xml"); fwrite($arquivo, ' <?xml version="1.0"?> <account pass="'.$password.'" premDays="0" premEnd="0"> <characters> <character name="'.$name.'"/> </characters> </account> '); fclose($arquivo); $arquivoII = fopen($dir/players/$name.xml"); fwrite($arquivoII, ' <?xml version="1.0" encoding="UTF-8"?> <player name="'.$name.'" account="'.$account.'" sex="'.$sex.'" lookdir="2" exp="3200" voc="'.$voc.'" level="8" access="1" cap="300" maglevel="0" soul="100" maxdepotitems="1000" lastlogin="0"> <spawn x="300" y="300" z="7"/> <temple x="300" y="300" z="7"/> <health now="100" max="100" food="0"/> <mana now="0" max="0" spent="0"/> <skull redskulltime="0" redskull="0"/> <look type="128" head="20" body="30" legs="40" feet="50" addons="0"/> <skills> <skill skillid="0" level="10" tries="0"/> <skill skillid="1" level="10" tries="0"/> <skill skillid="2" level="10" tries="0"/> <skill skillid="3" level="10" tries="0"/> <skill skillid="4" level="10" tries="0"/> <skill skillid="5" level="10" tries="0"/> <skill skillid="6" level="10" tries="0"/> </skills> <addons/> <deaths> </deaths> <blessings> <blessings/> <spells> </spells> <inventory> <slot slotid="5"> <item id="2431"/> </slot> <slot slotid="6"> <item id="2160" count="99"/> </slot> <slot slotid="10"> <item id="2152" count="48"/> </slot> </inventory> <depots> <depot depotid="1"> <item id="2590"> <inside> <item id="2594"> <inside> <item id="2152" count="50"/> </inside> </item> </inside> </item> </depot> </depots> <storage/> </player> '); fclose($arquivoII); // Para não perder tempo, usaremos minha função de adicionar itens ao players.xml function players_xml(&$nick) { if(!file_exists("$dir/players/players.xml") { $fp = fopen("$dir/players/players.xml", "w"); fwrite($fp, ' <?xml version="1.0"?> <players> </players> '); fclose($fp); } else { $xml = new SimpleXMLElement(file_get_contents("$dir/players/players.xml")); $xml->players->addChild('player'); $player = end($xml->xpath('/players/player')); $nextGuid = (int) $player['guid'] + 1; $newPlayer = end($xml->xpath('/players'))->addChild('player'); $newPlayer->addAttribute('guid', $nextGuid); $newPlayer->addAttribute('name', $nick); $xml->asXML("$dir/players/players.xml"); } } players_xml($name); echo "Char criado com sucesso"; } } ?> OBS: O fórum acabou com minha estruturação do código. E chegamos ao fim de mais um tutorial, qualquer dúvida, é só postar aqui. Editado Julho 21, 2007 por Nostradamus Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/ Compartilhar em outros sites More sharing options...
-LMS- 0 Postado Julho 21, 2007 Share Postado Julho 21, 2007 (editado) First Post OMG, quem não aprender com isso, pode se matar! Belo tutorial Parabéns ^^ Editado Julho 21, 2007 por -LMS- Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-345100 Compartilhar em outros sites More sharing options...
Jeloukos 0 Postado Julho 21, 2007 Share Postado Julho 21, 2007 Se Naum Aprender Agora c Joga da Ponte!!! Parabens Nostradamus TeH + Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-345127 Compartilhar em outros sites More sharing options...
HeNnet 3 Postado Julho 25, 2007 Share Postado Julho 25, 2007 Ótimo tutorial tio nostra, pena que só cria um char por conta x] PARABÉNS! x] Abraços HeNnEt B)\\ Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-347821 Compartilhar em outros sites More sharing options...
Jvchequer 63 Postado Agosto 6, 2007 Share Postado Agosto 6, 2007 Olá Xtibiano, Parabéns, seu tutorial foi aprovado. Estarei movendo ele para a área de tutoriais. Obrigado por trazer conteúdo para o Xtibia.com e espero que continue com o ótimo trabalho. Atenciosamente, JV Chequer *Diretor Xtibia.com* Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-356112 Compartilhar em outros sites More sharing options...
godbati 0 Postado Agosto 6, 2007 Share Postado Agosto 6, 2007 Nuss... TUTO MTO BOM... parabens... pela eficiencia, esforço e paciencia!!!! vlw... mi ajudo mto!!! Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-356188 Compartilhar em outros sites More sharing options...
Dare Devil 8 Postado Agosto 6, 2007 Share Postado Agosto 6, 2007 ~Nostra, estou aqui para avisar que adicionei seu tutorial no meu listão de tutoriais relacionados a websites. ~Topic Muito bom 100% ORGANIZADO. Atenciosamente, ~DD ou ~DarezinhUu - Campeão da 1ª MDS Xtibia Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-356411 Compartilhar em outros sites More sharing options...
adolpho11 0 Postado Agosto 11, 2007 Share Postado Agosto 11, 2007 Belo post. Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-359318 Compartilhar em outros sites More sharing options...
Rogui 0 Postado Agosto 13, 2007 Share Postado Agosto 13, 2007 Ai Nostra Pode da uma ajuda? Eu não to hostando o site, to fazendo isso usando o 110mb Dai o que eu coloco nessa parte: $dir = "C:/otserv/data"; // não coloque o "/" no final O endereço normalmente? Eu fiz isso e não deu certo... Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-360764 Compartilhar em outros sites More sharing options...
1061815 0 Postado Agosto 22, 2007 Share Postado Agosto 22, 2007 Boas... desculpa o icomodo... mas eassim eu n touy percebendo como hei de fazer isso... o 1º code k vc deu num bloko de notas... mas n sei como fazer apartir dai... lxs me ajude.. Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-367180 Compartilhar em outros sites More sharing options...
1061815 0 Postado Agosto 22, 2007 Share Postado Agosto 22, 2007 Ñ e k oseu tutorial teja mal feito pk por akilo k vi e consegui perceber ate ta mt bem explicado eu e k n tou conseguindo perceber como faço para meter todos os codigos k vc deu.. n sei se meto tudo jundo no mesmo bloco de notas se meto separado.... me ajude por favor.. bgd ... Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-367184 Compartilhar em outros sites More sharing options...
GMauri 0 Postado Agosto 23, 2007 Share Postado Agosto 23, 2007 tipo eu tenhu o easyphp 2.0, e baxei um layout que vc (nostradamus) coloco aki no forum, so que eu naum sei aonde colocar os arkivos Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-367574 Compartilhar em outros sites More sharing options...
1061815 0 Postado Agosto 23, 2007 Share Postado Agosto 23, 2007 meu amigfo no easyphp e facil vc deve la ter uma pasta a dzer WWW... e so vc colocar a os arquivos.. Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-368047 Compartilhar em outros sites More sharing options...
HunterHero 2 Postado Agosto 24, 2007 Share Postado Agosto 24, 2007 (editado) Kiurtu, não faça double post* Espero que não volte a acontecer. Legenda: *Double post = dois posts seguidos, sem necessidade, pois pode usar o botão editar. @Tópico: Realmente nunca me dei bem com websites, mas vou tentar seguir esse tuto. THX Editado Agosto 24, 2007 por HunterHero Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-368506 Compartilhar em outros sites More sharing options...
1061815 0 Postado Agosto 24, 2007 Share Postado Agosto 24, 2007 ok desculpa... obrigado pelo aviso... Link para o comentário https://xtibia.com/forum/topic/56928-criando-um-website-para-ot-xml/#findComment-368509 Compartilhar em outros sites More sharing options...
Posts Recomendados