Jump to content

Sistema de logins


Recommended Posts

Posted

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.

Posted

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

Posted

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.

Posted

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"

  • 2 weeks later...
Posted

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

Obrigado!

P.S.: Topic Solved!  😄

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.