01.04.2018, 16:54
Tutorial: Criando um sistema de login com dados do servidor no site!
Muitos de vocкs talvez jб quiseram ter um UCP em seu site, como vemos em grandes servidores como o Los Katchorros e o FenixZone, porйm nгo o fazem por nгo terem a mнnima ideia de como funciona o PHP. Bom, o PHP nгo й um bixo de sete cabeзas, e na minha opiniгo, й uma das melhores linguagens para se aprender. Hoje vou fazer um tutorial meio "introduзгo" ao PHP, e espero que isso ajude aqueles que desejam se aventurar no mundo do desenvolvimento WEB a ir atrбs de mais conhecimento. Tenho certeza de que nгo vгo se arrepender!
Sem mais delongas, vamos lб:
------------------------------------------------------------------------------------------------------------------------------------------------Muitos de vocкs talvez jб quiseram ter um UCP em seu site, como vemos em grandes servidores como o Los Katchorros e o FenixZone, porйm nгo o fazem por nгo terem a mнnima ideia de como funciona o PHP. Bom, o PHP nгo й um bixo de sete cabeзas, e na minha opiniгo, й uma das melhores linguagens para se aprender. Hoje vou fazer um tutorial meio "introduзгo" ao PHP, e espero que isso ajude aqueles que desejam se aventurar no mundo do desenvolvimento WEB a ir atrбs de mais conhecimento. Tenho certeza de que nгo vгo se arrepender!
Sem mais delongas, vamos lб:
Preparando o ambiente
Antes de tudo, acho que nem preciso dizer que й extremamente necessбrio que vocк tenha um servidor WEB disponнvel. Seja instalado no seu PC (Pesquise por WAMP ou XAMPP) ou em uma host por ai. Й necessбrio tambйm que vocк tenha acesso а um banco de dados MySQL onde estгo os dados do seu servidor de SA-MP.
Para trabalhar com PHP, vocк irб precisar de um editor de texto. Alguns de vocкs podem inclusive utilizar um editor de texto para trabalhar com Pawn que tambйm suporta PHP. Eu recomendo utilizarem o Sublime Text 3 ou o VS Code para isso. Ou entгo, usem o Notepad++, ele tambйm й bonzinho, mesmo que nгo seja tanto quanto o Sublime Text ou VS Code.
Para trabalhar com PHP, vocк irб precisar de um editor de texto. Alguns de vocкs podem inclusive utilizar um editor de texto para trabalhar com Pawn que tambйm suporta PHP. Eu recomendo utilizarem o Sublime Text 3 ou o VS Code para isso. Ou entгo, usem o Notepad++, ele tambйm й bonzinho, mesmo que nгo seja tanto quanto o Sublime Text ou VS Code.
Criaзгo do index.php
Para comeзar, vamos criar dois simples arquivos. Um que serб o index, e outro que serб um arquivo totalmente de back-end, e farб a conexгo do site com o banco de dados.
Index = Pagina inicial dos sites
Back-end = A "parte de trбs" do site. A parte que as pessoas nгo podem ver. A programaзгo em si.
Criados os dois arquivos, vamos comeзar a trabalhar no index:
Apуs verificarmos se a session nome estб setada, vamos colocar o cуdigo HTML que serб exibido no site. Como eu disse, a session "nome" irб determinar se o usuбrio estб logado ou nгo. Pela lуgica, se a session nome estiver setada, significa que o usuбrio estб logado.
Depois de criarmos a pagina que serб exibida quando o usuбrio estiver logado, vamos agora criar a pбgina de login, para ele inserir seus dados antes de logar:
O cуdigo final do seu arquivo index.php deverб ser igual ou semelhante a esse: https://github.com/BrunnoFdc/tutoria...ster/index.php
Colocamos anteriormente em nosso formulбrio o arquivo login.php como o arquivo que iria receber e processar o login. Estб na hora de criarmos esse arquivo. O arquivo login.php vai ser inteiramente composto de cуdigo do PHP, isto й, nгo haverб diretamente HTML presente nele.
Sem mais delongas, vamos lб:
Crie o arquivo e coloque o seguinte cуdigo dentro dele. As explicaзхes sobre o cуdigo estгo em comentбrios dentro do prуprio.
E depois de tudo isso, se estiver tudo certo, vocк conseguirб se conectar normalmente com seu usuario e senha do servidor!
Entгo й isso. Espero que ajude alguйm a ter uma noзгozinha de como funciona o PHP, as sessions, como consultar dados do banco de dados, etc.
Repositуrio do GitHub com todo o cуdigo: https://github.com/BrunnoFdc/tutorial-login-samp
Qualquer duvida, poste ai, terei o maior prazer em ajudar!
Att.
Index = Pagina inicial dos sites
Back-end = A "parte de trбs" do site. A parte que as pessoas nгo podem ver. A programaзгo em si.
Criados os dois arquivos, vamos comeзar a trabalhar no index:
PHP код:
<?php
/*
* Esta й a tag do PHP.
* Ela serve para indicar ao servidor quais as partes do arquivo ele precisa processar o codigo php e quais as partes
* do arquivo sгo apenas HTML que deve ser enviado para o navegador
* A tag do php se abre com "<?php" e se fecha com "?>"
* Tudo o que estiver dentro dessas tags serб interpretado como cуdigo do php, e o que estiver fora serб interpretado como HTML
*/
/*
*Primeiro, vamos rodar o mйtodo session_start, para indicar ao php que vamos trabalhar com sessions
*Sessions sгo cookies; Dados que ficam guardados no navegador da pessoa que acessa o site;
*Diferentemente dos cookies normais, os sessions somem quando o usuбrio fecha o navegador;
*Geralmente й usado em websites com sistemas de login e registro simples, como o nosso.
*/
session_start();
//Verificamos se a session "nome" estб setada no navegador do usuбrio:
//A session "nome", no nosso site, irб determinar se o usuбrio estб logado ou nгo
//Note que usamos a tag de fechamento apуs colocarmos o if. Й sinal de que apуs a tag de fechamento, serб colocado cуdigo HTML
if(isset($_SESSION['nome'])) {?>
PHP код:
if(isset($_SESSION['nome'])) {?>
<!-- Usamos o doctype e a tag HTML para indicar que comeзamos a escrever o cуdigo HTML do site -->
<!DOCTYPE html>
<html>
<head>
<!-- Aqui fica o title da sua pбgina. Й o nome que fica escrito na aba do navegador (http://prntscr.com/izaouk) -->
<title>Bem vindo ao UserCP!</title>
</head>
<body>
<!-- Usamos a tag center para indicar que o conteъdo da pagina precisa ficar centralizado -->
<center>
<!-- h1 = Header 1. A tag h1 й usada para criar tнtulos que ficam no cabeзalho do site -->
<h1>Bem vindo, <?php echo $_SESSION['nome']; //O "echo" do php й semelhante ao "print" do pawn. Aqui, nуs "printaremos" o valor da session "nome" no site ?></h1>
<br><!-- br = Break, de Line Break. Й usado para pular pra proxima linha no HTML -->
<!-- p = Paragrafo. Usado para colocar textos no PHP -->
<p>Seu dinheiro: R$ <?php echo $_SESSION['dinheiro']; //Aqui, vamos dar echo na session dinheiro, que terб o valor do dinheiro do player?>,00<br>
Seu level: <?php echo $_SESSION['level']; //Ja aqui, daremos echo na session "level".?>
<!-- Repare que usamos sempre um $ na frente de _SESSSION. $ no PHP й o sinal que representa as variaveis. -->
</p>
</center>
</body>
</html>
<?php
//Caso nгo esteja setado o session "nome", isto й, caso o usuario nгo esteja logado.
} else {?>
PHP код:
} else {?>
<!DOCTYPE html>
<html>
<head>
<title>Seu servidor - UCP</title>
</head>
<body>
<center>
<h1>Efetue login para continuar!</h1>
<!-- Agora vamos criar um formulбrio que serб usado para coletar as informaзхes de login -->
<!-- Em action, vai o nome do arquivo php que irб processar o login. Coloque login.php -->
<!-- O method "post" й o mйtodo de envio das informaзхes. Leia mais sobre POST, GET e outros mйtodos no ****** :) -->
<form action="login.php" method="post">
<!-- Inputs sгo as caixas onde os usuarios do site colocarгo os dados -->
<!-- O atributo "placeholder" й o texto que irб aparecer por padrгo nesses campos -->
Usuario: <input type="text" name="user" placeholder="Seu nick no servidor">
Senha: <input type="password" name="senha" placeholder="••••••••••">
<!-- O input do tipo submit й o botгo de "Enviar" o formulбrio. O atributo "value" й o texto exibido no botгo. -->
<input type="submit" value="Logar">
</form>
</center>
</body>
</html>
<?php
}
?>
Criando o arquivo login.php
Colocamos anteriormente em nosso formulбrio o arquivo login.php como o arquivo que iria receber e processar o login. Estб na hora de criarmos esse arquivo. O arquivo login.php vai ser inteiramente composto de cуdigo do PHP, isto й, nгo haverб diretamente HTML presente nele.
Sem mais delongas, vamos lб:
Crie o arquivo e coloque o seguinte cуdigo dentro dele. As explicaзхes sobre o cуdigo estгo em comentбrios dentro do prуprio.
PHP код:
<?php
//Novamente, executamos o session_start. Para cada arquivo do PHP que formos trabalhar com sessions, deveremos usar o session_start
session_start();
//Verificamos se a variavel _POST estб setada
//A variavel _POST й a variavel que contйm os dados enviados via mйtodo post para a pбgina
//Sу vamos aceitar que alguйm abra o arquivo login.php se este nos enviar dados usando o mйtodo post, contendo a senha e o user do mesmo.
if(isset($_POST) && isset($_POST['user']) && isset($_POST['senha']) && (strlen($_POST['user']) > 0) && (strlen($_POST['senha']) > 0) ) {
//Para ficar mais fбcil, vamos declarar duas variaveis com o nome e a senha do jogador
$nome = $_POST['user'];
$senha = $_POST['senha'];
//Vamos iniciar uma conexгo com o MySQL
$ip = "localhost";
$user = "root";
$password = "";
$db = "servidor";
$sql = new Mysqli($ip, $user, $password, $db);
//Agora, vamos fazer uma consulta no MySQL para verificar se o jogador estб ou nгo no banco de dados:
//No php, nуs podemos inserir variaveis diretamente dentro de strings que estejam contidas por aspas duplas (" ")
//Nгo, nгo precisaremos de format() :)
$consulta = $sql->query("SELECT * FROM `jogadores` WHERE `Nome`='$nome'");
//Verificaremos se a consulta retornou algum resultado:
if($consulta->num_rows > 0) {
//Vamos transformar a consulta em um array associativo, para podermos trabalhar com os resultados:
$result = $consulta->fetch_assoc();
//Vamos transformar agora a senha do usuario em um hash. Eu utilizo Whirlpool para criar hashes das senhas dos usuarios. Se vocк tambйm utiliza, faзa da seguinte maneira:
$senha = hash("whirlpool", $senha);
//Agora, comparamos a hash armazenada com o hash criado. Se forem diferentes, a senha estб incorreta.
if(strcasecmp($senha, $result['Senha']) == 0) {
//Se a senha estiver correta, vamos setar os sessions e direcionar o usuario de volta para a index.php
//O "$result" contйm os dados de cada coluna da linha que foi retornada na consulta
$_SESSION['nome'] = $result['Nome'];
$_SESSION['dinheiro'] = $result['Dinheiro'];
$_SESSION['level'] = $result['Level'];
header("Location: index.php");
} else {
echo "Senha incorreta!";
}
} else {
//Se nгo retornar nenhum resultado, iremos imprimir na pagina que o usuario nгo foi encontrado
echo "Usuбrio nгo encontrado";
}
} else {
//Caso nгo esteja setado a variavel _POST ou os campos user e senha, iremos mandar o usuario de volta para a pagina inicial
header("Location: index.php");
}
?>
Entгo й isso. Espero que ajude alguйm a ter uma noзгozinha de como funciona o PHP, as sessions, como consultar dados do banco de dados, etc.
Repositуrio do GitHub com todo o cуdigo: https://github.com/BrunnoFdc/tutorial-login-samp
Qualquer duvida, poste ai, terei o maior prazer em ajudar!
Att.