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