Ir para conteúdo
Fórum Script Brasil
  • 0

Erro


Andre H.S. Mendes

Pergunta

Olá!!!!

Não é sempre, mas as vezes aparece esse erro na tela.

Notice: session_start() [function.session-start]: ps_files_cleanup_dir: opendir(/tmp) failed: Permission denied (13) in /home/imovellocal/www/includes/sessions.php on line 18

Está dando erro de permição, mas está como 777 praticamente tudo.

opendir(/tmp) <----------- desconheço essa pasta.

alguém sabe como me livrar desse erro?

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Posta as 30 primeiras linhas.... Pelo que vi o erro é entre a linha 13 e 18...

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Repito, poste as 30 linhas do começo do arquivo, por favor...

Link para o comentário
Compartilhar em outros sites

  • 0

/home/imovellocal/www/includes/sessions.php

Esse é o arquivo que está dando erro, correto? Cole as 30 primeiras linhas dele...

Link para o comentário
Compartilhar em outros sites

  • 0

A mensagem de erro está dizendo que o diretório onde ficam guardadas as sessões (sim, elas ficam guardadas em uma diretório do servidor), às vezes, não pode ser manipulado, por isso está gerando o erro. O estranho é que esse diretório é manipulado diretamente pelo PHP com o usuário root do SO, logo, não deveria ter nenhum tipo de problema de permissão.

Link para o comentário
Compartilhar em outros sites

  • 0
/home/imovellocal/www/includes/sessions.php

Esse é o arquivo que está dando erro, correto? Cole as 30 primeiras linhas dele...

Arquivo inteiro sessions.php

<?php

class Session 

{

    function Session () 

    {
        session_start();
    }
                
    function set ( $name, $value ) 

    {
        $_SESSION[$name]=$value;
    }

    function fetch ( $name ) 

    {

        if ( isset ( $_SESSION[$name] ) )
                return $_SESSION[$name];
            else
                return false;
    }

    function varunset ( $name ) 

    {

            if ( isset ( $_SESSION[$name] ) ) {
                unset ( $_SESSION[$name] );
                return true;
            } else {
                return false;
            }
    }

    function destroy () 

    {
            $_SESSION = array();
            session_destroy();
    }

}

// This function checks if there is login in the database and
// checks if the password is correct if this login exists

function auth_check ($login, $password)

 {

  global $db;

  // SELECT a user with this login from the users table
  $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE login = "' . $login . '" LIMIT 1';
  $r = $db->query ($sql);

  // If we found the record with this login
  // we proceed
  if ($db->numrows($r) > 0)
   {
    $f = $db->fetcharray($r);

    // If login and password are correct we make the
    // $logged variable TRUE
    if ($f['login'] == $login 
    && $f['password'] == $password)
     $logged = TRUE;
    else 
     $logged = FALSE;
   }
  else
   {
    $logged = FALSE;
   }

  return $logged;

 }

?>

A mensagem de erro está dizendo que o diretório onde ficam guardadas as sessões (sim, elas ficam guardadas em uma diretório do servidor), às vezes, não pode ser manipulado, por isso está gerando o erro. O estranho é que esse diretório é manipulado diretamente pelo PHP com o usuário root do SO, logo, não deveria ter nenhum tipo de problema de permissão.

É estranho mesmo, mas não é só no servidor que da esse erro, aqui no meu pc tb ocorre as vezes. junto com ele seguem os erros de HEADERS. mas tudo porque ocorre ele antes.

Editado por Andre H.S. Mendes
Link para o comentário
Compartilhar em outros sites

  • 0

http://bugs.php.net/bug.php?id=20720

Andei pesquisando e achei isto... Pelo que entendi é um erro do PHP 4.3.4 rodando em Apache + Debian... Dê uma olhada que eu to estudando o caso ainda...

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Wanderson Camargo

Andei lendo sobre esse bug no link que me passou.

no penultimo post desse link, o cara ta falando que já sabem a cousa do bug.

I'm sorry to hear that. The cause of this bug is already known: for

security reasons, session files are now stored in a directory that is

only readable by root, which means that PHP scripts running in either

the webserver security context (user www-data) or as a per-user CGI will

be unable to get a list of session files in the directory. This is by

design, and will not be changed; what will be changed is to disable

PHP's internal session gc and replace it with a cronjob running as root

that can sweep the directory on our behalf.

pelo que eu entendi, os arquivos das sessões são guardados em um diretorio em que só o root pode ler,

e no ultimo post o cara escreve

To reiterate,

This is a(nother) Debian packaging problem. The bug report is here:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256831

The fix this,

session.gc_probability = 1

session.gc_divisor = 100000000

(Note: once in a billion hits, someone will get an error message)

Then, set up your own garbage collection. This is discussed already in

php.ini.

alterando essas configurações no php.ini irão resolver, porem em 1 bilçao de hits alguém vai ver o erro hehe.

e esse lixo do php , devo me preocupar com ele? é possivel alterar essas confirações atraver do arquivo .htaccess ?

vlw

Editado por Andre H.S. Mendes
Link para o comentário
Compartilhar em outros sites

  • 0

Tipo acho que eu não entendi bem... Você está falando do Garbage Collector do PHP no .htaccess?

O Garbage Collector é uma lixeira que passa de tempos em tempos e vai limpando as variáveis que não são mais utilizadas pelo servidor e que a gente não limpou manualmente.

O .htaccess é um arquivo de configuração do Apache...

Alguém me corrija se eu estiver errado... Pois até onde sei e como minha mãe diz:

"Não tem nada a ver o c* com as calças"

Link para o comentário
Compartilhar em outros sites

  • 0

HUSAHUHUSHUAS não seria c* com bunda? ^^

então Wanderson, eu tenho que modificar essas configurações:

session.gc_probability = 1

session.gc_divisor = 100000000

isso seria no php.ini CERTO?

se eu pedir para o meu host mudar isso concerteza não vão mudar. então tem outra alternativa? tem como mudar usando outros meios?

flws!

Link para o comentário
Compartilhar em outros sites

  • 0

HUhuashuauhahu aki no sul é com as calças mesmo ^^

http://br2.php.net/ini-set

Link para o comentário
Compartilhar em outros sites

  • 0

hmm interesante....

Wanderson parace que da pra setar opções do PHP pelo htaccess do apache.

php_flag register_globals off

php_flag magic_quotes_gpc on

usando o php_flag,php_value ....

não sei se está certo mas vou alterar assim:

php_value session.gc_probability 1

php_value session.gc_divisor 100000000

aparentemente está tudo ok agora!!! ^^

quanto ao outro post sobre codificação ainda estou com problemas... vlws

Editado por Andre H.S. Mendes
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...