• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

VCore

Sistema de logins

6 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tem mesmo de ser num txt? ficava muito mais seguro e profissional numa bd

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hum, bem mas já está resolvido. Mas obrigado pelas ajudas. Vou tê-las como referencia num trabalho futuro.

Obrigado!

P.S.: Topic Solved!  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora