Guloso Forum

~~> Tibia FanSite ~~> Um bocadinho de tudo! | ©Guloso | ~~

PeakBux
vcBux

Você não está conectado. Conecte-se ou registre-se

Criando Site para OT XML

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Criando Site para OT XML em Ter Out 30, 2007 3:57 pm

Guloso


Administrador
Administrador
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>
Comentários - No PHP indicamos um comentário simples por // texto livre ou um comentário multi-linha por /* texto
simples */



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:



Código:
$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:



Código:
<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:

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:



Código:
$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



Código:
if(!is_numeric($account)) {
    echo "Account não numérica";
}


2) Caso a account senha maior ou menor que 7, exibir mensagem de erro



Código:
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



Código:
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



Código:
if(file_exists("$dir/accounts/$account.xml") {
    echo "A account já existe em nosso banco de dados";
}


6) Caso o char exista



Código:
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:



Código:
$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:



Código:
$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.



Código:
<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: Bom Proveito deste Tuto Razz expero que sirva para muita gente =)

E chegamos ao fim de mais um tutorial, qualquer dúvida, é só postar aqui.

Obrigado.


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

2 Re: Criando Site para OT XML em Qua Out 31, 2007 7:07 am

Fubu


Web Designer
Web Designer
mas tpw...isso ae e talz eu nom sabia xD

ótimo tutor =D



Agora vo apavora com o site do meu ot AEUaheuHAE

vlws =D


_________________
Hoster e Mapper
100%
Programmer e Scripter
70%

Criei meu Site o/
http://fubucars.netfirms.com
Blog Sobre Games
http://fubugames.blogspot.com/

===EQUIPE DE APOIO GULOSO FÓRUM===
Ver perfil do usuário http://fubucars.netfirms.com

3 Re: Criando Site para OT XML em Qua Out 31, 2007 8:29 am

Guloso


Administrador
Administrador
Obrigado Razz
Sempre a melhorar o Guloso Forum!
Smile


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

4 Re: Criando Site para OT XML em Qui Nov 01, 2007 6:50 am

Muito Bom aprovado!!!!


_________________
----------GM Leon xD---------
●Mapper[50%]
●Hoster [85%]
●Programmer[95%]
●scripter[95%]
●Criador[75%]
●Revolucionário[95%]
Ver perfil do usuário

5 Re: Criando Site para OT XML em Qui Nov 01, 2007 6:59 am

Eu to com dúvida pq n conheço nd dissu aonde eu boto issu e se tem q baixa alguma parada???


_________________
----------GM Leon xD---------
●Mapper[50%]
●Hoster [85%]
●Programmer[95%]
●scripter[95%]
●Criador[75%]
●Revolucionário[95%]
Ver perfil do usuário

6 Re: Criando Site para OT XML em Qui Nov 01, 2007 7:41 am

Guloso


Administrador
Administrador
leon tem no tuto toda a informação!
Duvidas e so postar


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

7 Re: Criando Site para OT XML em Qua Nov 07, 2007 12:34 pm

Dinhu


Mapper
Mapper
Guloso A pasta data e do ot ne?
dps tenque bota akilo a onde?
explica ai plx

Ver perfil do usuário

8 Re: Criando Site para OT XML em Qua Nov 07, 2007 1:10 pm

Guloso


Administrador
Administrador
Sim pasta data e do ot sim !
vc bota o resto em seu site!!!
está tdoo explikadinhow no tutoooo dinhu!!
akeles codes vcx postam no seu site q vcx tao kriando!
Cumps


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

9 Re: Criando Site para OT XML em Sex Nov 09, 2007 5:15 pm

Dinhu


Mapper
Mapper
Vlw
logo logo estarei lançando meu site

Ver perfil do usuário

10 Re: Criando Site para OT XML em Ter Nov 13, 2007 12:05 pm

Dinhu


Mapper
Mapper
Guloso eu ainda n entendi direito dps explica ai

Ver perfil do usuário

11 Re: Criando Site para OT XML em Qua Nov 14, 2007 5:27 am

HAuhauHAUHu xD!!!


_________________
----------GM Leon xD---------
●Mapper[50%]
●Hoster [85%]
●Programmer[95%]
●scripter[95%]
●Criador[75%]
●Revolucionário[95%]
Ver perfil do usuário

12 Re: Criando Site para OT XML em Qua Nov 14, 2007 8:16 am

Guloso


Administrador
Administrador
RoX, vc diz q vai fazer seu site mas depois diz q naum entende :S
n sei como explikar mlhr :S
=S


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

13 Re: Criando Site para OT XML em Qua Nov 14, 2007 9:44 am

Dinhu


Mapper
Mapper
Eu tvava tentando fazer so que acabei n consegindo xD
Ai eu tava preucurando outros forums sobre isso fala que tenqeu baixa um progama e dificil de enterder isso xD

Ver perfil do usuário

14 Re: Criando Site para OT XML em Qua Nov 14, 2007 10:24 am

Guloso


Administrador
Administrador
vc percisa d baixar um webhoster!
tem varios programas para hospedar seu site em seu pc online!
por exemplo:
otstriad
xampp
php
i existem outros...
cumpz vc instala o programa
coloka o site dentro da pasta www/htdocs uma dessas dá, xD
depois e so ligar o programa com o site dentro dessa pasta q disse, depois d ligar o programa, abre o seu browser e digita no endereço: http://SEUIP/
exemplo: http://82.293.193.30/ em seguida pressione enter, se nao sabe seu ip veja neste site: http://www.omeuip.com/ Cumpz
e so isso na criação de script para o seu site esta neste topico a explikar!...
Sem maiz...
cumpz


_________________
-=- Fundador -=-

Administrador Geral!
●Tutor [100%]
>Conheçendo Tibia desde 2005< ->(Retired Now)
Ver perfil do usuário http://guloso.topicboard.net

15 Re: Criando Site para OT XML em Qui Nov 15, 2007 9:10 am

Fubu


Web Designer
Web Designer
eu ia explikar tudu isso
mas vejo q vc escreveu mais rapido XD

façam um curso de webmaster q vcs eh q vaum ensinar =D

Cumpz
Cya


_________________
Hoster e Mapper
100%
Programmer e Scripter
70%

Criei meu Site o/
http://fubucars.netfirms.com
Blog Sobre Games
http://fubugames.blogspot.com/

===EQUIPE DE APOIO GULOSO FÓRUM===
Ver perfil do usuário http://fubucars.netfirms.com

16 Re: Criando Site para OT XML em Sab Dez 29, 2007 4:57 am

Uchiha


Supremo
xD legal

Ver perfil do usuário

17 Re: Criando Site para OT XML Hoje à(s) 9:42 pm

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum