Nunca mandes ninguem que odeias para o inferno. Quando morreres, vais estar com eles por lá.
- Tuguinho
Hoje vamos aprender a fazer uma coisa que pode ser preciso para muita gente, um simples script com a função de registo e entrada/saída com uma conta de utilizador.
Isto pode ser difícil para iniciantes, por isso aconselho a saberem as bases de php e mysql…
1. Comecemos por criar a base de dados, vai ao phpMyAdmin, e colas o que esta em baixo na aba SQL.
[enlighter lang=”sql”]
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) unsigned NOT NULL auto_increment,
`username` varchar(25) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM
[/enlighter]
2. Agora vamos fazer ligação à base de dados em php.
config.php :
[enlighter lang=”php”]
[/enlighter]
3. Vamos agora fazer a página de login.
login.html :
[enlighter lang=”html”]
[/enlighter]
4. Vamos agora para a página de registo.
registar.php :
[enlighter lang=”php”]
“;
} else {
$pass = sha1($_POST[‘password’]);
$user = mysql_real_escape_string($_POST[‘username’]);
$email = $_POST[‘email’];
mysql_query(“INSERT INTO users (id, username, email, password) VALUES (NULL, ‘$user’, ‘$email’, ‘$pass’)”) or die(“Alguma coisa correu mal durante o registo. MySQL erro: “.mysql_error());
echo “Registo Completo – Entrar na Conta.”;
}
?>
[/enlighter]
5. Vamos criar as configurações para que o user possa entrar
entra.php :
[enlighter lang=”php”]
[/enlighter]
6. Vamos agora criar uma pagina segura, só entra quem estiver logado.
users.php :
[enlighter lang=”php”]
//Pode meter aqui conteúdo em html 😉
[/enlighter]
7. Agora para acabar, vamos criar a página de logout da conta
logout.php :
[enlighter lang=”php”]
[/enlighter]
Espero ter ajudado alguns 😉
cumps,
ORiOn
Boas..
Com a ajuda já consegui criar o registo, mas quando vai para o login ele redimensiona para a página session.php e não tenho essa página.. O que esta a acontecer? :S
@Enato: No entra.php modifica a linha header(“location: session.php”); para header(“location: users.php”);
Depois de ter comentado lá pensei um pouco e fiz isso xD
Já agora para ter acesso restrito a uma só pessoa como por exemplo um admin para o backoffice pode-me ajudar??
Estou a fazer uma PAP e o meu tema é um loja para um videoclube e nós PHP quase não demos nada de maneira a que estou um pouco a leste :S
Obrigado pela ajuda imediata 😉
@Enato: Como assim? Para isso vasta registar apenas um utilizador.
Basicamente queria fazer algo como quando o admin fizer login ia para o backoffice.. Penso que tenha de ser através de if não?
Ainda não sei muito bem como fazer o backoffice
@Enato: Isso já é praticamente um backoffice.
Mas queres o quê? Um apenas para o admin? Para isso vasta registares só um user, ou então mudar, e muito, o script para que se for um admin, ir para outra pagina.
Tens de criar outra row na database para dizer se é admin ou user, ou outros roles se quiseres. Depois no PHP, um if para ver se é admin, se for, redireccionas para outra pagina.
Ainda bem que os tópicos são recentes, é o seguinte, eu percebo minimamente de php, mas este está-me a dar dores de cabeça, estou a criar um site para uma discoteca, e quero que só possam ter acesso á galeria as pessoas que estão registadas e devidamente logadas, o site é inteiramente em html. ajuda??
@Paulo Paixão: A estensão dos ficheiros está em .html ou .php?
os das paginas sao html, e estou com dificuldades em definir o sistema de login que aqui tens :S
@Paulo Paixão: Os ficheiros tem de estar em nome-do-finheiro.php para poderes usar php.
Tens de ter a extenção .php
em todos as paginas ?
mas se tiver a php nao consigo visualizar no browser 😡
@Paulo Paixão: sim penso que são todas as páginas… para teres uma definição padrão…
bah :s vou ter de mudar o site todo, mas tenham como exemplo este site, será que basta mudar as extensoes de html para php ?
@Paulo Paixão: penso que dá, afinal os códigos são os mesmos… mas não seii.. e melhor esperares pelo OriOn xD
:S tou lixado
@Paulo Paixão: tás nada.. lol espera pelo OriOn
PHP é server side. Só funciona se enviares para um servidor com apache/php intalado, e neste caso tambem precisas de de uma base de dados sql.
sera mesmo necessario as paginas que suportam os forms estarem tambem em php ?
Bem aqui venho eu outra vez passado um tempo xD
Orion poderias dar uma ajuda again?
Queria fazer algo do tipo quando o user fizesse o login no index.php (uma pagina ja com css definidos e tal) o que aconteceria era ir para a mesma página mas desta vez desaparecendo a caixa de login e aparecer algo do tipo “bem vindo, userx”
podes ajudar?
cumps
Crias o ficheiro index.php e colas o código que tem aqui:
http://tinypaste.com/75018c
E na pagina entrar.php mudas onde tem users.php para index.php.
Boas,
podias fazer mais tutos de como fazer so os utilizadores registados verem x paginas, adicionar previlegios, etc..
afinal, o que vale registar num site se nao se vai ter previlegios?
obrigado ajudou imenso 🙂
Já consegui depois meter lá um botão para fazer logout 😀
Btw se um user (admin ( so vou ter um admin, que se vai chamar admin xD) ) entrar e quiser ter lá um link para depois ir para o backoffice é só criar algo do género?
if($session->isAdmin()){
echo “Admin Center // “;
De nada, vai prai modificando e tentando que é assim que se aprende. Tenta assim:
if(isset($_SESSION[“sessioname”])){
echo “Amin Center”
}
peço desculpa de vir incomodar, mas eu sou um pouco noob em php o que sei foi o que fui lendo por ai e tentei testar esse script mas dá me um erro:
Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) stats
será que alguem me pode ajudar?
Desde já obrigado
@noob: Tens os dados no código php todos correctos e a base de dados criada?
sim eu ja verifiquei isso tudo, não estou mesmo a perceber porque que dá esse erro :s
Entra em contacto com o teu servidor a perguntar se é localhost.
Boas, nao tou a conseguir passar do login, tipo faço o registo e tudo mas quando faço o login diz sempre Dados Errados, tente de novo. ta ai a parte do ENTRA.PHP se poder ajudar agradecia 😀
Boas. Muito bom. Depois de “patinar” um pouco, já que não sou expert em php, consegui aplicar este conceito, inclusivé com algumas alterações, como por exemplo o não aceitar users ou mails repetidos… Muito obrigado Orion !!! 😀
O MEU PROBLEMA É MTO SIMPLES, MAIS É GRAVE, GOSTAVA Q O ORION VISSE ESSE CODIGO, PERTENÇE AO FICHEIRO REGISTO.PHP DE UM WEB SITE NA QUAL O TEMA É LOJA ONLINE,
COMO VIU O CODIGO SERVER PARA UM CLIENTE FAZER O REGISTO NO SITE, MAIS AO FAZER O REGISTO A PASSWORD NÃO É CIFRADA, O QUE EU QUERIA ERA Q ALTERASSE O CODIGO COM A FUNÇÃO ( SHA1 ) DE MANEIRA A QUE O CLIENTE FIZESSE O REGISTO E A PASSWORD ENTRAVA NA BASE DE DADOS JÁ CIFRADA, QUERIA PEDIR MAIS UMA COISA, AGRADEÇIA TAMBEM SE MUDASSE A PARTE DA PASS, O CLIENTE TEM Q INTTRODUZIR A PASS 2 VEZES, SE UMA NÃO FOR IGUAL A OUTRA, TEM Q VOLTAR A PO-LAS. DESDE JÁ OBRIGADO. MTO BGADO.
@DPROGRAMADOR: Primeiro pedia para por favor não escrever em maiúsculas porque aqui ninguém é cego!
E segundo, não o posso ajudar porque não tenho tempo. E nem se vê o código porque não é permitido php nos comentários.
Cumprimentos
Faz download de um sistema já pronto, é mais fácil 😉
A mi da me este erro:
Fatal error: require_once() [function.require]: Failed opening required ‘/config.php’ (include_path=’.:/usr/share/pear:/usr/share/php’) in /home/vhosts/vilasims.noads.biz/entra.php on line 2
O que devo fazer para resolver
da em todo ;-(
já esta resolvido
Para Orion, então agradeçia que mandasse um link com para download de um sistema ja feito. abraços.
A mim dá-me sempre o mesmo erro que o login esta incorrecto
alguem com o mesmo problema? como resolveu?
@Paulo: Pode ser estúpido, mas estás a meter a password certa? Se sim, já tentaste criar outro usuário?
É com o ficheiro users.php, que se pode fazer isto com várias páginas?
@João Godinho: Só precisas de copiar essa pagina e criar novas editando o que quiseres. 🙂
sim estou a meter o user correcto, já criei outro user 🙂
o erro que me dá é “Dados Errados, tente de novo”
podem ver aqui http://ncinfo.com.pt/gamelist/index.php
user: paulo
pass: paulo
@Paulo: Tenta copiar tudo de novo sem modificar nada a não ser os dados da database(nome, user, pass).
continua a dar erro….não consigo perceber porquê.
@Paulo: Ou estas a fazer algo mal, ou é do teu site ou alojamento(duvido, mas nunca se sabe). Não sei. :/
Tava a desesperar quando encontrei este script e parece-me mesmo muito bom fartei-me de procurar e encontrei este que ta bem bom tudo funciona. MAS…
Depois do registo quando pede para entrar ja depois do login quando vai para (entra.php) da-me o seguinte erro:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/interalo/public_html/registar/config.php:5) in /home/interalo/public_html/registar/entra.php on line 7
Warning: Cannot modify header information – headers already sent by (output started at /home/interalo/public_html/registar/config.php:5) in /home/interalo/public_html/registar/entra.php on line 8
Warning: Cannot modify header information – headers already sent by (output started at /home/interalo/public_html/registar/config.php:5) in /home/interalo/public_html/registar/entra.php on line 10
Será que me podem ajudar? eu era bem grato..
Boa tarde, antes de mais aproveito para agradecer a informação disponibilizada.
Tenho algumas questões.
É o seguinte, quando efectuo o login com a senha errada por exemplo, aparece a msg que deve aparecer tal como está programado, a questão é que a mensagem aparece numa pagina em branco e no canto superior esquerdo, não aparece na página que eu quero, com a cor que eu quero e dentro do quadro que eu quero.
Alguem me pode ajudar?
Está funcionando perfeitamente, me serviu muito bem esse sistema de login e logout.
Obrigado.
Olá, sera que você podaria postar um tutorial parecido com este, porem que utilize um sistema de level’s, como por exemplo membro, postador, administrador entre outros e dependente do level direcionar para tau pagina.
Aguardo resposta.
onde está o register.php do action to script registar.php
Boas pessoal,
Copiei o código que ai está e ponto numero um não tem index, já criei um index. ponto numero dois, só faz o login não faz o registo, como é que eu ponho no index para fazer o registo e o login?
Obrigado 🙂
Olá, gostaria de tirar uma dúvida. Vi que o conteúdo da minha página html deve ficar no arquivo users.php, mas como fica se tenho várias páginas em html? Obrigado!!
Boa noite,
Quando efectuo o registo eu pede a página register.php que não existe?
Fiz algo errado?
Cumps
Boa tarde,
Queria que quando o user se cadastra-se ele pode-se por uma foto de perfil,
tentei montar o codigo mas ta dando muitos erros
por favor me da uma luz. Obrg
Fiz tudo como está aí, mas quando vou fazer o login diz que os dados enta errados. Ainda não encontrei nenhum erro! Help-me ? :/
Fiz tudo como está aí, mas quando vou fazer o login diz que os dados estão* errados. Ainda não encontrei nenhum erro! Help-me ? :/
Muito obrigado pelos códigos, me ajudou bastante! Abraço!
Este sistema de registo, login, etc em PHP era mesmo o que eu estava a precisar para um projecto que estou a desenvolver.
Gostava de ver mais scripts deste género aqui no blog e mais pessoas interessadas neste assunto 🙂
Obrigado e continuação de um bom trabalho []