Tsikbal Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 Alguém tem um tutorial que ensine a fazer um sistema de cadastro só com login e senha?Vlw ^^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Novembro 15, 2006 Denunciar Share Postado Novembro 15, 2006 http://forum.imasters.com.br/index.php?showtopic=192408http://forum.imasters.com.br/index.php?showtopic=147566[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 15, 2006 Autor Denunciar Share Postado Novembro 15, 2006 Brigadão mesmo Beraldo! ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 15, 2006 Autor Denunciar Share Postado Novembro 15, 2006 hehehehe... Alguém pode me tirar mais umas dúvidas?-Essas páginas só rodam quando estão hospedadas num servidor? Eu testo no Wamp e não dá certo.-Quando eu faço o banco de dados no "phpmyadmin" salva em outra pasta. É assim mesmo?- MySql é um programa em si? Porque esses tutoriais dizem: "Crie o banco no MySql"... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 15, 2006 Denunciar Share Postado Novembro 15, 2006 - O Wamp transforma o seu pc em um servidor, logo se funciona, ou não no seu pc, o resultado deve ser o mesmo no servidor (nem sempre será igual porque o servidor e seu pc terão versões de software diferentes).- Sim.- MySQL é um SGBD, ou seja, Sistema Gerenciador de Banco de Dados... como é um sistema ele é um programa que se preocupa inserir, retirar, manter e etc, relativo aos dados, mas o banco de dados em si é sempre um "arquivinho jogado em algum lugar". Vale ressaltar que o MySQL em si é muito chato de mecher, por isso é conveniente utilizar programas front-end, ou seja, que deixam o MySQL utilizável por qualquer um, e essa é a função do phpmyadmin. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 16, 2006 Autor Denunciar Share Postado Novembro 16, 2006 vlw hem ESerra!Qualquer dúvida eu posto novamente, cara. Thanks ^^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 16, 2006 Autor Denunciar Share Postado Novembro 16, 2006 Poxa, eu estou quase conseguindo, mas...Ele chega a criar o cadastro, eu sei porque eu conferi no phpmyadminin que ele cria o cadastro. Mas aí na hora de efetuar o login, ele diz que a senha ou o login estão inválidos.Olhem só:configura.php <?php $tabela = "usuarios"; /* nome da tabela usada */ /* Os dados abaixo são de conexão com o bd e devem ser alterados conforme os dados do servidor */ $bd = "usuarios"; /* nome do banco */ $user = ""; /* nome do usuário */ $pass = ""; /* senha do usuário */ $host = ""; /* host do bd */ $con = mysql_connect("$host","$user","$pass") or die('Erro - Falha na Conexão'); $con2 = mysql_select_db("$bd") or die('Erro - Falha ao Abrir Banco de Dados'); ?> index.php <?php include("configura.php"); echo "<html> <head> <title>Sistema login e cadastro de usuários</title> </head> <body> <form action=\"login.php\" method=\"POST\"> Login: <input type=\"text\" name=\"login\" size=\"10\" maxlength=\"30\" /><br /> Senha: <input type=\"password\" name=\"senha\" size=\"10\" maxlength=\"8\" /><br /> <input type=\"submit\" value=\"Enviar\" /> <input type=\"reset\" value=\"Limpar\" /> </form> <br /><br /> <a href=\"cadastro.php\">Cadastre-se</a> </body> </html>"; ?> login.php <?php session_start(); /* aqui inicia a sessão */ include("configura.php"); if($_POST["login"] == "" || $_POST["senha"] == ""){ /* verifica se os dados estão vazios */ echo "Você deve postar seu login e sua senha!"; /* se estiver, mostra esse aviso */ } else { /* se não, continua a verificar... */ $login = $_POST["login"]; /* pega o valor de login do form anterior */ $senha = $_POST["senha"]; /* pega o valor da senha do form anterior */ $query = mysql_query("SELECT id, login, senha FROM ".$tabela." WHERE login='".$login."' && senha='".$senha."'") or die ("Erro: ". mysql_error()); /* faz a consulta no bd, e verifica se o login e senha digitados pelo usuário são iguais aos do bd */ $total = mysql_num_rows($query); /* aqui pega o número de linhas que obedecam à consulta anterior */ if($total == "0"){ /* se não tiver nenhuma linha, mostra o aviso */ echo "Login ou senha inválidos.<br /> <a href=\"index.php\">Voltar</a>"; } else { /* se não, continua... */ while($l = mysql_fetch_array($query)){ /* aqui pega o resultado do bd e passa pra variáveis, registrando-as na sessão criada no início do arquivo */ $_SESSION["id"] = $l["id"]; $_SESSION["login_user"] = $l["login"]; $_SESSION["senha_user"] = $l["senha"]; header("Location: painel.php"); /* manda o usuário para a página painel.php */ } /* fecha o while */ } /* fecha o segundo if */ } /* fecha o primeiro if*/ ?> painel.php <?php session_start(); require("verifica.php"); /* aqui, inclui o arquivo verifica.php */ include("configura.php"); /* aqui, inclui o arquivo de conexão */ echo "<html> <head> <title>Painel de Controle</title> </head> <body>"; Você está logado, ".$_SESSION["login_user"]." <br /> <a href=\"logout.php\">Sair</a>"; echo "</body> </html>"; ?> verifica.php <?php if(!isset($_SESSION["login_user"]) || !isset($_SESSION["senha_user"])){ /* se o login e senha não estiverem registrados... */ header("Location: index.php"); /*... manda pra página index.php... */ } ?> logout.php <?php session_start(); /* inicia a sessão */ session_unset(); /* elimina todas as variáveis da sessão */ session_destroy(); /* destrói a sessão */ header("Location: index.php"); ?> cadastro.php <?php echo "<html> <head> <title>Cadastro de usuários</title> </head> <body>"; if($_POST["ok"]){ /* se o formulário tiver sido preenchido... */ include("configura.php"); /* ... inclui a página configura.php... */ $clogin = $_POST["clogin"]; /* ... e passa as variáveis do formulário */ $senha = $_POST["csenha"]; $sql = mysql_query("SELECT login FROM ".$tabela." WHERE login='".$login."'") or die ("Erro: ". mysql_error()); /* consulta no bd */ $num = mysql_num_rows($sql); /* vê quantos registros tem no bd */ if($num >= "1"){ /* se tiver 1 ou mais registros, mostra a mensagem a seguir */ echo "O login escolhido já está sendo usado. <br /> <a href=\"cadastro.php\">Voltar</a>"; } else { $sql2 = mysql_query("INSERT INTO ".$tabela." (login, senha) VALUES ('$clogin','$csenha')") or die ("Erro: ". mysql_error()); /* aqui adiciona o login e a senha no bd */ echo "Cadastro efetuado! <br /> <a href=\"index.php\">Efetue seu login</a>"; } } else { /* se o formulário não tiver sido preenchido */ echo "<form name=\"tuto\" method=\"POST\"> Login de usuário: <input type=\"text\" name=\"clogin\" size=\"10\" maxlength=\"20\" /><br /> Senha de usuário: <input type=\"text\" name=\"csenha\" size=\"10\" maxlength=\"10\" /><br /> <input type=\"submit\" name=\"submit\" value=\"Cadastrar\" /> <input type=\"hidden\" name=\"ok\" value=\"1\" /> </form>"; } /* fecha o if */ echo "</body> </html>"; ?> e o banco de dados "usuarios" CREATE TABLE `usuarios` ( `id` int(5) NOT NULL auto_increment, `login` varchar(20) NOT NULL default '', `senha` varchar(10) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Novembro 17, 2006 Denunciar Share Postado Novembro 17, 2006 Vamos alterar agumas coisas no scxript de login: // ... $query = mysql_query("SELECT id, login, senha FROM ".$tabela." WHERE login='".$login."'") or die ("Erro: ". mysql_error()); /* não use a senha na consulta, pois será mais fácil de verificar se o nome de usuário não existe e/ou a senha está errada */ $total = mysql_num_rows($query); /* aqui pega o número de linhas que obedecam à consulta anterior */ if($total == 0){ /* (ZERO SEM ASPAS) se não tiver nenhuma linha, mostra o aviso */ echo "Login inválido.<br /> <a href=\"index.php\">Voltar</a>"; } else { /* se não, continua... */ $l = mysql_fetch_array($query)) /* aqui pega o resultado do bd e passa pra variáveis, registrando-as na sessão criada no início do arquivo */ if ($l['senha'] != $senha){ echo "Senha errada"; exit; } $_SESSION["id"] = $l["id"]; $_SESSION["login_user"] = $l["login"]; $_SESSION["senha_user"] = $l["senha"]; header("Location: painel.php"); /* manda o usuário para a página painel.php */ } /* fecha o segundo if */ } /* fecha o primeiro if*/ ?> Veja se dá certo.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 17, 2006 Autor Denunciar Share Postado Novembro 17, 2006 Parse error: parse error, unexpected ')' in C:\wamp\www\db\login.php on line 19 :o E outra coisa, se eu quiser jogar isso num servidor gratuito, eu tenho que mudar o quê?Vlw a ajuda, hem ;) Espero resposta pra esse erro plz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 17, 2006 Denunciar Share Postado Novembro 17, 2006 Parse error... é só remover o ) da linha 19... ou seja:....$l = mysql_fetch_array($query) /* aqui pega o resultado do bd e passa pra variáveis,...Servidor gratuito? Geralmente só se muda login/senha de acesso ao bd.. e talvez o nome do servidor, alguns serviços usam personalizados e não "localhost". Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Novembro 18, 2006 Denunciar Share Postado Novembro 18, 2006 Parse error: parse error, unexpected ')' in C:\wamp\www\db\login.php on line 19 :o Foi mal. Na pressa acabei esquecendo de tirar aquele parentese e colocar o ponto-e-vírgula.A linha corretamente será: $l = mysql_fetch_array($query); /* aqui pega o resultado do bd e passa pra variáveis, registrando-as na sessão criada no início do arquivo */ E outra coisa, se eu quiser jogar isso num servidor gratuito, eu tenho que mudar o quê?Como o ESerra disse, basta trocar os nomes de usuário, senha, nome de banco. Isso vale para qualquer servidor. Mas tenha certeza de que o servidor que escolheu suporte PHP, pois há poucos gratuitos que suportam essa linguagem.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 18, 2006 Autor Denunciar Share Postado Novembro 18, 2006 Beraldo, você não sabe o quanto está me ajudando ^^ ObrigadãoBem, mas tá dando senha errada, me parece que não chega a cadastrar a senha no banco... O que pode ser?Será que é porque no cadastro.php em ver de ser: $clogin = $_POST["clogin"]; /* ... e passa as variáveis do formulário */ $senha = $_POST["csenha"]; é $clogin = $_POST["clogin"]; /* ... e passa as variáveis do formulário */ $csenha = $_POST["csenha"]; /*mudei de $senha para $csenha */ EDIT: É isso sim!Agora dá erro no painel.php assim:Parse error: parse error, unexpected T_STRING in C:\wamp\www\db\painel.php on line 11Buá buá buá.. snif snifConto com você Beraldo pra me ajudar, pf Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 18, 2006 Denunciar Share Postado Novembro 18, 2006 É só adicionar um echo na linha 11... lá vai o código (dei uma testada aqui... adaptando, é claro e funcionou): <?php session_start(); require("verifica.php"); /* aqui, inclui o arquivo verifica.php */ include("configura.php"); /* aqui, inclui o arquivo de conexão */ echo "<html> <head> <title>Painel de Controle</title> </head> <body>"; echo "Você está logado, ".$_SESSION["login_user"]." <br /> <a href=\"logout.php\">Sair</a>"; echo "</body> </html>"; ?> Se possível deixa o código asism: <?php session_start(); require("verifica.php"); /* aqui, inclui o arquivo verifica.php */ include("configura.php"); /* aqui, inclui o arquivo de conexão */ echo "<html><head><title>Painel de Controle</title></head><body>"; echo "Você está logado, ".$_SESSION["login_user"]." <br/> <a href=\"logout.php\">Sair</a>"; echo "</body></html>"; ?> Fica mais fácil de ver o que está errado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 18, 2006 Autor Denunciar Share Postado Novembro 18, 2006 ÊÊÊÊÊÊÊ Vlw!!!estou tão feliz!!!Obrigado, Beraldo, ESerra... vocês são ótimos :)Agora minhas dúvidas finais.1. Todas as páginas que eu fizer que forem "protegidas contra visitantes" (só tem acesso os logados), estão representadas pelo painel.php, né?2. Como eu vou colocar o banco na rede? Qual dos arquivos eu hospedo (.frm, .MYD ou MYI) e tem um lugar certo pra hospedá-lo(s)?3. Vamos supor que eu queira hospedar no geocities (é só uma hipótese). O código configura.php vai ficar assim, é?: <?php $tabela = "usuarios"; /* nome da tabela usada */ /* Os dados abaixo são de conexão com o bd e devem ser alterados conforme os dados do servidor */ $bd = "usuarios"; /* nome do banco */ $user = ""; /* nome do usuário */ $pass = ""; /* senha do usuário */ $host = "www.geocities.com/minhapagina/meubanco"; /* host do bd */ $con = mysql_connect("$host","$user","$pass") or die('Erro - Falha na Conexão'); $con2 = mysql_select_db("$bd") or die('Erro - Falha ao Abrir Banco de Dados'); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 18, 2006 Denunciar Share Postado Novembro 18, 2006 1 - Não entendi bem o que você quiz dizer... qualquer página que necessite ser protegida sempre terá que ter um include o verifica.php...2 - Você vai ter que exportar o banco de dados que você tem e depois importar ele (se ele já tiver algum conteúdo) ou apenas pegar a estrutura dele e executar no programa que faz o gerenciamento no host (geralmente algo como o phpmyadmin).3 - Não dá para dizer como ficará... o host fornecerá os dados de configuração (o geocities não oferece suporte a php/mysql), a única coisa que dá pra dizer é que você SEMPRE VAI TER QUE ALTERAR SÓ 4 COISAS:$bd = "usuarios"; /* nome do banco */$user = ""; /* nome do usuário */$pass = ""; /* senha do usuário */$host = "www.geocities.com/minhapagina/meubanco"; /* host do bd */mas tudo conforme a indicação do host... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 18, 2006 Autor Denunciar Share Postado Novembro 18, 2006 não, ESerra, eu sei, o Geocities é só um exemplo. Eu quero dizer se está certo o $host se fosse no Geocities. Ficaria:$host = "www.geocities.com/minhapagina/meubanco"; /* host do bd */mesmo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 18, 2006 Denunciar Share Postado Novembro 18, 2006 Não.. o lugar onde o BD está fisicamente nunca vai aparecer, por exemplo, nos host pagos, onde você tem um dominio qualquer o endereço geralmente é simplesmente localhost... no geocities poderia ser algo como geocities.com/nomedousuario, mas isso é pura suposição... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 18, 2006 Autor Denunciar Share Postado Novembro 18, 2006 Já vi que vou me enrolar com a hospedagem, já que eu vou procurar um servidor gratuito...vlwPS: eu exportei a tabela e não a encontrei. ela fica com .sql? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 18, 2006 Denunciar Share Postado Novembro 18, 2006 Sim, é um arquivo .sql. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 21, 2006 Autor Denunciar Share Postado Novembro 21, 2006 Em que parte do codigo painel.php eu insiro o conteúdo da página? é porque eu uso iframe no meu site. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 21, 2006 Denunciar Share Postado Novembro 21, 2006 Em que parte do codigo painel.php eu insiro o conteúdo da página? é porque eu uso iframe no meu site.O fato de você utilizar iframe não muda em nada o lugar onde você vai colocar o conteúdo da página...<?phpsession_start();require("verifica.php"); /* aqui, inclui o arquivo verifica.php */include("configura.php"); /* aqui, inclui o arquivo de conexão */echo "<html><head><title>Painel de Controle</title></head><body>";Você está logado, ".$_SESSION["login_user"]."<br /><a href=\"logout.php\">Sair</a>";echo "SEU CONTEÚDOO TEM QUE VIR POR AQUI...</body></html>";?>Na verdade você pode colocar o conteúdo em qualquer parte, desde que fique entre as tags <body>. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 21, 2006 Autor Denunciar Share Postado Novembro 21, 2006 Vlw ^^Agora, só não entendi bem pra que serve o verfica.php :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 21, 2006 Denunciar Share Postado Novembro 21, 2006 Vlw ^^Agora, só não entendi bem pra que serve o verfica.php :(O verifica serve para ver se o usuáro está logado... pois se ele estiver logado uma sessão estará aberta, se não existir sessão é sinal que o usuário não está logado e será redirecionado para a index.php (ou o que estiver informado no header). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tsikbal Postado Novembro 22, 2006 Autor Denunciar Share Postado Novembro 22, 2006 Agora o arquivo configura.php está dando o erro:Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\configura.php on line 9Erro - Falha na Conexão Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 22, 2006 Denunciar Share Postado Novembro 22, 2006 » Access denied for user 'ODBC'@'localhost'Problema de permissão de acesso... veja se o usuário em questão tem permissão no mysql... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tsikbal
Alguém tem um tutorial que ensine a fazer um sistema de cadastro só com login e senha?
Vlw ^^
Link para o comentário
Compartilhar em outros sites
24 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.