Este é o meu primeiro post aqui no webmasters online. Peço desculpas antecipadamente, caso esteja criando esta postagem na sessão inadequada do fórum.
Bom, sou iniciante em PHP. Tenho estudado a linguagem há, aproximadamente, dois meses e estou criando um sistema para gerenciamento de conteúdo. Estou com um problema na realização do login.
A página html com o formulário é básica, por isso vou postar logo a página de validação (validacao.php). Segue:
<?php
function __autoload($classe) {
$db = parse_ini_file("./diretorio.ini");
$pos = strrpos($dir = getcwd(), $db['pasta']);
$dir = substr($dir, 0, $pos).$db['pasta'];
$arr = array('utilitarios', 'persistencia');
foreach($arr as $key => $folder) {
if(file_exists($dir."/{$folder}/{$classe}.php")) {
include_once $dir."/{$folder}/{$classe}.php";
}
}
}
#Validacao dos preenchimentos dos campos.
if (($_POST)) {
#Se as os campos forem todos preenchidos (diferentes de vazio) e alguma opcao for selecionada executa a operacao.
if (empty($_POST['login']) OR empty($_POST['senha']) OR ($_POST['opcao'] == 'Selecione')) {
echo '[Validacao Preenchimento Campos]Login Inválido!<br />';
echo '<a href="area_restrita.php">Clique aqui para retornar à página inicial</a>';
exit;
}
}
#Validacao dos caracteres de login e senha.
$vc = new TValidaCampos;
if($vc -> validaUsername($_POST['login']) AND $vc -> validaSenha($_POST['senha'])) {
$usuario = $_POST['login'];
$senha = $_POST['senha'];
$opcao = $_POST['opcao'];
} else {
echo '[Validacao Login e Senha]Login Inválido.<br />';
echo '<a href="area_restrita.php">Clique aqui para retornar à página inicial</a>';
exit;
}
#Autenticacao do login
$tl = new TLogin;
$status = $tl -> avaliaDados($usuario, $senha, $opcao);
if($status == 0) {
echo "Login Invalido";
}
if($status == 1) {
echo "<meta http-equiv = 'refresh' content = '0'; url = 'ar_home.php'>";
}
?>
Quando eu envio os dados através do formulário, a validação do preenchimento dos campos é feita corretamente.
Logo abaixo, eu tenho que efetuar a validacao do login e senha (através de expressão regular na classe TValidaCampos), para depois autenticar o login, avaliando junto ao banco se o usuário existe (através da classe TLogin).
O problema que está ocorrendo é o seguinte:
Quando a aplicação está em execução, as variáveis recebidas por post chegam vazias ao método de validação dos caracteres de login e senha. Dessa forma, logicamente a validação sempre dá errado e ação de login é abortada.
O mais estranho é que quando retiro o último if da autenticação do login (para efeito de testes), as variáveis não sofrem alteração no valor e o processo é concluído com sucesso.
Não consigo entender o que está acontecendo. Alguém pode me ajudar?
Desde já, obrigado.
Nota: Modifiquei a função autoload() pq não consegui alterar o include_path nos arquivos de configuracao do php de jeito nenhum. Assim, fiz a alteração para pegar sempre o caminho absoluto do diretório onde os arquivos estiverem armazenados.











