本文整理匯總了PHP中clsBanco::consulta方法的典型用法代碼示例。如果您正苦於以下問題:PHP clsBanco::consulta方法的具體用法?PHP clsBanco::consulta怎麽用?PHP clsBanco::consulta使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類clsBanco
的用法示例。
在下文中一共展示了clsBanco::consulta方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: Logar
/**
* Faz o login do usuário.
* @param mixed $acao
*/
public function Logar($acao)
{
if ($acao) {
$login = @$_POST['login'];
$senha = md5(@$_POST['senha']);
$db = new clsBanco();
$db->Consulta("SELECT ref_cod_pessoa_fj FROM funcionario WHERE matricula = '{$login}'");
if ($db->ProximoRegistro()) {
list($idpes) = $db->Tupla();
// Padrão: meia hora atrás
$intervalo = date("Y-m-d H:i", time() - 60 * 1);
// Se o último login bem sucedido foi em menos de meia hora, conta somente dali para a frente
$db->consulta("SELECT data_hora FROM acesso WHERE cod_pessoa = '{$idpes}' AND data_hora > '{$intervalo}' AND sucesso = 't' ORDER BY data_hora DESC LIMIT 1");
if ($db->Num_Linhas()) {
$db->ProximoRegistro();
list($intervalo) = $db->Tupla();
}
// Trava usuário se tentar login mais de 5 vezes
$tentativas = $db->CampoUnico("SELECT COUNT(0) FROM acesso WHERE cod_pessoa = '{$idpes}' AND data_hora > '{$intervalo}' AND sucesso = 'f'");
if ($tentativas > 5) {
$hora_ultima_tentativa = $db->CampoUnico("SELECT data_hora FROM acesso WHERE cod_pessoa = '{$idpes}' ORDER BY data_hora DESC LIMIT 1 OFFSET 4");
$hora_ultima_tentativa = explode(".", $hora_ultima_tentativa);
$hora_ultima_tentativa = $hora_ultima_tentativa[0];
$data_libera = date("d/m/Y H:i", strtotime($hora_ultima_tentativa) + 60 * 30);
die("<html><body></body><script>alert('Houveram mais de 5 tentativas frustradas de acessar a sua conta na última meia hora.\\nPor segurança, sua conta ficará interditada até: {$data_libera}');document.location.href='/intranet';</script></html>");
}
$db->Consulta("SELECT ref_cod_pessoa_fj, opcao_menu, ativo, tempo_expira_senha, tempo_expira_conta, data_troca_senha, data_reativa_conta, proibido, ref_cod_setor_new, tipo_menu FROM funcionario WHERE ref_cod_pessoa_fj = '{$idpes}' AND senha = '{$senha}'");
if ($db->ProximoRegistro()) {
list($id_pessoa, $opcaomenu, $ativo, $tempo_senha, $tempo_conta, $data_senha, $data_conta, $proibido, $setor_new, $tipo_menu) = $db->Tupla();
if (!$proibido) {
if ($ativo) {
// Usuário ativo, verifica se a conta expirou
$expirada = FALSE;
if (!empty($tempo_conta) && !empty($data_conta)) {
if (time() - strtotime($data_conta) > $tempo_conta * 60 * 60 * 24) {
// Conta expirada
$db->Consulta("UPDATE funcionario SET ativo='0' WHERE ref_cod_pessoa_fj = '{$id_pessoa}'");
die("<html><body></body><script>alert( 'Sua conta na intranet expirou.\nContacte um administrador para reativa-la.' );document.location.href='/intranet';</script></html>");
}
}
// Vendo se a senha não expirou
if (!empty($tempo_senha) && !empty($data_senha)) {
if (time() - strtotime($data_senha) > $tempo_senha * 60 * 60 * 24) {
// Senha expirada, pede que mude a senha
die("<html><body><form id='reenvio' name='reenvio' action='usuario_trocasenha.php' method='POST'><input type='hidden' name='cod_pessoa' value='{$id_pessoa}'></form></body><script>document.getElementById('reenvio').submit();</script></html>");
}
}
// Pega o endereço IP do host, primeiro com HTTP_X_FORWARDED_FOR (para pegar o IP real
// caso o host esteja atrás de um proxy)
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
// No caso de múltiplos IPs, pega o último da lista
$ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip_maquina = trim(array_pop($ip));
} else {
$ip_maquina = $_SERVER['REMOTE_ADDR'];
}
$sql = "SELECT ip_logado, data_login FROM funcionario WHERE ref_cod_pessoa_fj = {$id_pessoa}";
$db2 = new clsBanco();
$db2->Consulta($sql);
while ($db2->ProximoRegistro()) {
list($ip_banco, $data_login) = $db2->Tupla();
if ($ip_banco) {
if (abs(time() - strftime("now") - strtotime($data_login)) <= 10 * 60 && $ip_banco != $ip_maquina) {
die("<html><body></body><script>alert('Conta já em uso.\\nTente novamente mais tarde');document.location.href='/intranet';</script></html>");
} else {
$sql = "UPDATE funcionario SET data_login = NOW() WHERE ref_cod_pessoa_fj = {$id_pessoa}";
$db2->Consulta($sql);
}
} else {
$sql = "UPDATE funcionario SET ip_logado = '{$ip_maquina}', data_login = NOW() WHERE ref_cod_pessoa_fj = {$id_pessoa}";
$db2->Consulta($sql);
}
}
// Login do usuário, grava dados na sessão
@session_start();
$_SESSION = array();
$_SESSION['itj_controle'] = 'logado';
$_SESSION['id_pessoa'] = $id_pessoa;
$_SESSION['pessoa_setor'] = $setor_new;
$_SESSION['menu_opt'] = unserialize($opcaomenu);
$_SESSION['tipo_menu'] = $tipo_menu;
@session_write_close();
$this->logado = TRUE;
} else {
if (!empty($tempo_conta) && !empty($data_conta)) {
if (time() - strtotime($data_conta) > $tempo_conta * 60 * 60 * 24) {
$this->erroMsg = "Sua conta expirou. Contacte o administrador para reativá-la.";
$expirada = 1;
} else {
$this->erroMsg = "Sua conta não está ativa. Use a opção 'Nunca usei a intrenet'.";
$expirada = 0;
}
}
}
} else {
$this->erroMsg = "Impossível realizar login.";
//.........這裏部分代碼省略.........