Ir para conteúdo
Fórum Script Brasil
  • 0

Criar _SESSION


Renata Felix

Pergunta

Boa Noite.
Segui um tutorial para criar um sistema de login com niveis de acesso,ou seja, abrir uma pagina para usuarios comuns e outra pagina para administradores.
O sistema foi criado com exito,esta funcionando normalmente,porem nesse codigo não cria sessao e variaveis para$_SESSION
Eu tentei implementar mas deu erro e preciso criar a sessao para na hora de deslogar poder destru-ila e exibir o nome do aluno na pagina de login.

Segue os codigos

#######    processaAcesso.php ############

<?php
//utilização de namespaces
namespace processaAcesso {

include 'mysql.php';

use Mysql as Mysql;

class ProcessaAcesso {

var $db;

public function __construct() {

$conexao = new Mysql\mysql(DB_SERVER, DB_NAME, DB_USERNAME, DB_PASSWORD);
$this->db = $conexao;
}

public function verificaAcesso($login, $senha) {

$select = $this->db->select('tb_usuario', '*'," where login_usuario = '$login' and senha_usuario = '$senha'");
return $select;

}

public function cadastraUsuario($dados){

$insert = $this->db->insert('tb_usuario', $dados);
return $insert;
}

}

}
?>



################ controle.php  #######################


<?php
//utilização de namespaces
namespace controle;
include 'processaAcesso.php';
use processaAcesso as processaAcesso;

$controle = new \processaAcesso\ProcessaAcesso;

if ($_POST['enviar']) {

$login = $_POST['login'];
$senha = md5($_POST['senha']);

$usuario = $controle->verificaAcesso($login, $senha);

//redirecionando para pagina conforme o tipo do usuário
if ($usuario[0]['id_tipo_acesso'] == 1) {
header("Location:bemvindo.php");
} else if ($usuario[0]['id_tipo_acesso'] == 2) {
header("Location:bemvindo2.php");
}
} else if ($_POST['cadastrar']) {

$login = $_POST['login'];
$senha = md5($_POST['senha']);
$tipo_usuario = $_POST['tipo_usuario'];

$arr = array('login_usuario' => $login, 'senha_usuario' => $senha, 'id_tipo_acesso' => $tipo_usuario);

if (!$controle->cadastraUsuario($arr)) {
echo 'Aconteceu algum erro';
} else  {
   $tipo_acesso = $controle->verificaAcesso($login, $senha);
// header("Location:bemvindo2.php");
echo "<script>alert('Cadastrado com sucesso');window.location='bemvindo2.php'</script>";
}
}

?>


################### mysql.php  #######################


<?php
//utilização de namespaces
namespace Mysql {
//declaração de variáres globais
define('DB_SERVER', 'localhost');
define('DB_NAME', 'acesso');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');

class mysql {
var $db, $conn;
public function __construct($server, $database, $username, $password) {

$this->conn = @mysql_connect($server, $username, $password);
$this->db = mysql_select_db($database, $this->conn);
}

public function select($tabela, $colunas = "*", $where = "1=1") {

$sql = "SELECT $colunas FROM $tabela $where";

$result = $this->executar($sql);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$return[] = $row;
}
return $return;
}

public function insert($tabela, $dados) {

foreach ($dados as $key => $value) {
$keys[] = $key;
$insertvalues[] = '\'' . $value . '\'';
}
$keys = implode(',', $keys);
$insertvalues = implode(',', $insertvalues);

$sql = "INSERT INTO $tabela ($keys) VALUES ($insertvalues)";

return $this->executar($sql);
}

private function executar($sql) {

$return_result = mysql_query($sql, $this->conn);
if ($return_result) {
return $return_result;
} else {
$this->sql_error($sql);
}
}

private function sql_error($sql) {
echo mysql_error($this->conn) . '<br>';
die('error: ' . $sql);
}

}

}
?>





###############################

não sei onde criar a sessao e criar o $_session para o login

Help Please 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Então eu deveria no inicio do arquivo controle.php iniciar a sessao assim:

// session_start inicia a sessão
session_start();

e apos a linha   

$usuario = $controle->verificaAcesso($login, $senha);

eu definiria as variaveis assim

$_SESSION['login'] = $login;
$_SESSION['senha'] = $senha;

 

e apos viria o bloco do IF para o redirecionamento do bemvindo(usuario) / bemvindo2(administrador)

 

Seria dessa forma?

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...