Hijack 1 Denunciar post Postado Outubro 29, 2012 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
Hijack 1 Denunciar post Postado Outubro 29, 2012 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
01100011cc 15 Denunciar post Postado Outubro 29, 2012 "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
Hijack 1 Denunciar post Postado Outubro 29, 2012 "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