Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, espero que estejam todos bem. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif De uma hora para outra começou a dar problema ao tentar acessar uma página antiga para uma área restrita do site. Aparece o seguinte erro:
> Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect. The script whose uid is 32440 is not allowed to access owned by uid 0 in /home/ycomcom/public_html/confere_login.php on line 59Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: files (path: ) in /home/ycomcom/public_html/confere_login.php on line 59
Será que tem há ver com atualizações feita pelo servidor? Atualizaram esses dias o Zend para a versão 3.2.8. Segue abaixo o código. Agradeço desde já a força. [http://forum.imasters.com.br/public/style_emoticons/](http://forum.imasters.com.br/public/style_emoticons/)default/thumbsup.gif <?phpfunction anti_injection($string) { $string = str_replace("SELECT", "", $string); $string = str_replace("select", "", $string); $string = str_replace("update", "", $string); $string = str_replace("UPDATE", "", $string); $string = str_replace("sum", "", $string); $string = str_replace("SUM", "", $string); $string = str_replace("insert", "", $string); $string = str_replace("INSERT", "", $string); $string = str_replace("delete", "", $string); $string = str_replace("DELETE", "", $string); $string = str_replace("create", "", $string); $string = str_replace("CREATE", "", $string); $string = str_replace("#", "", $string); $string = str_replace("=", "", $string); $string = str_replace("--", "", $string); $string = str_replace("*", "", $string); $string = str_replace(";", "", $string); $string = trim($string); $string = strip_tags($string); $string = addslashes($string); return $string; } foreach($_POST as $campo => $valor) { $$campo = anti_injection($valor); }if(empty($login_area_interna) OR empty($senha_area_interna)) { echo "<b>Favor prencher todos os campos para logar!</b>"; exit; } else { include "ycom_literatura_aplicada.php"; $con = mysql_connect($server, $user, $password); $banco = mysql_select_db($database); $confere = mysql_query("SELECT * FROM area_interna WHERE login_area_interna = '$login_area_interna'"); $dados = mysql_fetch_array($confere, MYSQL_BOTH); $linhas = mysql_num_rows($confere); //$resultado = mysql_result($confere, 0, "senha_area_interna"); if($linhas == 0) { echo "<b>Você não efetuou o login!</b>"; exit; } if($senha_area_interna != $dados[1]) { echo "<b>A senha não confere!</b>"; exit; } else { session_start();/////////////////////////// LINHA 59 //////////////////////// $_SESSION['login'] = $login_area_interna; $_SESSION['senha'] = $senha_area_interna; print "<script>location='./ycom_admin.php'</script>"; } }?>Olá Wolf,Não é isso não. Como falei, estava funcionando durante anos e agora começou a dar erro.O servidor fez algumas atualizações recentemente e acho que algo aí pode ter interferido, ou não. Alguém sabe o que pode ser, uma vez que o código sempre funcionou corretamente?Valeu pessoal, até mais.
Resolvido o problema. Após quase dois diaas de puzzle. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Como eu havia dito, não era problema de header already send, pois no erro não fala isso, mas sim, problema com o SAFE MODE.Perguntei no servidor se havia acontecido algo e eles informaram o seguinte:
Sim, isso certamente começou a ocorrer depois do último upgrade do sistema. A bem da verdade, o safe_mode sempre esteve habilitado mas, ao que parece, antes não estava funcionando de forma adequada. Agora ele está funcionando da forma como deveria.Para corrigir erros de safe_mode, crie um arquivo chamado "php.ini" com a linha:safe_mode = off
Achei extranho esse "sempre esteve habilitado", uma vez que ele fala para configurar o safe_mode com OFF!!! http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Também não entendi o que ele quis dizer com "não estava funcionando de forma adequada". http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Coloquei o php.ini na raiz com o safe_mode = off e funcionou direitinho.O bom disso tudo é que acabei vendo que meu código valida_session.php estava com uma brecha, possibilitando o acesso através da url uma vez que não havia restrição alguma nesse sentido. Daí que resolvi isso inserindo um laço que impossibilita a visualização da página se as variáveis de sessão estiverem vazias:
if(empty($login_aluno) OR empty($senha_aluno)) { echo "<b>Você não efetuou o login!</b><br />"; echo "<a href=\"index.php\">Voltar</a>"; exit; }
Até mais e bons trabalhos a todos. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
uma coisa... você naum pode ter nenhuma impressão na tela antes de usar esse session_start();