Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hijack

Como fazer aparecer o nome do usuário que iniciou sessão?

Recommended Posts

Boa tarde, sou auto-didata e programo php á pouquissimo tempo, pelo que a duvida que tenho, para todos vós poderá parecer idiota.

 

Acontece que adaptei o meu codigo e agora estou a usar o mysqli orientado a objectos.

 

Tudo está a funcionar como pretendido, a minha duvida é a seguinte. Após fazer login, pretendo que o meu nome de utilizador apareça nas boas vindas, tipo:

 

Seja bem vindo Nuno. Eu antes estava a usar o

<?php echo $_SESSION ['uid'];?>

(uid é o username)

 

mas após a alteração fiquei um pouco confuso para poder invoca-lo novamente. Ainda tenho muito que aprender obviamente.

 

Tenho o seguinte código:

<?php
require_once 'classes/Membership.php';
$membership = New Membership();
$membership->confirm_Member();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/default.css" />


<title>Untitled Document</title>

</head>
<body>
<div id="container">
   <p>
    Bem vindo (MEU NOME DE USUÁRIO AQUI!)
   </p>
   <a href="login.php?status=loggedout">Log Out</a>
</div><!--end container-->
</body>
</html>

 

<?php

require 'Mysql.php';

class Membership {

function validate_user($un, $pwd) {
	$mysql = New Mysql();
	$ensure_credentials = $mysql->verify_Username_and_Pass($un, md5($pwd));

	if($ensure_credentials) {
		$_SESSION['status'] = 'authorized';
		header("location: index.php");
	} else return "Por favor, insira correctamente os seus dados!";

} 

function log_User_Out() {
	if(isset($_SESSION['status'])) {
		unset($_SESSION['status']);

		if(isset($_COOKIE[session_name()])) 
			setcookie(session_name(), '', time() - 1000);
			session_destroy();
	}
}

function confirm_Member() {
	session_start();
	if($_SESSION['status'] !='authorized') header("location: login.php");
}

}

 

<?php

require_once 'includes/constants.php';

class Mysql {
private $conn;

function __construct() {
	$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
				  die('Não foi possivel ligar á ase de dados.');
}

function verify_Username_and_Pass($un, $pwd) {

	$query = "SELECT *
			FROM admin
			WHERE uid = ? AND pass = ?
			LIMIT 1";

	if($stmt = $this->conn->prepare($query)) {
		$stmt->bind_param('ss', $un, $pwd);
		$stmt->execute();

		if($stmt->fetch()) {
			$stmt->close();
			return true;
		}
	}

}
}

 

Pesso desculpa pelo testamento. Desde já agradeço qualquer ajuda que me possa ser prestada.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém me pode explicar como?

Já dei voltas e voltas á cabeça e ainda não percei. Em ultima instancia volto ao original, sempre aparecia o nome da sessão.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Acontece que adaptei o meu codigo e agora estou a usar o mysqli orientado a objectos."

 

Kd a orientação a objetos ?

vejo apenas funcoes procedual dentro de uma classe sem imprementação alguma.Rescreva esse codigo mais sem inventar essa modinha de POO, faz do bom e velho jeito.Não adianta querer usar OO sem dominar parcialmente o PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Acontece que adaptei o meu codigo e agora estou a usar o mysqli orientado a objectos."

 

Kd a orientação a objetos ?

vejo apenas funcoes procedual dentro de uma classe sem imprementação alguma.Rescreva esse codigo mais sem inventar essa modinha de POO, faz do bom e velho jeito.Não adianta querer usar OO sem dominar parcialmente o PHP.

 

 

Obrigado por ter respondido 01100011cc.

 

Acontece que fui aconselhado a fazer dessa forma por se tornar mais seguro e mais rapido, mas, fico um pouco confuso ao fazelo assim. Com o codigo original eu conseguia fazer aparecer o meu nome de sessão, assim já não entendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.