Guest Posted May 21, 2009 at 12:24 PM Report #266117 Posted May 21, 2009 at 12:24 PM Bem, precisava de uma ajuda vossa para construir um sistema de logins em um website. Junto vos envio o código que também me ajudaram a fazer: <?php $user = $_POST['username']; $pass = $_POST['pwd']; class membership { var $username; var $password; var $islogged = false; function membership() { } function login($username, $password) { $ficheiro = fopen("logins.txt", "r"); $texto = fread($ficheiro, filesize("logins.txt")); fclose($ficheiro); $this->username = $username; $this->password = $password; $this->validate_User(); } function validate_User() { if ($this->username == true && $this->password== true) { $this->islogged = true; return true; } else { $this->islogged = false; return false; } } } $membership = new membership(); if (isset($_POST['username']) && isset($_POST['pwd'])) { $response = $membership->login($_POST['username'], $_POST['pwd']); } ?> A ideia é ir a um ficheiro de texto onde estão armazenados os dados de login e password. Se o login e password coincidirem com o login e password do ficheiro txt, a entrada foi concedida. Caso contrário, os dados estão errados. Preciso da vossa ajuda, e é um pouco urgente. Obrigado.
fil79 Posted May 21, 2009 at 03:08 PM Report #266165 Posted May 21, 2009 at 03:08 PM tem mesmo de ser num txt? ficava muito mais seguro e profissional numa bd MCITP-MCTS-MCP
Guest Posted May 21, 2009 at 04:35 PM Report #266206 Posted May 21, 2009 at 04:35 PM Eu sei. Mas como estou-me a iniciar (a sério) em php, aqui no estágio foi-me pedido assim. BD's é lá mais para a frente. No entanto já consegui, falta só concertar uns erros. Este é o meu novo código: <?php session_start(); $login = $_POST["username"]; $senha = $_POST["pwd"]; $ponteiro = fopen ("logins.txt", "r"); $controlo=0; while (!feof ($ponteiro)) { $linha = fgets($ponteiro, 4096); $recebe_linha=explode(",",$linha); if (($login==trim($recebe_linha[0])) and ($senha==trim($recebe_linha[1]))) { @session_start("login"); $_SESSION["login"]=$login; $_SESSION["senha"]=$senha; session_register("$login","$senha"); $controlo++; echo"<script language=javascript>alert('Os seus dados estao correctos. Clique ok para continuar...')</script>"; echo"<script language=javascript>location.href='div.html'</script>"; exit; } } if ($controle==0) { echo"<script language=javascript>alert('ERRO! O seu user ou password estão incorrectos. Clique ok para continuar...')</script>"; echo"<script language=javascript>location.href='div.html'</script>"; } ?> Ainda tem um erro ou outro. No entanto se tiverem uma solução mais convincente, aceito sugestões. 😛
scorch Posted May 21, 2009 at 06:52 PM Report #266238 Posted May 21, 2009 at 06:52 PM tem mesmo de ser num txt? ficava muito mais seguro e profissional numa bd A DokuWiki usa, por defeito, .txt e não deixa de ser muito usada nem menos profissional. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
cyclop Posted May 25, 2009 at 12:12 PM Report #267092 Posted May 25, 2009 at 12:12 PM Nao precisas inicializar duas sessões (nao podes iniciar uma sessao depois de ja a teres inicializado) logo podes colocar somente um session start logo no inicio , pessoalmente, nao costumo usar o session_register, de resto, é mais ou menos isso... poderias abrir logo o o ficheiro com a função file ( assim terias cada linha do ficheiro como sendo uma array e era logo um foreach a bombar 😉 ) e os erros que estas a ver o mais certo é ser uns notices.... deverias de trocar o delimitador "," por um delimitador mais complexo para evitares a probabilidade de correr mal essa separação... "Quando eu for grande quero ser como o Celso"
Guest Posted June 3, 2009 at 01:17 PM Report #269628 Posted June 3, 2009 at 01:17 PM Hum, bem mas já está resolvido. Mas obrigado pelas ajudas. Vou tê-las como referencia num trabalho futuro. Obrigado! P.S.: Topic Solved! 😄
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now