<?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'])) {?>
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 {?>
} 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
}
?>
<?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");
}
?>
Gostei,porйm acho que um tutorial desses para alguйm que nгo tem a minнma noзгo de front-end,nem que seja o bбsico,essa pessoa vai achar um pouco confuso. Mas bom trabalho + rep.
|
Vocк estб criando duas sessхes, sendo que deveria criar somente uma.
Esta repetindo o cabeзalho HTML no index.php, coloque o header acima da condiзгo(if) O usuбrio consegue logar, mas ele nгo pode deslogar, sempre criarб uma sessгo nova uma em cima da outra, vocк deve destruir a sessгo quando o usuario deslogar Por mais "bбsico" que seja, tem algumas coisas q podem ser melhoradas... Ps:leve este comentбrio como uma crнtica construtiva |
Tecnicamente, eu nгo criei duas sessхes, eu criei uma sу.
session_start — Inicia uma nova sessгo ou resume uma sessгo existente |
Notice: session_start(): A session had already been started - ignoring
Chegou a poco tempo no forum me parece por sua dade De Join date e ja estб assim continua num bom caminho mt boa sorte !! gostei porem nao irei usar mais pode servir para alguem :like:
|