Estamos com uma situação aqui que nunca tinha visto nem ouvido falar.
Ao tentar logar como pais em uma página retorna página não encontrada. O formulário com os campos está em uma página e a de validação em outra página.
Se eu tentar acessar com perfil Escola ele funciona, se tentar com perfil=pais não funciona pior exibe mensagem de página não encontrada, mesmo sendo a mesma página de validação.
Alguém já passou por isto ou sabe como resolver?
O formulário é o tradicional só tem um radiobutton para definir se é pai ou se é a escola:
<form id="inicial" name="inicial" target="_blank" method="post" action="admin/operador_logar.php"> <fieldset> <label class="radio" for="perfil_pais"> <input type="radio" name="perfil" id="perfil_pais" value="pais" tabindex="1" title="Pais" checked="checked" onclick="pais();"/> Pais </label> <label class="radio" for="perfil_escola"> <input type="radio" name="perfil" id="perfil_escola" value="escola" tabindex="2" title="Escola" />Escola </label> <label class="campo" for="operador"> Usuário: <input type="text" name="operador" id="operador" maxlength="20" tabindex="3" title="Operador" value=""/></label> <label class="campo" for="senha"> Senha: <input type="password" name="senha" id="senha" maxlength="10" tabindex="4" title="Senha do Operador" value=""/> </label> <input name="Entrar" type="image" src="img_layout/botoes/botao_novidades_entrar.gif" title="Acessar área restrita" alt="Acessar área restrita" accesskey="E"/> </fieldset> </form>
O script de validação é este:
O "operador" do perfil pais é o CPF do responsável, eu gravei no banco formatado ou seja, 111.111.111-11
<?php ob_start();
require_once ("../includes/my_lib.php");
foreach($_POST as $campo => $valor){
$$campo = trim(strip_tags($valor));
}
echo "<br/>".$operador;
echo "<br/>".$senha;
echo "<br/>".$perfil;
if ($perfil=="pais")
{
if (strlen($operador)=="11")
{
$cpf1 = substr("$operador", 0, 3);
$cpf2 = substr("$operador", 3, 3);
$cpf3 = substr("$operador", 6, 3);
$cpf4 = substr("$operador", -2, 2);
$operador = $cpf1.".".$cpf2.".".$cpf3 ."-".$cpf4;
}//if (strlen($operador)=="11")
$result = db_query ("SELECT senha FROM tb_pais WHERE responsavel_cpf='$operador' AND status='ativo'");
echo "<br/>pegando a senha do operador: ".$operador." resultado ".$result[rows];
if ($result[rows] == 1) // verificar senha criptografada
{
$row = mysql_fetch_array($result[result]);
$db_passwd = $row[senha];
$salt = preg_split('/\$/', $row[senha]);
$checked_passwd = md5crypt($senha, $salt[2]);
$result = db_query ("SELECT * FROM tb_pais WHERE responsavel_cpf='$operador' AND senha='$checked_passwd'");
echo "<br/>verificando operador: ".$operador." resultado ".$result[rows];
if ($result[rows] == 1)
{
session_name("SessID");
session_start();
session_register("sessid");
$row = mysql_fetch_array($result[result]);
$sessid = array (
"operador" => $row[responsavel_cpf]
);
} //if ($result[rows] == 1) linha 20
else
{
include_once ("includes/topo_inicial.htm");
print " <h1> :: ACESSO NEGADO :: </h1>
<p> Sua senha está incorreta ou você não possui autorização para visualizar esta página.<br> Verifique e tente novamente.</p>
<p align=\"center\"><a href='java script:history.go(-1);'>Voltar à página de login.</a></p>";
exit;
} //else if ($result[rows] == 1) linha 19
} // if ($result[rows] == 1) linha 11
else
{
include_once ("includes/topo_inicial.htm");
print " <h1> :: ACESSO NEGADO :: </h1>
<p> Operador incorreto, por favor verifique e tente novamente.</p>
<p align=\"center\"><a href='java script:history.go(-1);'>clique aqui para voltar à página de login.</a></p>";
exit;
} // else
header("Location:../area_pais/index.php?" . session_name() . "=" . session_id());
}
else
{
$operador = strtoupper($operador);
$senha = strtoupper($senha);
$result = db_query ("SELECT ope_senha FROM tb_operadores WHERE operador='$operador' AND ope_status='on'");
if ($result[rows] == 1) // verificar senha criptografada
{
$row = mysql_fetch_array($result[result]);
$db_passwd = $row[ope_senha];
$salt = preg_split('/\$/', $row[ope_senha]);
$checked_passwd = md5crypt($senha, $salt[2]);
$result = db_query ("SELECT * FROM tb_operadores WHERE operador='$operador' AND ope_senha='$checked_passwd'");
if ($result[rows] == 1)
{
session_name("SessID");
session_start();
session_register("sessid");
$row = mysql_fetch_array($result[result]);
$sessid = array (
"operador" => $row[ope_id]
);
} //if ($result[rows] == 1) linha 20
else
{
include_once ("includes/topo_inicial.htm");
echo $operador;
echo $senha;
print " <h1> :: ACESSO NEGADO :: </h1>
<p> Sua senha está incorreta ou você não possui autorização para visualizar esta página.<br> Verifique e tente novamente.</p>
<p align=\"center\"><a href='java script:history.go(-1);'>Voltar à página de login.</a></p>
exit;
} //else if ($result[rows] == 1) linha 19
} // if ($result[rows] == 1) linha 11
else
{
include_once ("includes/topo_inicial.htm");
print " <h1> :: ACESSO NEGADO :: </h1>
<p> Operador incorreto, por favor verifique e tente novamente.</p>
<p align=\"center\"><a href='java script:history.go(-1);'>clique aqui para voltar à página de login.</a></p>
exit;
} // else
header("Location:adm_menu.php?" . session_name() . "=" . session_id());
}
?>
</div> <!-- geral -->
</body>
</html>
<?php ob_end_flush();?>
Edição feita por: Andreia Regina, 20/04/2007, 15:31.
Adicionando aspas que faltavam aqui, no original estava ok










