07 de Setembro de 2010, 22:57 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Novas Mensagens: 0
Os usuários postaram um total de 25494 posts.
Temos 3014 tópicos.
Existem 2103 usuários registrados até agora.
Dê boas-vindas à americo2, o último usuário registrado.
Notícias: Nosso Portal está de cara nova, não deixe de conferir!
Páginas: [1]   Ir para o Fundo
Imprimir
Autor Tópico: Desenvolvendo Web-Jogos com PHP MySQL III  (Lida 1262 vezes)
0 Membros e 1 Visitante estão vendo este tópico.
Legolas Greenleaf
One Eventer!
*
Cerberus - Nv. 22
• Mensagens: 1.167/1.265
GaugeGauge
• Especialidade:
Evento
• Reputação: 111
• 847.54 rubis
• Enviar Dinheiro
• Ver Inventário
Ver Perfil Email

« : 10 de Setembro de 2008, 22:21 »

Tutorial feito por Felaqund(Rafael Felix)

Bom continuando nosso tutorial, agora vamos configurar o login na pagina "index.php", aconselho vocês a criarem um usuario na tela de registro, para testar o login.

Ná pagina index.php, no inicio da página, vamos incluir um código que faz uma consulta sql no banco e verifica usuário e senha.

Código: ‹ Selecionar › ‹ Expandir › 

Código:
<?php 

if($_POST['Enviar'] == "Login"){ 

      
$con mysql_connect("localhost""user""pass"); 
      @
mysql_selectdb("wizards"); 
      
       
$sql "SELECT * FROM Usuarios WHERE Login = '".$_POST['user']."' and Senha = '".$_POST['senha']."'"
        
$query mysql_query($sql); 
        
$lin mysql_num_rows($query); 
        
//se não retornar nenhuma liha 
        
if($lin 1){ 
                
              echo(
"Usuário ou senha não conferem"); 

        }else{ 

              
//aqui criamos váriaveis de sessão para armazenar dados importantes do jogador como seu codigo 
              
$row mysql_fetch_array($query); 
              
session_start(); 
              
$_SESSION['User'] = $row['Id']; 
              
//vamos gravar somente o Id por ser uma parte importate e vamos utiliza-las no jogo 
             
header("Location: game.php"); 

         } 
mysql_close($con); 



?>

(...)

 


Aí está configurado nosso login, caso tenha cadastrado algum usuário tente fazer o login, se for feito com sucesso, será redirecionado a página game.php, que vamos fazer agora.

Já sabem o que fazer, então criem uma página chamada game.php.
Inicialmente vamos implementar uma segurança para ele, pra nenhum "espertinho" digitar o endereço da página sem ter feito login, no inicio da página entra o código em PHP que vai verificar a variavel de sessão Id, e se ela não estiver setada redireciona o usuario para pagina index.php:
Código: ‹ Selecionar › ‹ Expandir › 

Código:
<?php 
session_start
(); 
if(!isset(
$_SESSION['Id']){ 

header("Location: index.php"); 


 


definimos um leve segurança para o jogo.
vamos agora a um ponto importante pq um usuário tem um personagem, e na tela de registro não pedimos nenhuma informação do personagem e nem inserimos, então abaixo da segurança vamos verificar no banco se o cara tem um personagem, se não tiver montamos uma tela para ele criar um, se tiver mostra a tela inicial.
Código: ‹ Selecionar › ‹ Expandir › 

Código:
<?php 

$con 
mysql_connection("localhost""user""senha"); 
@
mysql_selectdb("wizards"); 
$sql "SELECT * FROM Personagens WHERE Usuario = ".$_SESSION['Id']; 

$query mysql_query($sql); 
$linhas mysql_num_rows($query); 

if(
$linhas <= 0){ 

//aqui vamos montar o formulário de cadastro de personagens, utilizamos o echo para imprimir em HTML na tela 
//primeiros vamos ao banco buscar as cidades e as racas cadastradas 
$city "SELECT Id, Nome FROM Cidades"
$qCities mysql_query($city); 

$raca "SELECT Id, Nome FROM Racas"
$qRacas mysql_query($raca); 

echo(
"<form action='game.php' method='post'><br>Nome do Personagem:<br><input type='text' name='NmPer' value=''"); 
//agora não fechamos o form e vamos percorrer as queries 
echo("<br>Raça:<br><select name='raca'>"); 
for(
$row mysql_fetch_array($qRacas)){ 

  echo(
"<option value=".$row['Id'].">".$row['Nome']."</option>"); 


echo(
"</select><br>Cidade:<br><select name='cidade'>"); 
for(
$row=mysql_fetch_array($qCities)){ 

  echo(
"<option value=".$row['Id'].">".$row['Nome']."</option>"); 


echo(
"</select><br><input type='Submit' name='perSub' value='Registrar' /></form>"); 
//montamos nosso form de cadastro 

}else{ 

//configuramos para uma tela de boas vindas caso já tenha um personagem cadastrado. 
$row mysql_fetch_array($query); 
echo(
"Seja bem vindo ".$row['Nome']."! Sua jornada continua"); 



mysql_close($con); 
?>

 



Agora vamos a codificação da inserção de um novo personagem, como criamos varias colunas com valores default não vamos precisar nos incomodar em inserir valores como vida, mana, etc.

o codigo de inserção e simples, uma parte do código será omitida, que é a conexão com o banco, e a seleção da base, que podem ser vistos nas partes anteriores.
Código: ‹ Selecionar › ‹ Expandir › 

Código:
if($_POST['perSub'] == "Registrar"){


 if(strlen($_POST['NmPer']) != 0){

  //outras validações de nomes vem aqui.
 //aqui vem a conexão com o banco
  $sql = "INSERT INTO Personagens(Usuario, Nome, Cidade, Raca) VALUES(".$_SESSION['Id'].", '".$_POST['NmPer']."', ".$_POST['cidade'].", ".$_POST['raca'].")";
   $insert = mysql_query($sql);
   if($insert){
   
      echo("Personagem cadastrado com sucesso");

   }else{
       echo("Problemas ao inserir Personagem, tente novamente mais tarde");

  }

 }

}

 


PS: Pessoal essas 3 ultimas partes de código fazem parte da página "game.php".


Por enquanto é isso ai pessoal, provavlemente só quarta-feira vem outro, e prometo ir mais longe.

[]'s
Registrado

Albino Albino Macho
Ouriço Vermelho
Nv. 4
Albininha Albininha Fêmea
Ouriço Vermelho
Nv. 1

O Sistema "Stórie"
Aprendendo a criar novos mundos!

Você é meu amigo? Gosta de min? Gosta de Meus trabalhos? Então use minha Fan Bar:

Spoiler Clique para  Fan Bar Code:
Código:
[img]http://img63.imageshack.us/img63/3436/legolasnjpg.png[/img]

MoonRupt
Programador
*
Kobold - Nv. 7
• Mensagens: 131/140
GaugeGauge
• Prêmios:
Guerreiro de Clavas
• Especialidade:
Script
• Reputação: 16
• 1026.25 rubis
• Enviar Dinheiro
• Ver Inventário
• Ricardo "Fang MoonRupt"

ricard_brasil@yahoo.com.br Ver Perfil Email

« Responder #1 : 11 de Setembro de 2008, 17:44 »

Só para constar... O sistema de autenticação de logins dos tutoriais II e III são muito simples... E o problema é esse, simples até demais... Não realizei uma auditoria séria nem profunda no código demonstrado, mas creio que seja bem possível realizar ataques nele...
(( Pensei em ataques XSS tanto Type 1 e Type 2, mas deve ter algo mais simples e direto ))

Entretanto, o código postado aqui serve de referência sim para implementar um web game funcional, sem dúvida Feliz
Registrado
Legolas Greenleaf
One Eventer!
*
Cerberus - Nv. 22
• Mensagens: 1.167/1.265
GaugeGauge
• Especialidade:
Evento
• Reputação: 111
• 847.54 rubis
• Enviar Dinheiro
• Ver Inventário
Ver Perfil Email

« Responder #2 : 12 de Setembro de 2008, 14:21 »

isso mesmo.É provavel pelo sistemas e scripts muitos bons totalmente criados por Felaqund.É bem básico apesar de não registringir nenhum código police.
Registrado

Albino Albino Macho
Ouriço Vermelho
Nv. 4
Albininha Albininha Fêmea
Ouriço Vermelho
Nv. 1

O Sistema "Stórie"
Aprendendo a criar novos mundos!

Você é meu amigo? Gosta de min? Gosta de Meus trabalhos? Então use minha Fan Bar:

Spoiler Clique para  Fan Bar Code:
Código:
[img]http://img63.imageshack.us/img63/3436/legolasnjpg.png[/img]

madarax
*
• Mensagens: 2/5
GaugeGauge
• Especialidade:
Nada
• Reputação: 0
• 11.10 rubis
• Enviar Dinheiro
• Ver Inventário
Ver Perfil Email

« Responder #3 : 13 de Julho de 2010, 16:07 »

Ei porfavor eu falei errado numa mensagem minha você nao poderia continuar seu tutorial Desenvolvendo Web-Jogos com PHP MySQL III!

E você nao pode me mandar um Tutorial de como criar um Web Game! Pliz Rei
Agradeço desde ja! Anjo

meu email é = cartao2010@hotmail.com
« Última modificação: 14 de Julho de 2010, 08:17 por madarax » Registrado
Sкys♠Daωη
*
Dragão - Nv. 36
• Mensagens: 25.068
Gauge
• Prêmios:
Protetor
• Especialidade:
Designer
• Reputação: 0
• 9706.40 rubis
• Enviar Dinheiro
• Ver Inventário
Ver Perfil

« Responder #4 : 13 de Julho de 2010, 16:12 »

madarax double posts são proibidos, apaguei os demais e editei no seu primeiro, mais dúvidas leia,
http://www.dungeonmakers.com.br/forum/index.php?topic=3.0
Registrado


Sign e Avatar by Enry Bloodline
thedarkzeno
*
• Mensagens: 2/5
GaugeGauge
• Especialidade:
Nada
• Reputação: 0
• 11.50 rubis
• Enviar Dinheiro
• Ver Inventário
Ver Perfil Email

« Responder #5 : 08 de Agosto de 2010, 10:51 »

O meu ficou assim e quando eu vou testar no localhost/sistem/game.php aparece:
Parse error: parse error, expecting `';'' in C:\xampp\htdocs\sistem\game.php on line 70

Código:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "";
$MM_donotCheckaccess "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid False

  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && true) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}

$MM_restrictGoTo "login.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>


<?php 

$conexao 
mysql_connect("localhost""root""");
$db mysql_select_db("wizards");

$sql "SELECT * FROM Personagens WHERE Usuario = ".$_SESSION['Id']; 

$query mysql_query($sql); 
$linhas mysql_num_rows($query); 

if(
$linhas <= 0){ 

//aqui vamos montar o formulário de cadastro de personagens, utilizamos o echo para imprimir em HTML na tela 
//primeiros vamos ao banco buscar as cidades e as racas cadastradas 
$city "SELECT Id, Nome FROM Cidades"
$qCities mysql_query($city); 

$raca "SELECT Id, Nome FROM Racas"
$qRacas mysql_query($raca); 

echo(
"<form action='game.php' method='post'><br>Nome do Personagem:<br><input type='text' name='NmPer' value=''"); 
//agora não fechamos o form e vamos percorrer as queries 
echo("<br>Raça:<br><select name='raca'>"); 
for(
$row mysql_fetch_array($qRacas)){ 

  echo(
"<option value=".$row['Id'].">".$row['Nome']."</option>"); 


echo(
"</select><br>Cidade:<br><select name='cidade'>"); 
for(
$row=mysql_fetch_array($qCities)){ 

  echo(
"<option value=".$row['Id'].">".$row['Nome']."</option>"); 


echo(
"</select><br><input type='Submit' name='perSub' value='Registrar' /></form>"); 
//montamos nosso form de cadastro 

}else{ 

//configuramos para uma tela de boas vindas caso já tenha um personagem cadastrado. 
$row mysql_fetch_array($query); 
echo(
"Seja bem vindo ".$row['Nome']."! Sua jornada continua"); 



mysql_close($con); 


if(
$_POST['perSub'] == "Registrar"){ 


 if(
strlen($_POST['NmPer']) != 0){ 

  
//outras validações de nomes vem aqui. 
 //aqui vem a conexão com o banco 
  
$sql "INSERT INTO Personagens(Usuario, Nome, Cidade, Raca) VALUES(".$_SESSION['Id'].", '".$_POST['NmPer']."', ".$_POST['cidade'].", ".$_POST['raca'].")"
   
$insert mysql_query($sql); 
   if(
$insert){ 
    
      echo(
"Personagem cadastrado com sucesso"); 

   }else{ 
       echo(
"Problemas ao inserir Personagem, tente novamente mais tarde"); 

  } 

 } 

}
?>
Alguém pode dizer o que ta errado e como eu faço pra ficar correto? vlw
Se possivel coloquem tbm o codigo completo de como ficaria e só pra avisar eu uso o xamp e edito tudo no dreamwever sou iniciante vlw
« Última modificação: 08 de Agosto de 2010, 12:06 por thedarkzeno » Registrado
Páginas: [1]   Ir para o Topo
Imprimir
Ir para:  


Powered by SMF 1.1.10 | SMF © 2006-2008, Simple Machines LLC
Theme Dungeon Makers