Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

Sistema de Login

Recommended Posts

Seu problema pode ter site no Host net pois os servidores deles possuem uma configuração diferente (Todos servidores brasileiros sao assim!!) "Pelo menos todos que eu vi até hj" o HostPHD utiliza o The Planet como datacenter um otimo datacenter por sua vez! com tecnologia americana.Tenho quase certeza que o seu problema pode ter sido esse "As confg de Dedicados brasileiros"hehehhe... embora a velocidade para jogos dos dedicados brasileiros sao otimos.t+abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém tem o script para trabalhar com nivel de acesso nesse último script que o fabyo colocou?Pois estou tentando e não consegui nada.Grato.Igmotta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabyo,

 

Não entendi o que significa esse erro ai em baixo, pode dar uma força?

 

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\apache2triad\htdocs\site\portal_teste\login\protecao.php on line 28 Warning: Cannot modify header information - headers already sent by (output started at C:\apache2triad\htdocs\site\portal_teste\login\protecao.php:28) in C:\apache2triad\htdocs\site\portal_teste\login\protecao.php on line 34

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

deve ser a configuração do seu SQL! qual a versao dele?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql 5.0.26To testando esse sisteminha que o Fabyo disponibilizou em .zip, to tendo uns problemas aqui na hora de logar, sempre dá msg de usuário nao encontrado, tá tudo no bd, criptografado certinho, mas não acessa.. amanhã olho com mais calma e tento resolver, se não conseguir posto aqui os códigos..abraço a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não to conseguindo logar nem a pau, dá sempre usuário inválido, mas os dados estão no bd.. :(

Alguém pode me dar uma luz por favor? Dá usuário inválido sempre.. os dados são cadastrados corretamente, mas não valida..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já li bastante coisa aqui, testei, testei de novo...

 

Só para encerrar, uma dúvida

o método $_SESSION não pode ser configurado para ser guardado no servidor por x tempo, como na função de cookies do php? Pq quando o usuário fecha o navegador, tem que fazer login de novo. O mesmo aconteceu aqui quando fiquei uns 20 minutos sem atualizar.

 

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Mário

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim, use o seguinte:

session_cache_expire(5); // no caso, é 5 minutos o tempo de expiração... nota: vem antes do start.session_start();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim, use o seguinte:

session_cache_expire(5); // no caso, é 5 minutos o tempo de expiração... nota: vem antes do start.session_start();
eu fiz isso e setei como 1 minuto mesmo, só para testar...não deu certo, passou 5 minutos e ainda tava lá <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda estava lá? como assim... não era isso que você queria? guardar a sessão mesmo após fechar o browser?você queria algo que guarda a sessão por um tempo, como cookies, a solução é o session_cache_expire(); se você seta um tempo para expirar, a sessão vai durar o tempo setado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha sou expert quando se trata de aprender mais soh meio lento quando se trata em exatidão.. é uma lei primordial na aprendizagem, desculpem a pergunta besta más estou meio sem exatidão e gostaria de algum expert pra me dizer exatamente o que devo fazer... aqui vai:sou novato em php e mysql comecei agora em 2007 e to meio perdido na questão mysql php eu levo numa boua super facila compreensão mais olha uso o EasyPHP como ambiente de criação e testes :D uso o myphpadmin pra administrar meu banco sql más não sei exatamente o que devo fazer com esse código:

CREATE TABLE usuarios (id_usuario smallint(5) unsigned NOT NULL auto_increment,nome varchar(40) NOT NULL default '',senha varchar(32) NOT NULL default '',PRIMARY KEY (id_usuario))INSERT INTO usuarios VALUES (1, 'Teste', '202cb962ac59075b964b07152d234b70');

eu copiei aonde exatamente eu colo ele ?? pra que passe a funcionar ??? Obrigado a quem puder Ajudar...e outra se quiserem ser mais exato na AJUDA depois de tudo pronto eu coloco em meu FTP os arquivos php e html mais o que eu faço pra que o sql também funcionee ???? oq copio e aonde eu colo ??? hehehesei que é uma pergunta meio besta mais pra mim é dificil achar sozinho a respota... Conto com vocês integrantes a tempos do Imasters...um abraço e sucesso a Nós :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

navegadores com base no IE (como o Avant Browser, por exemplo) além do próprio IE (7 inclusive) quando carrega a página login.php mostra um erro de script (sabe aquele aviso no canto inferior esquerdo do navegador), linha 127 caracter 4, Linguagem é nulo ou não é um objeto...

 

bem, a questão seria aqui (funcoes.js):

form.Linguagem.onchange = function() {var idioma = form.Linguagem.value;saveCookie("idioma", idioma, 60);								location.href = 'login.php';

desculpe a ignorância mas não sei como resolver isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fábyo, muito bom script, valeu. Está tudo funcionando perfeitamente, a única alteração que fiz foi no nome dos campos que estão na minha base. Eu mudei tudo que estáva escrito nome e coloquei login. Mas to com um problema que não consegui resolver alterando seu script.

 

Seguinte: Eu preciso criar mais variáveis de sessão além do $login e $senha. Eu também preciso puxar da base uma variavel chamada $nome para poder printar as páginas do meu sistema o nome do usuário que fez login.

 

O código ficou assim, embora ainda consiga logar normalmente não consigo printar o nome da pessoa: onde foi que errei?

 

<?session_start();//função anti sql injectionfunction anti_injection($txt){//Verifico se esta ativado magic_quotes caso esteja desativado uso a função addslashes$txt = get_magic_quotes_gpc() == 0 ? addslashes($txt) : $txt;//referencia://http://www.php.net/get_magic_quotes_gpc//http://www.php.net/addslashes// retiro da variavel esses caracteres (--, #, *, ;)return preg_replace("@(--|\#|\*|;|=)@s", "", $txt);}function verifica_usuario($login, $senha){/*faço uma pesquisa perguntando a quantidade de usuarios com o login e a senha passada pelo usuario usando o count ele conta a quantidade de ocorrencias no select essa maneira é a forma mais rapida e correta desse tipo de pesquisa, muitas pessoas usam o select * from e pega com mysql_num_rows() dessa forma prejudica muito mais o acesso ao banco podendo travar se tiver muitos acessos simutaneos*/[color= #FF0000]$re = mysql_query("select count(*) as total from adm where adm_login = '$login' and adm_senha =md5('$senha')");[/color]//referencia: [url="http://www.php.net/md5"]http://www.php.net/md5[/url] e [url="http://www.php.net/mysql_result"]http://www.php.net/mysql_result[/url]$total = mysql_result($re, 0, "total");[color= #FF0000]$nome = mysql_result($re, 0, "adm_nome");[/color]/* se o total for diferente de 1 é porque o usuario nao esta cadastrado usando dessa forma o resultado esperado sempre sera 1 porque você precisa tbm criar um sistema de cadastros que deixe apenas um usuario ser cadastrado evitando usuarios repetidos */if($total != 1){// redireciono para pagina de loginheader("Location: login.html");exit;}// se nao existir ja a sessao eu gravo elaif(!isset($_SESSION["dados"])){$dados["login"] = $login;$dados["senha"] = $senha;[color= #FF0000]$dados["nome"] = $nome;[/color]//gravo a sessao por padrao o php hj ja passa o serialize automaticamente nao precisa mais passar ela$_SESSION["dados"] = serialize($dados);}}//verifico se existe a sessao e ja pego os dados que nela contemif(isset($_SESSION["dados"])){$dados = unserialize($_SESSION["dados"]);$login = $dados["login"];$senha = $dados["senha"];[color= #FF0000]$nome = $dados["nome"];[/color]verifica_usuario($login, $senha);}else{//aqui eu verifico se o usuario esta vindo de um formulario e pego os valores$login = isset($_POST["login"]) ? anti_injection($_POST["login"]) : "";$senha = isset($_POST["senha"]) ? anti_injection($_POST["senha"]) : "";verifica_usuario($login, $senha);}?>
Olá Corsoboy,

 

É o seguinte, falta adicionar uns comandos no seu código para que ele consiga printar o nome.

1º. Como você vai puxar esse nome da base, você vai ter que fazer um outro select no seu banco para buscar o nome dele, pois do jeito que você está fazendo, ele não traz o nome, pois no select que verifica o login e senha ele só faz um count(*) e não traz dados.

Algo assim:

$sql = "SELECT NOME FROM TABELA WHERE LOGIN=NOME";

$resultado = mysql_query($sql);

if (mysql_num_rows($resultado)>0){

while ($linha=mysql_fetch_array($resultado)) {

$nome = $linha["NOME"];

}

}

 

Com isso você atribui o nome que buscado no banco a variável $nome.

E agora sim, você pode fazer $dados["nome"] = $nome;

 

 

Qualquer dúvida, posta aew.

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, como eu aplico um md5 nesse sistema de login ?

<?phpsession_start();require("conecta.php");include ("antisql/protecao.php");$login = $_POST['login'];$senha = $_POST['senha'];$consulta = mysql_query("SELECT login, senha FROM Usuarios WHERE login='$login' AND senha='$senha'") or print (mysql_error());$verifica = mysql_num_rows($consulta);if($verifica==1){$_SESSION['login'] = $login;$_SESSION['senha'] = $senha;header("Location: admin.php");}else {echo "O usuário e/ou senha está incorreto";}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como solucionei. Não a forma mais "elegante", mas funciona!

 

Colocar este código no topo das páginas que quiser proteger por nivel_acesso.

 

 

 

 

<?include("./protecao.php");/////////////////////////////////////////////////////////////////////////////////////////// condição de acesso por nível de usuário/////////////////////////////////////////////////////////////////////////////////////////	mysql_connect("localhost", "login", "senha");	mysql_select_db("nomedobanco");	//nivel acesso	$select_user = mysql_query ("SELECT * FROM nomedatabela WHERE login = '$dados[login]'");	while($row = mysql_fetch_array($select_user))		{		$nivel = $row["nivel_acesso"];		$mostra_nome = $row["nome"];		}			if($nivel != 2) // aqui define a condição de qual nível entra na página (0 - nada, 1 - comum, 2 - administrador)			{			echo			"<p> </p>			<p> </p>			<table width=\"350\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF0000\">			  <tr>				<td>				<center>Você precisa ser Administrador para acessar a página - Gerenciar Login!</center>				</td>			  </tr>			</table>";						exit();			}//echo"$nivel<br>";//echo"$mostra_nome";//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////?>
Boa noite galera o sistema feito pelo fabio ta perfeito so ta faltando o restringir as paginas por nivel de usuario ai o mauricio.imbe postou esse scripti so que não ta fincionando não. bem eu sou meio que autodidata não gosto muito de cursos não prefiro mesmo e ficar lendo os tutoriais e os artigos da net e achei a pouco tempo esse site e gostei muito mas vamos ao que interessa.

 

o erro que ta dando é o seguinte.

 

eu usei o 2º sistema postado pelo fabio e para o cadastro de usuarios to usando o formulario do ATS# ambos ta 100%

quando tentei restringir o acesso com o script do mauricio reparei o seguinte. que na linha

 

$select_user = mysql_query ("SELECT * FROM nomedatabela WHERE login = '$dados[login]'");

 

ela faz referencia ao campo login que não existe no sistema do fabio então mudei para nome e sempre que logo com um usuario de nivel 2 aparece a msg dizendo que somente administradores tem acesso. mas quando mudo a linha

 

if($nivel != 2) // aqui define a condição de qual nível entra na página (0 - nada, 1 - comum, 2 - administrador)

 

e coloco nivel != 1 todos os usuarios acessão.

 

porfavor alguem pode me ajudar a resolver esse script ou me passar um que funcione

 

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.