Ir para conteúdo
Entre para seguir isso  
Rafael Hamdan

Login System - Players não entram?

Recommended Posts

Rafael Hamdan    0
Rafael Hamdan

Fala galera!

 

Eu sou um pouco novato aqui no OTSERV.COM.BR, e, já ajudei muitas pessoas, já postei vários scripts, tutoriais, e etc! Porém, na área que mais atuo, como WebMaster, ainda não postei nada!

 

Então vim postar o bug mais "desgraç a do" de sites.

 

Já viu quando um player tenta logar no seu site, ele digita a account/senha corretamente, porém não loga? Isso acontece porque ele não tem cookies liberados. Você tem duas opções:

 

1 - Falar para todos os players (se é que é possível) liberar os cookies de sites nas opções da intenet.

2 - Seguir o meu tutorial, e nenhum player precisará fazer isto!

 

Então, chega de explicação e vamos "botar a mão na maça"!!!

 

2º Passo - Modificando o site

 

Todo site tem um arquivo que realiza o login, todos tem uma espécie de codigo bem semelhante, abra o arquivo e localize a parte que se o login estiver correto ele redireciona para a página da conta:

 

header ("Location: PAGINADACONTA.php");

 

Remova essa linha e no lugar dela coloque:

 

echo 'Login realizado com sucesso! Clique aqui pra continuar!';

exit;[/b]

 

Fim de tutorial!! wink.gif

 

Como todos viram é necessário um entendimento básico de PHP, para descobrir a localização do php.ini e para ver aonde é o código que redireciona para pagina da conta se login/senha estiverem corretos!

 

Mas pra quem é "bom no negócio" faz isso rapidinho!

 

Espero ter ajudado a galera aê!

 

Obrigado e Flw! laugh.gif

 

//Rafael Hamdan;[/b]

Compartilhar este post


Link para o post
DuDz    0
DuDz

Sinceramente, não sei nada de PHP.

 

Mas acho que tá certo, aprovado.

 

Abraços,

 

//DuD

Compartilhar este post


Link para o post
cocota de gato    0
cocota de gato

@DuDz

lol... pelo q eu vi ta td certo mmo... tbm nao sei mta coisa

 

@Topic

Legal... o meu tinha isso + era erro no site intero...

 

RoOx!!!

thx Rafa

Compartilhar este post


Link para o post
igorboka    0
igorboka

bom, eu naum saquei bem da uma olhada ai quote do login.php, ve se eta tudo ok, fiz tudo certinho e nada!

 

espero poder me ajudar, ficarei grato!!

 

<?

include("config.php");

session_start();

 

$account = $_REQUEST['account'];

$password = $_REQUEST['password'];

 

if (isset($account) && isset($password)) {

$file = $folderaccount . $account . ".xml";

if (file_exists($file)) {

 

if (is_readable($file)) {

$filecontents = fopen("$file", "r");

while(!feof($filecontents)) {

$line=fgets($filecontents);

$passpos=strstr($line,"pass=");

if(!($passpos === false)) break;

}

if(!($passpos === false)) {

$passtemp=explode("\"",$passpos);

$pass=$passtemp[1];

 

if ($password == $pass) {

$_SESSION["account"] = "$account";

$_SESSION["password"] = "$password";

echo 'Login realizado com sucesso! Clique aqui pra continuar!';

exit;

} else {

header ("Location: inde.php");

}

}

}

} else {

header ("Location: inde.php");

}

} else {

header ("Location: inde.php");

}

?>[/b]

Compartilhar este post


Link para o post
Rafael Hamdan    0
Rafael Hamdan

Yogurte ,

 

Me passe o script sem suas modificações que irei modifica-lo.

 

Você configurou o php.ini?

 

//Rafael Hamdan;

Compartilhar este post


Link para o post
Rosivaldo    0
Rosivaldo
Yogurte ,

 

Me passe o script sem suas modificações que irei modifica-lo.

 

Você configurou o php.ini?

 

//Rafael Hamdan;

 

 

Rafael passo por 1 problema parecido, é o seguinte, eu peguei 1 otserv em sql + site em sql, tive maior trabalho pra conseguir trabalhar com sql, pois eu nunca tinha tentado, eh o seguinte, eu consegui rodar o meu server sql, e o site tbm, verifiquei se o site estava conectado tentando entrar em 1 account ja existente, pelo site entro, so que o problema é que na hora de criar acc, no site diz que foi criado, dai quando vo fazer o login, n entra, eu verifico o sql, e diz que n criou acc nenhuma ! vc sabe q problema seria esse ?

Compartilhar este post


Link para o post
xurumelous    0
xurumelous

Eu não aprovo... Informação errada!

 

Praticamente todos os sistemas de login feitos em PHP, para OTServ, utilizam sessions.

Sessions não usam cookies para gravar as informações, portanto, o fato do login não funcionar, neste caso, não é culpa da configuração do navegador dos jogadores, mas sim do script.

E, também, sobre os cookies que você citou, não tem nada a ver com o tópico. Pois a função header() também não utiliza cookies, somente seta os cabeçalhos enviados para o navegador (Este "Location: " é um cabeçalho, assim como muitos outros existentes).

 

O problema está no script, o qual com certeza está mal feito, por falta de experiência ou conhecimento.

A função header() deve ser usada antes de qualquer coisa ser enviada ao usuário, por exemplo:

<HTML>
<HEAD>
 <TITLE>Título da página</TITLE>
</HEAD>

<BODY>
Corpo da página...
<?php
header("Location: conta.php");
?>
</BODY>
</HTML>

 

Este código gerará um warning do PHP: Headers already sent.

 

O correto seria:

<?php
header("Location: conta.php");
?>
<HTML>
<HEAD>
 <TITLE>Título da página</TITLE>
</HEAD>

<BODY>
Corpo da página...
</BODY>
</HTML>

 

Assim você não teria enviado nada ao usuário antes de usar a função!

Se quizerem saber um pouco mais: http://www.google.com

Boa pesquisa!

 

Atenciosamente,

XurumelouS

Compartilhar este post


Link para o post
Rafael Hamdan    0
Rafael Hamdan

Usa sim xurumelous, não fica bobo nao.

 

E aqui funcionou perfeitamente. Se não quiser acreditar, problema é seu!

 

//Rafael Hamdan;

Compartilhar este post


Link para o post
xurumelous    0
xurumelous

Tire a prova:

 

Usando o Internet Explorer 6 (Usei este pois não achei onde ficam os cookies do Firefox e nem do Internet Exploer 7 :~):

Abra a pasta C:\Documents and Settings\{SEU NOME DE USUARIO}\Cookies e deixe-a aberta.

 

Crie um script php com este código:

<?
session_start(); //inicia a sessão
ob_start(); //ativa o buffer de saida

$_SESSION['var'] = "qualquer coisa"; //cria uma variável de sessão
ob_flush(); //flui os dados (libera o buffer)

sleep(30); //pausa a execução durante 30 segundos... Assim a sessão continua valendo...
?>

Agora, enquanto o script é executado, abra o Internet Explorer 6 e execute este script.

 

Volte na pasta C:\Documents and Settings\{SEU NOME DE USUARIO}\Cookies e verifique se foi criado algum cookie.

 

Está aí a prova.

Assim você pode percebe que sessões (sessions) não usam cookies.

 

 

 

Essa resposta

poderia ser uma mensagem privada, porém, com os seus insultos, preferi levar para a praça pública =D

 

//XurumelouS

Compartilhar este post


Link para o post
Junior_Sux    0
Junior_Sux

Mas aí é que ta, nem todos os sistemas estão com sessions. Eu particularmente faço testes em casa e não utilizo, porém por questão de necessidade há de implantar o novo sistema.

Acho que vai depender da boa vontade de nossos Masters para isso.

Compartilhar este post


Link para o post
Rafael Hamdan    0
Rafael Hamdan

Leia o livro PHP - 1º livro de Juliano Nidereauer.

 

=P Só isso

 

Le ai, depois vem me contar.

 

TRECHO:

 

"Para transmitir o indentificador da sessão entre as paginas, existem duas formas:

 

- cookies

- propagação de variáveis na url (endereço destino)"

 

E a seguda forma que o tuto ensina a usar.

 

//Rafael Hamdan;

Compartilhar este post


Link para o post
Ferumbras22    0
Ferumbras22

aprovdado mee ajudo aki

Compartilhar este post


Link para o post
ThyoityZ    0
ThyoityZ

Parabens, otimo tutorial, creio eu que vai ajudar muito a galera do forum!

Compartilhar este post


Link para o post
kinglordjorginhu    0
kinglordjorginhu

eu Naum sei nada HElp ;P N sei Como ...POr onde começar a colokar um ot Online..

N sei quais programa e site pode me ajudar ? Deixando links?

Compartilhar este post


Link para o post
jeferson14789    0
jeferson14789

<?

include("config.php");

session_start();

 

$account = $_REQUEST['account'];

$password = $_REQUEST['password'];

 

if (isset($account) && isset($password)) {

$file = $folderaccount . $account . ".xml";

if (file_exists($file)) {

 

if (is_readable($file)) {

$filecontents = fopen("$file", "r");

while(!feof($filecontents)) {

$line=fgets($filecontents);

$passpos=strstr($line,"pass=");

if(!($passpos === false)) break;

}

if(!($passpos === false)) {

$passtemp=explode("\"",$passpos);

$pass=$passtemp[1];

 

if ($password == $pass) {

$_SESSION["account"] = "$account";

$_SESSION["password"] = "$password";

header ("Location: account_home.php");

} else {

header ("Location: err.acc.php");

}

}

}

} else {

header ("Location: err.acc.php");

}

} else {

header ("Location: err.acc.php");

} else {

?>

 

 

olha onde eu ponho

echo 'Login realizado com sucesso! Clique aqui pra continuar!';

exit;[/b]

se pode me fala?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×